    /* 0F B8 /dr */ { BxPrefixSSE, NULL, BxOpcodeGroupSSE_0fb8d },
 -  /* 0F B9 /dr */ { 0, &BX_CPU_C::UndefinedOpcode }, // UD2 opcode
 +  /* 0F B9 /dr */ { BxTraceEnd, &BX_CPU_C::UndefinedOpcode }, // UD2 opcode
-   /* 0F BA /dr */ { BxGroup8, NULL, BxOpcodeInfoG8EdIb },
+   /* 0F BA /dr */ { BxGroup8, NULL, BxOpcodeInfoG8EdIbR },
    /* 0F BB /dr */ { 0, &BX_CPU_C::BTC_EdGdR },
    /* 0F BC /dr */ { 0, &BX_CPU_C::BSF_GdEd },
 @@ -1342,7 +1342,7 @@

 };
 #endif
 
Files bochs/cpu/fetchdecode.o and bochs-trace-cache/cpu/fetchdecode.o differ
diff -ur bochs/cpu/fetchdecode64.cc bochs-trace-cache/cpu/fetchdecode64.cc
--- bochs/cpu/fetchdecode64.cc	2007-11-24 16:22:33.000000000 +0200
+++ bochs-trace-cache/cpu/fetchdecode64.cc	2007-11-24 16:29:38.359375000 +0200
@@ -285,22 +285,22 @@
   /* 6D /wr */ { 0, &BX_CPU_C::REP_INSW_YwDX },
   /* 6E /wr */ { 0, &BX_CPU_C::REP_OUTSB_DXXb },

+
+  InstrICache_Increment(iCacheMisses);
+
+  bx_address remainingInPage = (BX_CPU_THIS_PTR eipPageWindowSize - eipBiased);
+  unsigned maxFetch = 15;
+  if (remainingInPage < 15) maxFetch = remainingInPage;
+  Bit8u *fetchPtr = BX_CPU_THIS_PTR eipFetchPtr + eipBiased;
+  unsigned ret;
+
+  // We could include in trace maximum BX_MAX_TRACE_LEN instructions
+  unsigned max_length = BX_MAX_TRACE_LENGTH;
+  if ((pageWriteStamp & ICacheWriteStampMask) != ICacheWriteStampStart)
