[prev in list] [next in list] [prev in thread] [next in thread] 

List:       bochs-cvs
Subject:    [Bochs-cvs] SF.net SVN: bochs:[10427] trunk/bochs/cpu
From:       sshwarts () users ! sourceforge ! net
Date:       2011-06-26 19:15:31
Message-ID: E1Qaunr-0001uF-7y () sfp-svn-6 ! v30 ! ch3 ! sourceforge ! com
[Download RAW message or body]

Revision: 10427
          http://bochs.svn.sourceforge.net/bochs/?rev=10427&view=rev
Author:   sshwarts
Date:     2011-06-26 19:15:30 +0000 (Sun, 26 Jun 2011)

Log Message:
-----------
compile less stuff for cpu-level=5

Modified Paths:
--------------
    trunk/bochs/cpu/aes.cc
    trunk/bochs/cpu/avx.cc
    trunk/bochs/cpu/avx_pfp.cc
    trunk/bochs/cpu/bit.cc
    trunk/bochs/cpu/cpu.h
    trunk/bochs/cpu/crc32.cc
    trunk/bochs/cpu/fetchdecode.cc
    trunk/bochs/cpu/fetchdecode_avx.h
    trunk/bochs/cpu/fetchdecode_sse.h
    trunk/bochs/cpu/ia_opcodes.h
    trunk/bochs/cpu/mmx.cc
    trunk/bochs/cpu/sse.cc
    trunk/bochs/cpu/sse_move.cc
    trunk/bochs/cpu/sse_pfp.cc
    trunk/bochs/cpu/sse_string.cc
    trunk/bochs/cpu/vmx.cc

Modified: trunk/bochs/cpu/aes.cc
===================================================================
--- trunk/bochs/cpu/aes.cc	2011-06-26 17:42:07 UTC (rev 10426)
+++ trunk/bochs/cpu/aes.cc	2011-06-26 19:15:30 UTC (rev 10427)
@@ -287,24 +287,19 @@
   return (x >> 8) | (x << 24);
 }
 
-#endif
-
 /* 66 0F 38 DB */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::AESIMC_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op = BX_READ_XMM_REG(i->rm());
 
   AES_InverseMixColumns(op);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op, i->getVL());
-#endif
 }
 
 /* 66 0F 38 DC */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::AESENC_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   AES_ShiftRows(op1);
@@ -315,13 +310,11 @@
   op1.xmm64u(1) ^= op2.xmm64u(1);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 DD */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::AESENCLAST_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   AES_ShiftRows(op1);
@@ -331,13 +324,11 @@
   op1.xmm64u(1) ^= op2.xmm64u(1);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 DE */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::AESDEC_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   AES_InverseShiftRows(op1);
@@ -348,13 +339,11 @@
   op1.xmm64u(1) ^= op2.xmm64u(1);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 DF */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::AESDECLAST_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   AES_InverseShiftRows(op1);
@@ -364,13 +353,11 @@
   op1.xmm64u(1) ^= op2.xmm64u(1);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 3A DF */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::AESKEYGENASSIST_VdqWdqIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op = BX_READ_XMM_REG(i->rm()), result;
 
   Bit32u rcon32 = i->Ib();
@@ -381,13 +368,11 @@
   result.xmm32u(3) = AES_RotWord(result.xmm32u(2)) ^ rcon32;
 
   BX_WRITE_XMM_REGZ(i->nnn(), result, i->getVL());
-#endif
 }
 
 /* 66 0F 3A 44 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PCLMULQDQ_VdqWdqIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  BxPackedXmmRegister r, a;
 
@@ -418,5 +403,6 @@
   }
 
   BX_WRITE_XMM_REGZ(i->nnn(), r, i->getVL());
-#endif
 }
+
+#endif

Modified: trunk/bochs/cpu/avx.cc
===================================================================
--- trunk/bochs/cpu/avx.cc	2011-06-26 17:42:07 UTC (rev 10426)
+++ trunk/bochs/cpu/avx.cc	2011-06-26 19:15:30 UTC (rev 10427)
@@ -26,13 +26,12 @@
 #include "cpu.h"
 #define LOG_THIS BX_CPU_THIS_PTR
 
-#if BX_SUPPORT_AVX
+#if BX_SUPPORT_AVX && BX_CPU_LEVEL >= 6
 
 /* VZEROUPPER: VEX.128.0F.77 (VEX.W ignore, VEX.VVV #UD) */
 /* VZEROALL:   VEX.256.0F.77 (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VZEROUPPER(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   if (i->getVL() == BX_VL128) {
     for(unsigned index=0; index < BX_XMM_REGISTERS; index++)
     {
@@ -50,32 +49,27 @@
         BX_WRITE_AVX_REG(index, nil);
     }
   }
-#endif
 }
 
 /* VMOVSS: VEX.F3.0F 10 (VEX.W ignore) */ 
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMOVSS_VssWssR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op = BX_READ_XMM_REG(i->vvv());
 
   op.xmm32u(0) = BX_READ_XMM_REG_LO_DWORD(i->rm());
 
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op);
-#endif
 }
 
 /* VMOVSS: VEX.F2.0F 10 (VEX.W ignore) */ 
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMOVSD_VsdWsdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op;
 
   op.xmm64u(0) = BX_READ_XMM_REG_LO_QWORD(i->rm());
   op.xmm64u(1) = BX_READ_XMM_REG_HI_QWORD(i->vvv());
 
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op);
-#endif
 }
 
 /* VMOVAPS: VEX    0F 28 (VEX.W ignore, VEX.VVV #UD) */ 
@@ -83,14 +77,11 @@
 /* VMOVDQA: VEX.66.0F 6F (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMOVAPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BX_WRITE_AVX_REGZ(i->nnn(), BX_READ_AVX_REG(i->rm()), i->getVL());
-#endif
 }
 
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMOVAPS_VpsWpsM(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op;
   unsigned len = i->getVL();
   
@@ -99,7 +90,6 @@
   read_virtual_dword_vector_aligned(i->seg(), eaddr, len << 2, &op);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op, len);
-#endif
 }
 
 /* VMOVUPS: VEX    0F 10 (VEX.W ignore, VEX.VVV #UD) */ 
@@ -107,7 +97,6 @@
 /* VMOVDQU: VEX.F3.0F 6F (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMOVUPS_VpsWpsM(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op;
   unsigned len = i->getVL();
   
@@ -116,7 +105,6 @@
   read_virtual_dword_vector(i->seg(), eaddr, len << 2, &op);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op, len);
-#endif
 }
 
 /* VMOVUPS: VEX    0F 11 (VEX.W ignore, VEX.VVV #UD) */ 
@@ -124,13 +112,11 @@
 /* VMOVUQA: VEX.66.0F 7F (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMOVUPS_WpsVpsM(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->nnn());
   
   bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i));
   /* pointer, segment address pair */
   write_virtual_dword_vector(i->seg(), eaddr, i->getVL() << 2, &op);
-#endif
 }
 
 /* VMOVAPS: VEX    0F 29 (VEX.W ignore, VEX.VVV #UD) */ 
@@ -138,19 +124,16 @@
 /* VMOVDQA: VEX.66.0F 7F (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMOVAPS_WpsVpsM(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->nnn());
 
   bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i));
   /* pointer, segment address pair */
   write_virtual_dword_vector_aligned(i->seg(), eaddr, i->getVL() << 2, &op);
-#endif
 }
 
 /* VEX.F2.0F 12 (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMOVDDUP_VpdWpdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->rm());
   unsigned len = i->getVL();
 
@@ -159,13 +142,11 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), op, len);
-#endif
 }
 
 /* VEX.F3.0F 12 (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMOVSLDUP_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->rm());
   unsigned len = i->getVL();
 
@@ -174,13 +155,11 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), op, len);
-#endif
 }
 
 /* VEX.F3.0F 12 (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMOVSHDUP_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->rm());
   unsigned len = i->getVL();
 
@@ -189,26 +168,22 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), op, len);
-#endif
 }
 
 /* VEX.0F 12 (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMOVHLPS_VpsWps(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op;
 
   op.xmm64u(0) = BX_READ_XMM_REG_HI_QWORD(i->rm());
   op.xmm64u(1) = BX_READ_XMM_REG_HI_QWORD(i->vvv());
 
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op);
-#endif
 }
 
 /* VEX.66.0F 12 (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMOVLPD_VpdMq(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i));
 
   BxPackedXmmRegister op;
@@ -217,26 +192,22 @@
   op.xmm64u(1) = BX_READ_XMM_REG_HI_QWORD(i->vvv());
 
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op);
-#endif
 }
 
 /* VEX.0F 16 (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMOVLHPS_VpsWps(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op;
 
   op.xmm64u(0) = BX_READ_XMM_REG_LO_QWORD(i->vvv());
   op.xmm64u(1) = BX_READ_XMM_REG_LO_QWORD(i->rm());
 
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op);
-#endif
 }
 
 /* VEX.66.0F 16 (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMOVHPD_VpdMq(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i));
 
   BxPackedXmmRegister op;
@@ -245,14 +216,12 @@
   op.xmm64u(1) = read_virtual_qword(i->seg(), eaddr);
 
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op);
-#endif
 }
 
 /* VUNPCKLPS:  VEX.   0F 14 (VEX.W ignore) */
 /* VPUNPCKLDQ: VEX.66.0F 62 (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VUNPCKLPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -263,14 +232,12 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* VUNPCKHPS:  VEX.   0F 15 (VEX.W ignore) */
 /* VPUNPCKHDQ: VEX.66.0F 6A (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VUNPCKHPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -282,14 +249,12 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* VUNPCKLPD:   VEX.66.0F 14 (VEX.W ignore) */
 /* VPUNPCKLQDQ: VEX.66.0F 6C (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VUNPCKLPD_VpdWpdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -297,14 +262,12 @@
     op1.avx64u(n*2+1) = op2.avx64u(n*2);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* VUNPCKLPD:   VEX.66.0F 15 (VEX.W ignore) */
 /* VPUNPCKLQDQ: VEX.66.0F 6D (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VUNPCKHPD_VpdWpdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -314,13 +277,11 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* VEX.0F 50 (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMOVMSKPS_GdVRps(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->rm());
   unsigned len = i->getVL();
   Bit32u val32 = 0;
@@ -329,13 +290,11 @@
     if(op.avx32u(n) & 0x80000000) val32 |= (1 << n);
 
   BX_WRITE_32BIT_REGZ(i->nnn(), val32);
-#endif
 }
 
 /* VEX.66.0F 50 (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMOVMSKPD_GdVRpd(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->rm());
   unsigned len = i->getVL();
   Bit32u val32 = 0;
@@ -344,13 +303,11 @@
     if(op.avx32u(2*n+1) & 0x80000000) val32 |= (1 << n);
 
   BX_WRITE_32BIT_REGZ(i->nnn(), val32);
-#endif
 }
 
 /* VEX.66.0F 50 (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VPMOVMSKB_GdUdq(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->rm());
   unsigned len = i->getVL();
   Bit32u val32 = 0;
@@ -359,7 +316,6 @@
     if(op.avxubyte(n) & 0x80) val32 |= (1 << n);
 
   BX_WRITE_32BIT_REGZ(i->nnn(), val32);
-#endif
 }
 
 /* VANDPS: VEX    0F 54 (VEX.W ignore) */
@@ -367,7 +323,6 @@
 /* VPAND:  VEX.66.0F DB (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VANDPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -375,7 +330,6 @@
     op1.avx64u(n) = op1.avx64u(n) & op2.avx64u(n);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* VANDNPS: VEX    0F 55 (VEX.W ignore) */
@@ -383,7 +337,6 @@
 /* VPANDN:  VEX.66.0F DF (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VANDNPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -391,7 +344,6 @@
     op1.avx64u(n) = ~(op1.avx64u(n)) & op2.avx64u(n);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* VORPS: VEX    0F 56 (VEX.W ignore) */
@@ -399,7 +351,6 @@
 /* VPOR:  VEX.66.0F EB (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VORPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -407,7 +358,6 @@
     op1.avx64u(n) = op1.avx64u(n) | op2.avx64u(n);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* VXORPS: VEX    0F 57 (VEX.W ignore) */
@@ -415,7 +365,6 @@
 /* VPXOR:  VEX.66.0F EF (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VXORPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
   
@@ -423,13 +372,11 @@
     op1.avx64u(n) = op1.avx64u(n) ^ op2.avx64u(n);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.0F.C6 (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VSHUFPS_VpsWpsIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv());
   BxPackedAvxRegister op2 = BX_READ_AVX_REG(i->rm()), result;
 
@@ -444,13 +391,11 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), result, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F.C6 (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VSHUFPD_VpdWpdIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv());
   BxPackedAvxRegister op2 = BX_READ_AVX_REG(i->rm()), result;
 
@@ -464,13 +409,11 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), result, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F.38.17 (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VPTEST_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->nnn()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -482,13 +425,11 @@
   }
 
   setEFlagsOSZAPC(result);
-#endif
 }
 
 /* Opcode: VEX.66.0F.38.18 /r (VEX.W=0, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VBROADCASTSS_VpsMss(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   unsigned len = i->getVL();
   BxPackedAvxRegister op;
   
@@ -503,13 +444,11 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), op, len);
-#endif
 }
 
 /* Opcode: VEX.256.66.0F.38.19 (VEX.W=0, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VBROADCASTSD_VpdMsd(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   unsigned len = i->getVL();
   BxPackedAvxRegister op;
   
@@ -522,13 +461,11 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), op, len);
-#endif
 }
 
 /* Opcode: VEX.256.66.0F.38.1A (VEX.W=0, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VBROADCASTF128_VdqMdq(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   unsigned len = i->getVL();
   BxPackedAvxRegister op;
   BxPackedXmmRegister src;
@@ -542,13 +479,11 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), op, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F.3A 0C (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VBLENDPS_VpsWpsIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
   Bit8u mask = i->Ib();
@@ -559,13 +494,11 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F.3A 0D (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VBLENDPD_VpdWpdIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
   Bit8u mask = i->Ib();
@@ -576,13 +509,11 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F.3A 4A (VEX.W=0) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VBLENDVPS_VpsWpsIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm()),  mask = BX_READ_AVX_REG(i->Ib());
 
@@ -592,13 +523,11 @@
     if (mask.avx32u(n) & 0x80000000) op1.avx32u(n) = op2.avx32u(n);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F.3A 4B (VEX.W=0) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VBLENDVPD_VpdWpdIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm()),  mask = BX_READ_AVX_REG(i->Ib());
 
@@ -608,13 +537,11 @@
     if (mask.avx32u(n*2+1) & 0x80000000) op1.avx64u(n) = op2.avx64u(n);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F.3A 4C (VEX.W=0) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VPBLENDVB_VdqWdqIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm()),  mask = BX_READ_AVX_REG(i->Ib());
 
@@ -624,7 +551,6 @@
      if (mask.avxubyte(n) & 0x80) op1.avxubyte(n) = op2.avxubyte(n);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F.3A 18 (VEX.W=0) */
@@ -657,7 +583,6 @@
 /* Opcode: VEX.66.0F.38 0C (VEX.W=0) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VPERMILPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv());
   BxPackedAvxRegister op2 = BX_READ_AVX_REG(i->rm()), result;
   unsigned len = i->getVL();
@@ -670,13 +595,11 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), result, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F.3A 05 (VEX.W=0) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VPERMILPD_VpdWpdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv());
   BxPackedAvxRegister op2 = BX_READ_AVX_REG(i->rm()), result;
   unsigned len = i->getVL();
@@ -687,13 +610,11 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), result, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F.3A 04 (VEX.W=0) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VPERMILPS_VpsWpsIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->rm()), result;
 
   unsigned len = i->getVL();
@@ -707,13 +628,11 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), result, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F.3A 05 (VEX.W=0) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VPERMILPD_VpdWpdIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->rm()), result;
 
   unsigned len = i->getVL();
@@ -726,13 +645,11 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), result, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F.3A 06 (VEX.W=0) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VPERM2F128_VdqWdqIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv());
   BxPackedAvxRegister op2 = BX_READ_AVX_REG(i->rm()), result;
   Bit8u order = i->Ib();
@@ -753,13 +670,11 @@
   }
 
   BX_WRITE_AVX_REG(i->nnn(), result);
-#endif
 }
 
 /* Opcode: VEX.66.0F.38 2C (VEX.W=0) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMASKMOVPS_VpsMps(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister mask = BX_READ_AVX_REG(i->vvv()), result;
   unsigned len = i->getVL();
 
@@ -784,13 +699,11 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), result, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F.38 2D (VEX.W=0) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMASKMOVPD_VpdMpd(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister mask = BX_READ_AVX_REG(i->vvv()), result;
   unsigned len = i->getVL();
 
@@ -815,13 +728,11 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), result, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F.38 2C (VEX.W=0) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMASKMOVPS_MpsVps(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister mask = BX_READ_AVX_REG(i->vvv()), op = \
BX_READ_AVX_REG(i->nnn());  unsigned len = i->getVL();
 
@@ -848,13 +759,11 @@
     if (mask.avx32u(n) & 0x80000000)
        write_virtual_dword(i->seg(), (eaddr + 4*n) & i->asize_mask(), op.avx32u(n));
   }
-#endif
 }
 
 /* Opcode: VEX.66.0F.38 2D (VEX.W=0) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMASKMOVPD_MpdVpd(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister mask = BX_READ_AVX_REG(i->vvv()), op = \
BX_READ_AVX_REG(i->nnn());  unsigned len = i->getVL();
 
@@ -881,7 +790,6 @@
     if (mask.avx32u(2*n+1) & 0x80000000)
        write_virtual_qword(i->seg(), (eaddr + 8*n) & i->asize_mask(), op.avx64u(n));
   }
-#endif
 }
 
-#endif
+#endif // BX_SUPPORT_AVX && BX_CPU_LEVEL >= 6

Modified: trunk/bochs/cpu/avx_pfp.cc
===================================================================
--- trunk/bochs/cpu/avx_pfp.cc	2011-06-26 17:42:07 UTC (rev 10426)
+++ trunk/bochs/cpu/avx_pfp.cc	2011-06-26 19:15:30 UTC (rev 10427)
@@ -26,10 +26,8 @@
 #include "cpu.h"
 #define LOG_THIS BX_CPU_THIS_PTR
 
-#if BX_SUPPORT_AVX
+#if BX_SUPPORT_AVX && BX_CPU_LEVEL >= 6
 
-#if BX_CPU_LEVEL >= 6
-
 extern void mxcsr_to_softfloat_status_word(float_status_t &status, bx_mxcsr_t \
mxcsr);  
 extern float32 approximate_rsqrt(float32 op);
@@ -121,12 +119,9 @@
   float64_true_signalling
 };
 
-#endif
-
 /* Opcode: VEX.F3.0F 2A (VEX.W=0) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VCVTSI2SS_VssEdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
 
   float_status_t status_word;
@@ -137,7 +132,6 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.F3.0F 2A (VEX.W=1) */
@@ -160,11 +154,9 @@
 /* Opcode: VEX.F2.0F 2A (VEX.W=0) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VCVTSI2SD_VsdEdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   op1.xmm64u(0) = int32_to_float64(BX_READ_32BIT_REG(i->rm()));
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.F2.0F 2A (VEX.W=1) */
@@ -187,7 +179,6 @@
 /* Opcode: VEX.0F 51 (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VSQRTPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->rm());
   unsigned len = i->getVL();
 
@@ -202,13 +193,11 @@
 
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_AVX_REGZ(i->nnn(), op, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F 51 (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VSQRTPD_VpdWpdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->rm());
   unsigned len = i->getVL();
   
@@ -224,13 +213,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.F3.0F 51 (VEX.W ignore, VEX.L ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VSQRTSS_VssWssR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float32 op2 = BX_READ_XMM_REG_LO_DWORD(i->rm());
 
@@ -242,13 +229,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.NDS.F2.0F 51 (VEX.W ignore, VEX.L ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VSQRTSD_VsdWsdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float64 op2 = BX_READ_XMM_REG_LO_QWORD(i->rm());
 
@@ -260,13 +245,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.0F 52 (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VRSQRTPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->rm());
   unsigned len = i->getVL();
 
@@ -274,26 +257,22 @@
     op.avx32u(n) = approximate_rsqrt(op.avx32u(n));
 
   BX_WRITE_AVX_REGZ(i->nnn(), op, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.F3.0F 52 (VEX.W ignore, VEX.L ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VRSQRTSS_VssWssR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float32 op2 = BX_READ_XMM_REG_LO_DWORD(i->rm());
 
   op1.xmm32u(0) = approximate_rsqrt(op2);
 
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.0F 53 (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VRCPPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->rm());
   unsigned len = i->getVL();
 
@@ -301,26 +280,22 @@
     op.avx32u(n) = approximate_rcp(op.avx32u(n));
 
   BX_WRITE_AVX_REGZ(i->nnn(), op, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.F3.0F 53 (VEX.W ignore, VEX.L ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VRCPSS_VssWssR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float32 op2 = BX_READ_XMM_REG_LO_DWORD(i->rm());
 
   op1.xmm32u(0) = approximate_rcp(op2);
 
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.NDS.0F 58 (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VADDPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -340,13 +315,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.66.0F 58 (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VADDPD_VpdWpdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
   
@@ -366,13 +339,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.F3.0F 58 (VEX.W ignore, VEX.L ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VADDSS_VssWssR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float32 op2 = BX_READ_XMM_REG_LO_DWORD(i->rm());
 
@@ -388,13 +359,11 @@
   op1.xmm32u(0) = float32_add(op1.xmm32u(0), op2, status_word);
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.NDS.F2.0F 58 (VEX.W ignore, VEX.L ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VADDSD_VsdWsdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float64 op2 = BX_READ_XMM_REG_LO_QWORD(i->rm());
 
@@ -410,13 +379,11 @@
   op1.xmm64u(0) = float64_add(op1.xmm64u(0), op2, status_word);
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.NDS.0F 59 (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMULPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -436,13 +403,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.66.0F 59 (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMULPD_VpdWpdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
   
@@ -462,13 +427,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.F3.0F 59 (VEX.W ignore, VEX.L ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMULSS_VssWssR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float32 op2 = BX_READ_XMM_REG_LO_DWORD(i->rm());
 
@@ -484,13 +447,11 @@
   op1.xmm32u(0) = float32_mul(op1.xmm32u(0), op2, status_word);
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.NDS.F2.0F 59 (VEX.W ignore, VEX.L ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMULSD_VsdWsdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float64 op2 = BX_READ_XMM_REG_LO_QWORD(i->rm());
 
@@ -506,13 +467,11 @@
   op1.xmm64u(0) = float64_mul(op1.xmm64u(0), op2, status_word);
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.0F 5A (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VCVTPS2PD_VpdWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister result;
   BxPackedXmmRegister op = BX_READ_XMM_REG(i->rm());
   unsigned len = i->getVL();
@@ -531,13 +490,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), result, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F 5A (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VCVTPD2PS_VpsWpdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->rm());
   BxPackedXmmRegister result;
 
@@ -557,13 +514,11 @@
 
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), result);
-#endif
 }
 
 /* Opcode: VEX.F3.0F 5A (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VCVTSS2SD_VsdWssR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float32 op2 = BX_READ_XMM_REG_LO_DWORD(i->rm());
 
@@ -575,13 +530,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.F3.0F 5A (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VCVTSD2SS_VssWsdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float64 op2 = BX_READ_XMM_REG_LO_QWORD(i->rm());
 
@@ -593,13 +546,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.NDS.0F 5B (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VCVTDQ2PS_VpsWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->rm());
   unsigned len = i->getVL();
 
@@ -613,13 +564,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.66.0F 5B (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VCVTPS2DQ_VdqWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->rm());
   unsigned len = i->getVL();
 
@@ -637,13 +586,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.F3.0F 5B (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VCVTTPS2DQ_VdqWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->rm());
   unsigned len = i->getVL();
 
@@ -661,13 +608,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.0F 5C (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VSUBPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
   
@@ -687,13 +632,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.66.0F 5C (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VSUBPD_VpdWpdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -713,13 +656,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.F3.0F 5C (VEX.W ignore, VEX.L ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VSUBSS_VssWssR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float32 op2 = BX_READ_XMM_REG_LO_DWORD(i->rm());
 
@@ -735,13 +676,11 @@
   op1.xmm32u(0) = float32_sub(op1.xmm32u(0), op2, status_word);
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.NDS.F2.0F 5C (VEX.W ignore, VEX.L ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VSUBSD_VsdWsdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float64 op2 = BX_READ_XMM_REG_LO_QWORD(i->rm());
 
@@ -757,13 +696,11 @@
   op1.xmm64u(0) = float64_sub(op1.xmm64u(0), op2, status_word);
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.NDS.0F 5D (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMINPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -784,13 +721,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.66.0F 5D (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMINPD_VpdWpdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
   
@@ -811,13 +746,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.F3.0F 5D (VEX.W ignore, VEX.L ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMINSS_VssWssR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float32 op2 = BX_READ_XMM_REG_LO_DWORD(i->rm());
 
@@ -835,13 +768,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.NDS.F2.0F 5D (VEX.W ignore, VEX.L ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMINSD_VsdWsdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float64 op2 = BX_READ_XMM_REG_LO_QWORD(i->rm());
 
@@ -859,13 +790,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.NDS.0F 5E (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VDIVPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -885,13 +814,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.66.0F 5E (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VDIVPD_VpdWpdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
   
@@ -911,13 +838,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.F3.0F 5E (VEX.W ignore, VEX.L ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VDIVSS_VssWssR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float32 op2 = BX_READ_XMM_REG_LO_DWORD(i->rm());
 
@@ -933,13 +858,11 @@
   op1.xmm32u(0) = float32_div(op1.xmm32u(0), op2, status_word);
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.NDS.F2.0F 5E (VEX.W ignore, VEX.L ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VDIVSD_VsdWsdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float64 op2 = BX_READ_XMM_REG_LO_QWORD(i->rm());
 
@@ -955,13 +878,11 @@
   op1.xmm64u(0) = float64_div(op1.xmm64u(0), op2, status_word);
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.NDS.0F 5F (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMAXPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
   
@@ -982,13 +903,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.66.0F 5F (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMAXPD_VpdWpdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -1009,13 +928,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.F3.0F 5F (VEX.W ignore, VEX.L ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMAXSS_VssWssR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float32 op2 = BX_READ_XMM_REG_LO_DWORD(i->rm());
 
@@ -1033,13 +950,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.NDS.F2.0F 5F (VEX.W ignore, VEX.L ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VMAXSD_VsdWsdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float64 op2 = BX_READ_XMM_REG_LO_QWORD(i->rm());
 
@@ -1057,13 +972,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.NDS.66.0F 7C (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VHADDPD_VpdWpdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -1086,13 +999,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.F2.0F 7C (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VHADDPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -1122,13 +1033,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.66.0F 7D (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VHSUBPD_VpdWpdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -1151,13 +1060,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.F2.0F 7D (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VHSUBPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -1187,13 +1094,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.0F C2 (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VCMPPS_VpsWpsIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -1213,13 +1118,11 @@
 
   check_exceptionsSSE(status.float_exception_flags);
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.66.0F C2 (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VCMPPD_VpdWpdIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -1240,13 +1143,11 @@
 
   check_exceptionsSSE(status.float_exception_flags);
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.F2.0F C2 (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VCMPSD_VsdWsdIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float64 op2 = BX_READ_XMM_REG_LO_QWORD(i->rm());
 
@@ -1268,13 +1169,11 @@
 
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.NDS.F3.0F C2 (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VCMPSS_VssWssIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float32 op2 = BX_READ_XMM_REG_LO_DWORD(i->rm());
 
@@ -1296,13 +1195,11 @@
 
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.NDS.F2.0F D0 (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VADDSUBPD_VpdWpdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -1325,13 +1222,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.NDS.F2.0F D0 (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VADDSUBPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -1354,13 +1249,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F.E6 (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VCVTTPD2DQ_VqWpdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->rm());
   BxPackedXmmRegister result;
 
@@ -1380,13 +1273,11 @@
 
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), result);
-#endif
 }
 
 /* Opcode: VEX.F2.0F.E6 (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VCVTPD2DQ_VqWpdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->rm());
   BxPackedXmmRegister result;
 
@@ -1406,13 +1297,11 @@
 
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), result);
-#endif
 }
 
 /* Opcode: VEX.F3.0F.E6 (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VCVTDQ2PD_VpdWqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister result;
   BxPackedXmmRegister op = BX_READ_XMM_REG(i->rm());
   unsigned len = i->getVL();
@@ -1422,13 +1311,11 @@
   }
 
   BX_WRITE_AVX_REGZ(i->nnn(), result, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F.38.0E (VEX.W=0, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VTESTPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->nnn()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -1443,13 +1330,11 @@
   }
 
   setEFlagsOSZAPC(result);
-#endif
 }
 
 /* Opcode: VEX.66.0F.38.0F (VEX.W=0, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VTESTPD_VpdWpdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->nnn()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
 
@@ -1464,13 +1349,11 @@
   }
 
   setEFlagsOSZAPC(result);
-#endif
 }
 
 /* Opcode: VEX.66.0F.3A.08 (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VROUNDPS_VpsWpsIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->rm());
   unsigned len = i->getVL();
 
@@ -1497,13 +1380,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F.3A.09 (VEX.W ignore, VEX.VVV #UD) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VROUNDPD_VpdWpdIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op = BX_READ_AVX_REG(i->rm());
   unsigned len = i->getVL();
 
@@ -1530,13 +1411,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F.3A.0A (VEX.W ignore, VEX.L ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VROUNDSS_VssWssIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float32 op2 = BX_READ_XMM_REG_LO_DWORD(i->rm());
 
@@ -1558,13 +1437,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.66.0F.3A.0B (VEX.W ignore, VEX.L ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VROUNDSD_VsdWsdIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   float64 op2 = BX_READ_XMM_REG_LO_QWORD(i->rm());
 
@@ -1586,13 +1463,11 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_XMM_REG_CLEAR_HIGH(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: VEX.66.0F.3A.40 (VEX.W ignore) */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::VDPPS_VpsWpsIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedAvxRegister op1 = BX_READ_AVX_REG(i->vvv()), op2 = \
BX_READ_AVX_REG(i->rm());  unsigned len = i->getVL();
   Bit8u mask = i->Ib();
@@ -1640,7 +1515,6 @@
   check_exceptionsSSE(status_word.float_exception_flags);
 
   BX_WRITE_AVX_REGZ(i->nnn(), op1, len);
-#endif
 }
 
 /* Opcode: VEX.66.0F.3A.13 (VEX.W=0) */
@@ -1707,4 +1581,4 @@
   }
 }
 
-#endif
+#endif // BX_SUPPORT_AVX && BX_CPU_LEVEL >= 6

Modified: trunk/bochs/cpu/bit.cc
===================================================================
--- trunk/bochs/cpu/bit.cc	2011-06-26 17:42:07 UTC (rev 10426)
+++ trunk/bochs/cpu/bit.cc	2011-06-26 19:15:30 UTC (rev 10427)
@@ -258,6 +258,8 @@
 }
 #endif
 
+#if BX_CPU_LEVEL >= 6
+
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOVBE_GwEwR(bxInstruction_c *i)
 {
   Bit16u val16 = BX_READ_16BIT_REG(i->rm());
@@ -328,4 +330,6 @@
 
 #endif // BX_SUPPORT_X86_64
 
+#endif // BX_CPU_LEVEL >= 6
+
 #endif // BX_CPU_LEVEL >= 3

Modified: trunk/bochs/cpu/cpu.h
===================================================================
--- trunk/bochs/cpu/cpu.h	2011-06-26 17:42:07 UTC (rev 10426)
+++ trunk/bochs/cpu/cpu.h	2011-06-26 19:15:30 UTC (rev 10427)
@@ -2253,6 +2253,7 @@
   BX_SMF void ADDSUBPS_VpsWpsR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
   /* SSE3 */
 
+#if BX_CPU_LEVEL >= 6
   /* SSSE3 */
   BX_SMF void PSHUFB_PqQq(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
   BX_SMF void PHADDW_PqQq(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
@@ -2367,6 +2368,7 @@
   BX_SMF void MOVBE_EqGq(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
 #endif
   /* MOVBE Intel Atom(R) instruction */
+#endif
 
   /* XSAVE/XRSTOR extensions */
   BX_SMF void XSAVE(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
@@ -2375,6 +2377,7 @@
   BX_SMF void XSETBV(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
   /* XSAVE/XRSTOR extensions */
 
+#if BX_CPU_LEVEL >= 6
   /* AES instructions */
   BX_SMF void AESIMC_VdqWdqR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
   BX_SMF void AESENC_VdqWdqR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
@@ -2384,6 +2387,7 @@
   BX_SMF void AESKEYGENASSIST_VdqWdqIbR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
   BX_SMF void PCLMULQDQ_VdqWdqIbR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
   /* AES instructions */
+#endif
 
   /* VMX instructions */
   BX_SMF void VMXON(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
@@ -2397,12 +2401,14 @@
   BX_SMF void VMWRITE(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
   /* VMX instructions */
 
+#if BX_CPU_LEVEL >= 6
   /* VMXx2 */
   BX_SMF void INVEPT(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
   BX_SMF void INVVPID(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
   /* VMXx2 */
+#endif
 
-#if BX_SUPPORT_AVX
+#if BX_SUPPORT_AVX && BX_CPU_LEVEL >= 6
   BX_SMF void VZEROUPPER(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
 
   BX_SMF void VMOVSS_VssWssR(bxInstruction_c *i) BX_CPP_AttrRegparmN(1);

Modified: trunk/bochs/cpu/crc32.cc
===================================================================
--- trunk/bochs/cpu/crc32.cc	2011-06-26 17:42:07 UTC (rev 10426)
+++ trunk/bochs/cpu/crc32.cc	2011-06-26 19:15:30 UTC (rev 10427)
@@ -26,6 +26,8 @@
 #include "cpu.h"
 #define LOG_THIS BX_CPU_THIS_PTR
 
+#if BX_CPU_LEVEL >= 6
+
 // 3-byte opcodes
 
 #define CRC32_POLYNOMIAL BX_CONST64(0x11edc6f41)
@@ -138,3 +140,5 @@
 }
 
 #endif // BX_SUPPORT_X86_64
+
+#endif // BX_CPU_LEVEL >= 6

Modified: trunk/bochs/cpu/fetchdecode.cc
===================================================================
--- trunk/bochs/cpu/fetchdecode.cc	2011-06-26 17:42:07 UTC (rev 10426)
+++ trunk/bochs/cpu/fetchdecode.cc	2011-06-26 19:15:30 UTC (rev 10427)
@@ -506,9 +506,17 @@
   /* 0F 35 /w */ { BxTraceEnd, BX_IA_SYSEXIT },
   /* 0F 36 /w */ { 0, BX_IA_ERROR },
   /* 0F 37 /w */ { 0, BX_IA_ERROR },
+#if BX_CPU_LEVEL >= 6
   /* 0F 38 /w */ { Bx3ByteOp, BX_IA_ERROR, BxOpcode3ByteTable0f38 }, // 3-byte \
escape +#else
+  /* 0F 38 /w */ { 0, BX_IA_ERROR },
+#endif
   /* 0F 39 /w */ { 0, BX_IA_ERROR },
+#if BX_CPU_LEVEL >= 6
   /* 0F 3A /w */ { Bx3ByteOp | BxImmediate_Ib, BX_IA_ERROR, BxOpcode3ByteTable0f3a \
}, // 3-byte escape +#else
+  /* 0F 3A /w */ { 0, BX_IA_ERROR },
+#endif
   /* 0F 3B /w */ { 0, BX_IA_ERROR },
   /* 0F 3C /w */ { 0, BX_IA_ERROR },
   /* 0F 3D /w */ { 0, BX_IA_ERROR },
@@ -1051,9 +1059,17 @@
   /* 0F 35 /d */ { BxTraceEnd, BX_IA_SYSEXIT },
   /* 0F 36 /d */ { 0, BX_IA_ERROR },
   /* 0F 37 /d */ { 0, BX_IA_ERROR },
+#if BX_CPU_LEVEL >= 6
   /* 0F 38 /d */ { Bx3ByteOp, BX_IA_ERROR, BxOpcode3ByteTable0f38 }, // 3-byte \
escape +#else
+  /* 0F 38 /d */ { 0, BX_IA_ERROR },
+#endif
   /* 0F 39 /d */ { 0, BX_IA_ERROR },
+#if BX_CPU_LEVEL >= 6
   /* 0F 3A /d */ { Bx3ByteOp | BxImmediate_Ib, BX_IA_ERROR, BxOpcode3ByteTable0f3a \
}, // 3-byte escape +#else
+  /* 0F 3A /d */ { 0, BX_IA_ERROR },
+#endif
   /* 0F 3B /d */ { 0, BX_IA_ERROR },
   /* 0F 3C /d */ { 0, BX_IA_ERROR },
   /* 0F 3D /d */ { 0, BX_IA_ERROR },

Modified: trunk/bochs/cpu/fetchdecode_avx.h
===================================================================
--- trunk/bochs/cpu/fetchdecode_avx.h	2011-06-26 17:42:07 UTC (rev 10426)
+++ trunk/bochs/cpu/fetchdecode_avx.h	2011-06-26 19:15:30 UTC (rev 10427)
@@ -24,7 +24,7 @@
 #ifndef BX_AVX_FETCHDECODE_TABLES_H
 #define BX_AVX_FETCHDECODE_TABLES_H
 
-#if BX_SUPPORT_AVX
+#if BX_SUPPORT_AVX && BX_CPU_LEVEL >= 6
 
 /* ************************************************************************ */
 
@@ -1175,6 +1175,6 @@
   /* FF */ { 0, BX_IA_ERROR }
 };
 
-#endif
+#endif // BX_SUPPORT_AVX && BX_CPU_LEVEL >= 6
 
 #endif // BX_AVX_FETCHDECODE_TABLES_H

Modified: trunk/bochs/cpu/fetchdecode_sse.h
===================================================================
--- trunk/bochs/cpu/fetchdecode_sse.h	2011-06-26 17:42:07 UTC (rev 10426)
+++ trunk/bochs/cpu/fetchdecode_sse.h	2011-06-26 19:15:30 UTC (rev 10427)
@@ -24,7 +24,6 @@
 #ifndef BX_SSE_FETCHDECODE_TABLES_H
 #define BX_SSE_FETCHDECODE_TABLES_H
 
-
 /* ********** */
 /* SSE Groups */
 /* ********** */
@@ -759,6 +758,8 @@
   /* F2 */ { 0, BX_IA_ERROR }
 };
 
+#if BX_CPU_LEVEL >= 6
+
 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3800[6] = {
   /* 66 */ { 0, BX_IA_PSHUFB_VdqWdq },
   /* F3 */ { 0, BX_IA_ERROR },
@@ -1421,4 +1422,6 @@
   /* FF */ { 0, BX_IA_ERROR }
 };
 
+#endif // BX_CPU_LEVEL >= 6
+
 #endif // BX_SSE_FETCHDECODE_TABLES_H

Modified: trunk/bochs/cpu/ia_opcodes.h
===================================================================
--- trunk/bochs/cpu/ia_opcodes.h	2011-06-26 17:42:07 UTC (rev 10426)
+++ trunk/bochs/cpu/ia_opcodes.h	2011-06-26 19:15:30 UTC (rev 10427)
@@ -1000,6 +1000,7 @@
 bx_define_opcode(BX_IA_LDDQU_VdqMdq, &BX_CPU_C::MOVUPS_VpsWpsM, &BX_CPU_C::BxError, \
BX_CPU_SSE3, BX_PREPARE_SSE)  // SSE3
 
+#if BX_CPU_LEVEL >= 6
 // SSSE3
 bx_define_opcode(BX_IA_PSHUFB_PqQq, &BX_CPU_C::PSHUFB_PqQq, &BX_CPU_C::PSHUFB_PqQq, \
BX_CPU_SSSE3, 0)  bx_define_opcode(BX_IA_PHADDW_PqQq, &BX_CPU_C::PHADDW_PqQq, \
&BX_CPU_C::PHADDW_PqQq, BX_CPU_SSSE3, 0) @@ -1113,6 +1114,8 @@
 #endif
 // MOVBE instruction
 
+#endif // BX_CPU_LEVEL >= 6
+
 // POPCNT instruction
 bx_define_opcode(BX_IA_POPCNT_GdEd, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::POPCNT_GdEdR, \
BX_CPU_SSE4_2, 0)  bx_define_opcode(BX_IA_POPCNT_GwEw, &BX_CPU_C::LOAD_Ew, \
&BX_CPU_C::POPCNT_GwEwR, BX_CPU_SSE4_2, 0) @@ -1128,6 +1131,8 @@
 bx_define_opcode(BX_IA_XGETBV, &BX_CPU_C::BxError, &BX_CPU_C::XGETBV, BX_CPU_XSAVE, \
0)  bx_define_opcode(BX_IA_XSAVEOPT, &BX_CPU_C::XSAVE, &BX_CPU_C::BxError, \
BX_CPU_XSAVEOPT, 0)  
+#if BX_CPU_LEVEL >= 6
+
 // AES instructions
 bx_define_opcode(BX_IA_AESIMC_VdqWdq, &BX_CPU_C::LOAD_Wdq, \
&BX_CPU_C::AESIMC_VdqWdqR, BX_CPU_AES_PCLMULQDQ, BX_PREPARE_SSE)  \
bx_define_opcode(BX_IA_AESENC_VdqWdq, &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::AESENC_VdqWdqR, \
BX_CPU_AES_PCLMULQDQ, BX_PREPARE_SSE) @@ -1137,6 +1142,8 @@
 bx_define_opcode(BX_IA_AESKEYGENASSIST_VdqWdqIb, &BX_CPU_C::LOAD_Wdq, \
&BX_CPU_C::AESKEYGENASSIST_VdqWdqIbR, BX_CPU_AES_PCLMULQDQ, BX_PREPARE_SSE)  \
bx_define_opcode(BX_IA_PCLMULQDQ_VdqWdqIb, &BX_CPU_C::LOAD_Wdq, \
&BX_CPU_C::PCLMULQDQ_VdqWdqIbR, BX_CPU_AES_PCLMULQDQ, BX_PREPARE_SSE)  
+#endif
+
 #if BX_SUPPORT_X86_64
 bx_define_opcode(BX_IA_ADD_GqEq, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::ADD_GqEqR, \
BX_CPU_X86_64, 0)  bx_define_opcode(BX_IA_OR_GqEq, &BX_CPU_C::LOAD_Eq, \
&BX_CPU_C::OR_GqEqR, BX_CPU_X86_64, 0) @@ -1348,12 +1355,14 @@
 bx_define_opcode(BX_IA_VMREAD_EqGq, &BX_CPU_C::VMREAD, &BX_CPU_C::VMREAD, \
BX_CPU_X86_64 | BX_CPU_VMX, 0)  bx_define_opcode(BX_IA_VMWRITE_GqEq, \
&BX_CPU_C::VMWRITE, &BX_CPU_C::VMWRITE, BX_CPU_X86_64 | BX_CPU_VMX, 0)  #endif
+#if BX_CPU_LEVEL >= 6
 bx_define_opcode(BX_IA_INVEPT, &BX_CPU_C::INVEPT, &BX_CPU_C::BxError, BX_CPU_X86_64 \
| BX_CPU_VMX, 0)  bx_define_opcode(BX_IA_INVVPID, &BX_CPU_C::INVVPID, \
&BX_CPU_C::BxError, BX_CPU_X86_64 | BX_CPU_VMX, 0) +#endif
 // VMX
 
 // AVX
-#if BX_SUPPORT_AVX
+#if BX_SUPPORT_AVX && BX_CPU_LEVEL >= 6
 bx_define_opcode(BX_IA_VMOVUPD_VpdWpd, &BX_CPU_C::VMOVUPS_VpsWpsM, \
&BX_CPU_C::VMOVAPS_VpsWpsR, BX_CPU_AVX, BX_PREPARE_AVX | BX_VEX_NO_VVV | BX_VEX_L128 \
| BX_VEX_L256)  bx_define_opcode(BX_IA_VMOVUPD_WpdVpd, &BX_CPU_C::VMOVUPS_WpsVpsM, \
&BX_CPU_C::VMOVAPS_VpsWpsR, BX_CPU_AVX, BX_PREPARE_AVX | BX_VEX_NO_VVV | BX_VEX_L128 \
| BX_VEX_L256) /* dstRM */  bx_define_opcode(BX_IA_VMOVSD_VsdWsd, \
&BX_CPU_C::MOVQ_VqWqM, &BX_CPU_C::VMOVSD_VsdWsdR, BX_CPU_AVX, BX_PREPARE_AVX | \
BX_VEX_L128)

Modified: trunk/bochs/cpu/mmx.cc
===================================================================
--- trunk/bochs/cpu/mmx.cc	2011-06-26 17:42:07 UTC (rev 10426)
+++ trunk/bochs/cpu/mmx.cc	2011-06-26 19:15:30 UTC (rev 10427)
@@ -43,10 +43,11 @@
 
 #endif
 
+#if BX_CPU_LEVEL >= 6
+
 /* 0F 38 00 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PSHUFB_PqQq(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 5
   BX_CPU_THIS_PTR prepareMMX();
 
   BxPackedMmxRegister op1 = BX_READ_MMX_REG(i->nnn()), op2, result;
@@ -73,13 +74,11 @@
   }
 
   BX_WRITE_MMX_REG(i->nnn(), result);
-#endif
 }
 
 /* 0F 38 01 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PHADDW_PqQq(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 5
   BX_CPU_THIS_PTR prepareMMX();
 
   BxPackedMmxRegister op1 = BX_READ_MMX_REG(i->nnn()), op2;
@@ -102,13 +101,11 @@
   MMXUW3(op1) = MMXUW2(op2) + MMXUW3(op2);
 
   BX_WRITE_MMX_REG(i->nnn(), op1);
-#endif
 }
 
 /* 0F 38 02 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PHADDD_PqQq(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 5
   BX_CPU_THIS_PTR prepareMMX();
 
   BxPackedMmxRegister op1 = BX_READ_MMX_REG(i->nnn()), op2;
@@ -129,13 +126,11 @@
   MMXUD1(op1) = MMXUD0(op2) + MMXUD1(op2);
 
   BX_WRITE_MMX_REG(i->nnn(), op1);
-#endif
 }
 
 /* 0F 38 03 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PHADDSW_PqQq(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 5
   BX_CPU_THIS_PTR prepareMMX();
 
   BxPackedMmxRegister op1 = BX_READ_MMX_REG(i->nnn()), op2;
@@ -157,15 +152,12 @@
   MMXSW2(op1) = SaturateDwordSToWordS(Bit32s(MMXSW0(op2)) + Bit32s(MMXSW1(op2)));
   MMXSW3(op1) = SaturateDwordSToWordS(Bit32s(MMXSW2(op2)) + Bit32s(MMXSW3(op2)));
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
-#endif
 }
 
 /* 0F 38 04 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMADDUBSW_PqQq(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 5
   BX_CPU_THIS_PTR prepareMMX();
 
   BxPackedMmxRegister op1 = BX_READ_MMX_REG(i->nnn()), op2;
@@ -190,15 +182,12 @@
     op1.mmx16s(j) = SaturateDwordSToWordS(temp);
   }
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
-#endif
 }
 
 /* 0F 38 05 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PHSUBSW_PqQq(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 5
   BX_CPU_THIS_PTR prepareMMX();
 
   BxPackedMmxRegister op1 = BX_READ_MMX_REG(i->nnn()), op2;
@@ -220,15 +209,12 @@
   MMXSW2(op1) = SaturateDwordSToWordS(Bit32s(MMXSW0(op2)) - Bit32s(MMXSW1(op2)));
   MMXSW3(op1) = SaturateDwordSToWordS(Bit32s(MMXSW2(op2)) - Bit32s(MMXSW3(op2)));
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
-#endif
 }
 
 /* 0F 38 05 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PHSUBW_PqQq(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 5
   BX_CPU_THIS_PTR prepareMMX();
 
   BxPackedMmxRegister op1 = BX_READ_MMX_REG(i->nnn()), op2;
@@ -251,13 +237,11 @@
   MMXUW3(op1) = MMXUW2(op2) - MMXUW3(op2);
 
   BX_WRITE_MMX_REG(i->nnn(), op1);
-#endif
 }
 
 /* 0F 38 06 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PHSUBD_PqQq(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 5
   BX_CPU_THIS_PTR prepareMMX();
 
   BxPackedMmxRegister op1 = BX_READ_MMX_REG(i->nnn()), op2;
@@ -278,13 +262,11 @@
   MMXUD1(op1) = MMXUD0(op2) - MMXUD1(op2);
 
   BX_WRITE_MMX_REG(i->nnn(), op1);
-#endif
 }
 
 /* 0F 38 08 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PSIGNB_PqQq(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 5
   BX_CPU_THIS_PTR prepareMMX();
 
   BxPackedMmxRegister op1 = BX_READ_MMX_REG(i->nnn()), op2;
@@ -307,13 +289,11 @@
   }
 
   BX_WRITE_MMX_REG(i->nnn(), op1);
-#endif
 }
 
 /* 0F 38 09 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PSIGNW_PqQq(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 5
   BX_CPU_THIS_PTR prepareMMX();
 
   BxPackedMmxRegister op1 = BX_READ_MMX_REG(i->nnn()), op2;
@@ -336,13 +316,11 @@
   }
 
   BX_WRITE_MMX_REG(i->nnn(), op1);
-#endif
 }
 
 /* 0F 38 0A */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PSIGND_PqQq(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 5
   BX_CPU_THIS_PTR prepareMMX();
 
   BxPackedMmxRegister op1 = BX_READ_MMX_REG(i->nnn()), op2;
@@ -367,13 +345,11 @@
   MMXSD1(op1) *= sign;
 
   BX_WRITE_MMX_REG(i->nnn(), op1);
-#endif
 }
 
 /* 0F 38 0B */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMULHRSW_PqQq(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 5
   BX_CPU_THIS_PTR prepareMMX();
 
   BxPackedMmxRegister op1 = BX_READ_MMX_REG(i->nnn()), op2;
@@ -395,15 +371,12 @@
   MMXUW2(op1) = (((MMXSW2(op1) * MMXSW2(op2)) >> 14) + 1) >> 1;
   MMXUW3(op1) = (((MMXSW3(op1) * MMXSW3(op2)) >> 14) + 1) >> 1;
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
-#endif
 }
 
 /* 0F 38 1C */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PABSB_PqQq(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 5
   BX_CPU_THIS_PTR prepareMMX();
 
   BxPackedMmxRegister op;
@@ -428,15 +401,12 @@
   if (MMXSB6(op) < 0) MMXUB6(op) = -MMXSB6(op);
   if (MMXSB7(op) < 0) MMXUB7(op) = -MMXSB7(op);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op);
-#endif
 }
 
 /* 0F 38 1D */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PABSW_PqQq(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 5
   BX_CPU_THIS_PTR prepareMMX();
 
   BxPackedMmxRegister op;
@@ -457,15 +427,12 @@
   if (MMXSW2(op) < 0) MMXUW2(op) = -MMXSW2(op);
   if (MMXSW3(op) < 0) MMXUW3(op) = -MMXSW3(op);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op);
-#endif
 }
 
 /* 0F 38 1E */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PABSD_PqQq(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 5
   BX_CPU_THIS_PTR prepareMMX();
 
   BxPackedMmxRegister op;
@@ -484,15 +451,12 @@
   if (MMXSD0(op) < 0) MMXUD0(op) = -MMXSD0(op);
   if (MMXSD1(op) < 0) MMXUD1(op) = -MMXSD1(op);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op);
-#endif
 }
 
 /* 0F 3A 0F */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PALIGNR_PqQqIb(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 5
   BX_CPU_THIS_PTR prepareMMX();
 
   BxPackedMmxRegister op1 = BX_READ_MMX_REG(i->nnn()), op2;
@@ -520,11 +484,11 @@
   else
     MMXUQ(op1) = 0;
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
-#endif
 }
 
+#endif
+
 /* 0F 60 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUNPCKLBW_PqQd(bxInstruction_c *i)
 {
@@ -554,7 +518,6 @@
   MMXUB1(op1) = MMXUB0(op2);
 //MMXUB0(op1) = MMXUB0(op1);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -584,7 +547,6 @@
   MMXUW1(op1) = MMXUW0(op2);
 //MMXUW0(op1) = MMXUW0(op1);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -611,7 +573,6 @@
 
   MMXUD1(op1) = MMXUD0(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -646,7 +607,6 @@
   MMXSB6(op1) = SaturateWordSToByteS(MMXSW2(op2));
   MMXSB7(op1) = SaturateWordSToByteS(MMXSW3(op2));
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -680,7 +640,6 @@
   MMXUB6(op1) = (MMXSB6(op1) > MMXSB6(op2)) ? 0xff : 0;
   MMXUB7(op1) = (MMXSB7(op1) > MMXSB7(op2)) ? 0xff : 0;
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -710,7 +669,6 @@
   MMXUW2(op1) = (MMXSW2(op1) > MMXSW2(op2)) ? 0xffff : 0;
   MMXUW3(op1) = (MMXSW3(op1) > MMXSW3(op2)) ? 0xffff : 0;
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -738,7 +696,6 @@
   MMXUD0(op1) = (MMXSD0(op1) > MMXSD0(op2)) ? 0xffffffff : 0;
   MMXUD1(op1) = (MMXSD1(op1) > MMXSD1(op2)) ? 0xffffffff : 0;
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -772,7 +729,6 @@
   MMXUB6(op1) = SaturateWordSToByteU(MMXSW2(op2));
   MMXUB7(op1) = SaturateWordSToByteU(MMXSW3(op2));
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -806,7 +762,6 @@
   MMXUB6(op1) = MMXUB7(op1);
   MMXUB7(op1) = MMXUB7(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -836,7 +791,6 @@
   MMXUW2(op1) = MMXUW3(op1);
   MMXUW3(op1) = MMXUW3(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -864,7 +818,6 @@
   MMXUD0(op1) = MMXUD1(op1);
   MMXUD1(op1) = MMXUD1(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -894,7 +847,6 @@
   MMXSW2(op1) = SaturateDwordSToWordS(MMXSD0(op2));
   MMXSW3(op1) = SaturateDwordSToWordS(MMXSD1(op2));
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -924,7 +876,6 @@
 
   BX_CPU_THIS_PTR prepareFPU2MMX(); /* FPU2MMX transition */
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op);
 #endif
 }
@@ -939,7 +890,6 @@
   BxPackedMmxRegister op;
   MMXUQ(op) = BX_READ_64BIT_REG(i->rm());
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op);
 }
 #endif
@@ -967,7 +917,6 @@
 
   BX_CPU_THIS_PTR prepareFPU2MMX(); /* FPU2MMX transition */
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op);
 #endif
 }
@@ -998,7 +947,6 @@
   MMXUW2(result) = op.mmx16u((order>>4) & 0x3);
   MMXUW3(result) = op.mmx16u((order>>6) & 0x3);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), result);
 #endif
 }
@@ -1032,7 +980,6 @@
   MMXUB6(op1) = (MMXUB6(op1) == MMXUB6(op2)) ? 0xff : 0;
   MMXUB7(op1) = (MMXUB7(op1) == MMXUB7(op2)) ? 0xff : 0;
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1062,7 +1009,6 @@
   MMXUW2(op1) = (MMXUW2(op1) == MMXUW2(op2)) ? 0xffff : 0;
   MMXUW3(op1) = (MMXUW3(op1) == MMXUW3(op2)) ? 0xffff : 0;
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1090,7 +1036,6 @@
   MMXUD0(op1) = (MMXUD0(op1) == MMXUD0(op2)) ? 0xffffffff : 0;
   MMXUD1(op1) = (MMXUD1(op1) == MMXUD1(op2)) ? 0xffffffff : 0;
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1197,7 +1142,6 @@
 
   op1.mmx16u(i->Ib() & 0x3) = op2;
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1247,7 +1191,6 @@
     MMXUW3(op1) >>= shift;
   }
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1281,7 +1224,6 @@
     MMXUD1(op1) >>= shift;
   }
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1313,7 +1255,6 @@
     MMXUQ(op1) >>= MMXUB0(op2);
   }
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1340,7 +1281,6 @@
 
   MMXUQ(op1) += MMXUQ(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1375,7 +1315,6 @@
   MMXUW2(op1) = product3 & 0xffff;
   MMXUW3(op1) = product4 & 0xffff;
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1399,7 +1338,6 @@
   if(MMXUB6(op) & 0x80) result |= 0x40;
   if(MMXUB7(op) & 0x80) result |= 0x80;
 
-  /* now write result back to destination */
   BX_WRITE_32BIT_REGZ(i->nnn(), result);
 #endif
 }
@@ -1435,7 +1373,6 @@
   if(MMXUB6(op1) > MMXUB6(op2)) MMXUB6(result) = MMXUB6(op1) - MMXUB6(op2);
   if(MMXUB7(op1) > MMXUB7(op2)) MMXUB7(result) = MMXUB7(op1) - MMXUB7(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), result);
 #endif
 }
@@ -1467,7 +1404,6 @@
   if(MMXUW2(op1) > MMXUW2(op2)) MMXUW2(result) = MMXUW2(op1) - MMXUW2(op2);
   if(MMXUW3(op1) > MMXUW3(op2)) MMXUW3(result) = MMXUW3(op1) - MMXUW3(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), result);
 #endif
 }
@@ -1501,7 +1437,6 @@
   if(MMXUB6(op2) < MMXUB6(op1)) MMXUB6(op1) = MMXUB6(op2);
   if(MMXUB7(op2) < MMXUB7(op1)) MMXUB7(op1) = MMXUB7(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1528,7 +1463,6 @@
 
   MMXUQ(op1) &= MMXUQ(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1563,7 +1497,6 @@
   MMXUB6(op1) = SaturateWordSToByteU(Bit16s(MMXUB6(op1)) + Bit16s(MMXUB6(op2)));
   MMXUB7(op1) = SaturateWordSToByteU(Bit16s(MMXUB7(op1)) + Bit16s(MMXUB7(op2)));
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1593,7 +1526,6 @@
   MMXUW2(op1) = SaturateDwordSToWordU(Bit32s(MMXUW2(op1)) + Bit32s(MMXUW2(op2)));
   MMXUW3(op1) = SaturateDwordSToWordU(Bit32s(MMXUW3(op1)) + Bit32s(MMXUW3(op2)));
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1627,7 +1559,6 @@
   if(MMXUB6(op2) > MMXUB6(op1)) MMXUB6(op1) = MMXUB6(op2);
   if(MMXUB7(op2) > MMXUB7(op1)) MMXUB7(op1) = MMXUB7(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1654,7 +1585,6 @@
 
   MMXUQ(op1) = ~(MMXUQ(op1)) & MMXUQ(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1688,7 +1618,6 @@
   MMXUB6(op1) = (MMXUB6(op1) + MMXUB6(op2) + 1) >> 1;
   MMXUB7(op1) = (MMXUB7(op1) + MMXUB7(op2) + 1) >> 1;
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1730,7 +1659,6 @@
     MMXUW3(op1) = (Bit16u)(MMXSW3(op1) >> shift);
   }
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1768,7 +1696,6 @@
     MMXUD1(op1) = (Bit32u)(MMXSD1(op1) >> shift);
   }
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1798,7 +1725,6 @@
   MMXUW2(op1) = (MMXUW2(op1) + MMXUW2(op2) + 1) >> 1;
   MMXUW3(op1) = (MMXUW3(op1) + MMXUW3(op2) + 1) >> 1;
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1833,7 +1759,6 @@
   MMXUW2(op1) = (Bit16u)(product3 >> 16);
   MMXUW3(op1) = (Bit16u)(product4 >> 16);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1868,7 +1793,6 @@
   MMXUW2(op1) = Bit16u(product3 >> 16);
   MMXUW3(op1) = Bit16u(product4 >> 16);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1917,7 +1841,6 @@
   MMXSB6(op1) = SaturateWordSToByteS(Bit16s(MMXSB6(op1)) - Bit16s(MMXSB6(op2)));
   MMXSB7(op1) = SaturateWordSToByteS(Bit16s(MMXSB7(op1)) - Bit16s(MMXSB7(op2)));
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1947,7 +1870,6 @@
   MMXSW2(op1) = SaturateDwordSToWordS(Bit32s(MMXSW2(op1)) - Bit32s(MMXSW2(op2)));
   MMXSW3(op1) = SaturateDwordSToWordS(Bit32s(MMXSW3(op1)) - Bit32s(MMXSW3(op2)));
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -1977,7 +1899,6 @@
   if(MMXSW2(op2) < MMXSW2(op1)) MMXSW2(op1) = MMXSW2(op2);
   if(MMXSW3(op2) < MMXSW3(op1)) MMXSW3(op1) = MMXSW3(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -2004,7 +1925,6 @@
 
   MMXUQ(op1) |= MMXUQ(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -2038,7 +1958,6 @@
   MMXSB6(op1) = SaturateWordSToByteS(Bit16s(MMXSB6(op1)) + Bit16s(MMXSB6(op2)));
   MMXSB7(op1) = SaturateWordSToByteS(Bit16s(MMXSB7(op1)) + Bit16s(MMXSB7(op2)));
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -2068,7 +1987,6 @@
   MMXSW2(op1) = SaturateDwordSToWordS(Bit32s(MMXSW2(op1)) + Bit32s(MMXSW2(op2)));
   MMXSW3(op1) = SaturateDwordSToWordS(Bit32s(MMXSW3(op1)) + Bit32s(MMXSW3(op2)));
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -2098,7 +2016,6 @@
   if(MMXSW2(op2) > MMXSW2(op1)) MMXSW2(op1) = MMXSW2(op2);
   if(MMXSW3(op2) > MMXSW3(op1)) MMXSW3(op1) = MMXSW3(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -2125,7 +2042,6 @@
 
   MMXUQ(op1) ^= MMXUQ(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -2161,7 +2077,6 @@
     MMXUW3(op1) <<= shift;
   }
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -2195,7 +2110,6 @@
     MMXUD1(op1) <<= shift;
   }
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -2227,7 +2141,6 @@
     MMXUQ(op1) <<= MMXUB0(op2);
   }
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -2254,7 +2167,6 @@
 
   MMXUQ(op1) = Bit64u(MMXUD0(op1)) * Bit64u(MMXUD0(op2));
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -2293,7 +2205,6 @@
     MMXUD1(op1) = Bit32s(MMXSW2(op1))*Bit32s(MMXSW2(op2)) + \
Bit32s(MMXSW3(op1))*Bit32s(MMXSW3(op2));  }
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -2330,7 +2241,6 @@
 
   MMXUQ(op1) = (Bit64u) temp;
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -2393,7 +2303,6 @@
   MMXUB6(op1) -= MMXUB6(op2);
   MMXUB7(op1) -= MMXUB7(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -2423,7 +2332,6 @@
   MMXUW2(op1) -= MMXUW2(op2);
   MMXUW3(op1) -= MMXUW3(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -2451,7 +2359,6 @@
   MMXUD0(op1) -= MMXUD0(op2);
   MMXUD1(op1) -= MMXUD1(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -2478,7 +2385,6 @@
 
   MMXUQ(op1) -= MMXUQ(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -2512,7 +2418,6 @@
   MMXUB6(op1) += MMXUB6(op2);
   MMXUB7(op1) += MMXUB7(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -2542,7 +2447,6 @@
   MMXUW2(op1) += MMXUW2(op2);
   MMXUW3(op1) += MMXUW3(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -2570,7 +2474,6 @@
   MMXUD0(op1) += MMXUD0(op2);
   MMXUD1(op1) += MMXUD1(op2);
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->nnn(), op1);
 #endif
 }
@@ -2594,7 +2497,6 @@
     MMXUW3(op) >>= shift;
   }
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->rm(), op);
 #endif
 }
@@ -2624,7 +2526,6 @@
     MMXUW3(op) = (Bit16u)(MMXSW3(op) >> shift);
   }
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->rm(), op);
 #endif
 }
@@ -2648,7 +2549,6 @@
     MMXUW3(op) <<= shift;
   }
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->rm(), op);
 #endif
 }
@@ -2670,7 +2570,6 @@
     MMXUD1(op) >>= shift;
   }
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->rm(), op);
 #endif
 }
@@ -2696,7 +2595,6 @@
     MMXUD1(op) = (Bit32u)(MMXSD1(op) >> shift);
   }
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->rm(), op);
 #endif
 }
@@ -2718,7 +2616,6 @@
     MMXUD1(op) <<= shift;
   }
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->rm(), op);
 #endif
 }
@@ -2740,7 +2637,6 @@
     MMXUQ(op) >>= shift;
   }
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->rm(), op);
 #endif
 }
@@ -2762,7 +2658,6 @@
     MMXUQ(op) <<= shift;
   }
 
-  /* now write result back to destination */
   BX_WRITE_MMX_REG(i->rm(), op);
 #endif
 }

Modified: trunk/bochs/cpu/sse.cc
===================================================================
--- trunk/bochs/cpu/sse.cc	2011-06-26 17:42:07 UTC (rev 10426)
+++ trunk/bochs/cpu/sse.cc	2011-06-26 19:15:30 UTC (rev 10427)
@@ -30,10 +30,11 @@
 /* SSE Integer Operations (128bit MMX extensions) */
 /* ********************************************** */
 
+#if BX_CPU_LEVEL >= 6
+
 /* 66 0F 38 00 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PSHUFB_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   BxPackedXmmRegister op2 = BX_READ_XMM_REG(i->rm()), result;
 
@@ -47,13 +48,11 @@
   }
 
   BX_WRITE_XMM_REGZ(i->nnn(), result, i->getVL());
-#endif
 }
 
 /* 66 0F 38 01 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PHADDW_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   op1.xmm16u(0) = op1.xmm16u(0) + op1.xmm16u(1);
@@ -67,13 +66,11 @@
   op1.xmm16u(7) = op2.xmm16u(6) + op2.xmm16u(7);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 02 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PHADDD_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   op1.xmm32u(0) = op1.xmm32u(0) + op1.xmm32u(1);
@@ -82,13 +79,11 @@
   op1.xmm32u(3) = op2.xmm32u(2) + op2.xmm32u(3);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 03 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PHADDSW_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   op1.xmm16s(0) = SaturateDwordSToWordS(Bit32s(op1.xmm16s(0)) + \
Bit32s(op1.xmm16s(1))); @@ -102,13 +97,11 @@
   op1.xmm16s(7) = SaturateDwordSToWordS(Bit32s(op2.xmm16s(6)) + \
Bit32s(op2.xmm16s(7)));  
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 04 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMADDUBSW_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   for(unsigned j=0; j<8; j++)
@@ -120,13 +113,11 @@
   }
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 05 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PHSUBSW_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   op1.xmm16s(0) = SaturateDwordSToWordS(Bit32s(op1.xmm16s(0)) - \
Bit32s(op1.xmm16s(1))); @@ -140,13 +131,11 @@
   op1.xmm16s(7) = SaturateDwordSToWordS(Bit32s(op2.xmm16s(6)) - \
Bit32s(op2.xmm16s(7)));  
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 05 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PHSUBW_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   op1.xmm16u(0) = op1.xmm16u(0) - op1.xmm16u(1);
@@ -160,13 +149,11 @@
   op1.xmm16u(7) = op2.xmm16u(6) - op2.xmm16u(7);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 06 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PHSUBD_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   op1.xmm32u(0) = op1.xmm32u(0) - op1.xmm32u(1);
@@ -175,13 +162,11 @@
   op1.xmm32u(3) = op2.xmm32u(2) - op2.xmm32u(3);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 08 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PSIGNB_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   for(unsigned j=0; j<16; j++) {
@@ -190,13 +175,11 @@
   }
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 09 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PSIGNW_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   for(unsigned j=0; j<8; j++) {
@@ -205,13 +188,11 @@
   }
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 0A */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PSIGND_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   for(unsigned j=0; j<4; j++) {
@@ -220,13 +201,11 @@
   }
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 0B */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMULHRSW_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   op1.xmm16u(0) = (((op1.xmm16s(0) * op2.xmm16s(0)) >> 14) + 1) >> 1;
@@ -239,13 +218,11 @@
   op1.xmm16u(7) = (((op1.xmm16s(7) * op2.xmm16s(7)) >> 14) + 1) >> 1;
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 1C */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PABSB_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op = BX_READ_XMM_REG(i->rm());
 
   if(op.xmmsbyte(0x0) < 0) op.xmmubyte(0x0) = -op.xmmsbyte(0x0);
@@ -266,13 +243,11 @@
   if(op.xmmsbyte(0xf) < 0) op.xmmubyte(0xf) = -op.xmmsbyte(0xf);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op, i->getVL());
-#endif
 }
 
 /* 66 0F 38 1D */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PABSW_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op = BX_READ_XMM_REG(i->rm());
 
   if(op.xmm16s(0) < 0) op.xmm16u(0) = -op.xmm16s(0);
@@ -285,13 +260,11 @@
   if(op.xmm16s(7) < 0) op.xmm16u(7) = -op.xmm16s(7);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op, i->getVL());
-#endif
 }
 
 /* 66 0F 38 1E */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PABSD_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op = BX_READ_XMM_REG(i->rm());
 
   if(op.xmm32s(0) < 0) op.xmm32u(0) = -op.xmm32s(0);
@@ -300,13 +273,11 @@
   if(op.xmm32s(3) < 0) op.xmm32u(3) = -op.xmm32s(3);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op, i->getVL());
-#endif
 }
 
 /* 66 0F 38 10 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PBLENDVB_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->nnn()), op2 = \
BX_READ_XMM_REG(i->rm()),  mask = BX_READ_XMM_REG(0); // XMM0
 
@@ -314,13 +285,11 @@
      if (mask.xmmubyte(j) & 0x80) op1.xmmubyte(j) = op2.xmmubyte(j);
 
   BX_WRITE_XMM_REG(i->nnn(), op1);
-#endif
 }
 
 /* 66 0F 38 14 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::BLENDVPS_VpsWpsR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->nnn()), op2 = \
BX_READ_XMM_REG(i->rm()),  mask = BX_READ_XMM_REG(0); // XMM0
 
@@ -330,13 +299,11 @@
   if (mask.xmm32u(3) & 0x80000000) op1.xmm32u(3) = op2.xmm32u(3);
 
   BX_WRITE_XMM_REG(i->nnn(), op1);
-#endif
 }
 
 /* 66 0F 38 15 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::BLENDVPD_VpdWpdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->nnn()), op2 = \
BX_READ_XMM_REG(i->rm()),  mask = BX_READ_XMM_REG(0); // XMM0
 
@@ -344,13 +311,11 @@
   if (mask.xmm32u(3) & 0x80000000) op1.xmm64u(1) = op2.xmm64u(1);
 
   BX_WRITE_XMM_REG(i->nnn(), op1);
-#endif
 }
 
 /* 66 0F 38 17 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PTEST_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->nnn()), op2 = \
BX_READ_XMM_REG(i->rm());  unsigned result = 0;
 
@@ -361,26 +326,22 @@
       (op2.xmm64u(1) & ~op1.xmm64u(1)) == 0) result |= EFlagsCFMask;
 
   setEFlagsOSZAPC(result);
-#endif
 }
 
 /* 66 0F 38 28 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMULDQ_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   op1.xmm64s(0) = Bit64s(op1.xmm32s(0)) * Bit64s(op2.xmm32s(0));
   op1.xmm64s(1) = Bit64s(op1.xmm32s(2)) * Bit64s(op2.xmm32s(2));
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 29 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PCMPEQQ_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   op1.xmm64u(0) = (op1.xmm64s(0) == op2.xmm64s(0)) ?
@@ -390,13 +351,11 @@
         BX_CONST64(0xffffffffffffffff) : 0;
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 2B */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PACKUSDW_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   op1.xmm16u(0) = SaturateDwordSToWordU(op1.xmm32s(0));
@@ -410,13 +369,11 @@
   op1.xmm16u(7) = SaturateDwordSToWordU(op2.xmm32s(3));
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 37 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PCMPGTQ_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   op1.xmm64u(0) = (op1.xmm64s(0) > op2.xmm64s(0)) ?
@@ -426,13 +383,11 @@
         BX_CONST64(0xffffffffffffffff) : 0;
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 38 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMINSB_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   for(unsigned j=0; j<16; j++) {
@@ -440,13 +395,11 @@
   }
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 39 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMINSD_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   if(op2.xmm32s(0) < op1.xmm32s(0)) op1.xmm32u(0) = op2.xmm32u(0);
@@ -455,13 +408,11 @@
   if(op2.xmm32s(3) < op1.xmm32s(3)) op1.xmm32u(3) = op2.xmm32u(3);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 3A */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMINUW_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   if(op2.xmm16u(0) < op1.xmm16u(0)) op1.xmm16u(0) = op2.xmm16u(0);
@@ -474,13 +425,11 @@
   if(op2.xmm16u(7) < op1.xmm16u(7)) op1.xmm16u(7) = op2.xmm16u(7);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 3B */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMINUD_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   if(op2.xmm32u(0) < op1.xmm32u(0)) op1.xmm32u(0) = op2.xmm32u(0);
@@ -489,13 +438,11 @@
   if(op2.xmm32u(3) < op1.xmm32u(3)) op1.xmm32u(3) = op2.xmm32u(3);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 3C */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMAXSB_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   for(unsigned j=0; j<16; j++) {
@@ -503,13 +450,11 @@
   }
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 3D */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMAXSD_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   if(op2.xmm32s(0) > op1.xmm32s(0)) op1.xmm32u(0) = op2.xmm32u(0);
@@ -518,13 +463,11 @@
   if(op2.xmm32s(3) > op1.xmm32s(3)) op1.xmm32u(3) = op2.xmm32u(3);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 3E */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMAXUW_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   if(op2.xmm16u(0) > op1.xmm16u(0)) op1.xmm16u(0) = op2.xmm16u(0);
@@ -537,13 +480,11 @@
   if(op2.xmm16u(7) > op1.xmm16u(7)) op1.xmm16u(7) = op2.xmm16u(7);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 3F */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMAXUD_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   if(op2.xmm32u(0) > op1.xmm32u(0)) op1.xmm32u(0) = op2.xmm32u(0);
@@ -552,13 +493,11 @@
   if(op2.xmm32u(3) > op1.xmm32u(3)) op1.xmm32u(3) = op2.xmm32u(3);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 40 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMULLD_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  
   Bit64s product1 = Bit64s(op1.xmm32s(0)) * Bit64s(op2.xmm32s(0));
@@ -572,13 +511,11 @@
   op1.xmm32u(3) = (Bit32u)(product4 & 0xFFFFFFFF);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 38 41 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PHMINPOSUW_VdqWdqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op = BX_READ_XMM_REG(i->rm());
 
   unsigned min = 0;
@@ -593,13 +530,11 @@
   op.xmm64u(1) = 0;
 
   BX_WRITE_XMM_REGZ(i->nnn(), op, i->getVL());
-#endif
 }
 
 /* 66 0F 3A 0C */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::BLENDPS_VpsWpsIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->nnn()), op2 = \
BX_READ_XMM_REG(i->rm());  Bit8u mask = i->Ib();
 
@@ -609,13 +544,11 @@
   if (mask & 0x8) op1.xmm32u(3) = op2.xmm32u(3);
 
   BX_WRITE_XMM_REG(i->nnn(), op1);
-#endif
 }
 
 /* 66 0F 3A 0D */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::BLENDPD_VpdWpdIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->nnn()), op2 = \
BX_READ_XMM_REG(i->rm());  Bit8u mask = i->Ib();
 
@@ -623,13 +556,11 @@
   if (mask & 0x2) op1.xmm64u(1) = op2.xmm64u(1);
 
   BX_WRITE_XMM_REG(i->nnn(), op1);
-#endif
 }
 
 /* 66 0F 3A 0E */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PBLENDW_VdqWdqIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv()), op2 = \
BX_READ_XMM_REG(i->rm());  Bit8u mask = i->Ib();
 
@@ -643,57 +574,47 @@
   if (mask & 0x80) op1.xmm16u(7) = op2.xmm16u(7);
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 3A 14 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PEXTRB_EbdVdqIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op = BX_READ_XMM_REG(i->nnn());
   Bit8u result = op.xmmubyte(i->Ib() & 0xF);
   BX_WRITE_32BIT_REGZ(i->rm(), (Bit32u) result);
-#endif
 }
 
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PEXTRB_EbdVdqIbM(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op = BX_READ_XMM_REG(i->nnn());
   Bit8u result = op.xmmubyte(i->Ib() & 0xF);
 
   bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i));
   /* pointer, segment address pair */
   write_virtual_byte(i->seg(), eaddr, result);
-#endif
 }
 
 /* 66 0F 3A 15 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PEXTRW_EwdVdqIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op = BX_READ_XMM_REG(i->nnn());
   Bit16u result = op.xmm16u(i->Ib() & 7);
   BX_WRITE_32BIT_REGZ(i->rm(), (Bit32u) result);
-#endif
 }
 
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PEXTRW_EwdVdqIbM(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op = BX_READ_XMM_REG(i->nnn());
   Bit16u result = op.xmm16u(i->Ib() & 7);
 
   bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i));
   /* pointer, segment address pair */
   write_virtual_word(i->seg(), eaddr, result);
-#endif
 }
 
 /* 66 0F 3A 16 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PEXTRD_EdVdqIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op = BX_READ_XMM_REG(i->nnn());
 
 #if BX_SUPPORT_X86_64
@@ -708,13 +629,11 @@
      Bit32u result = op.xmm32u(i->Ib() & 3);
      BX_WRITE_32BIT_REGZ(i->rm(), result);
   }
-#endif
 }
 
 /* 66 0F 3A 16 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PEXTRD_EdVdqIbM(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op = BX_READ_XMM_REG(i->nnn());
 
   bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i));
@@ -731,35 +650,29 @@
      Bit32u result = op.xmm32u(i->Ib() & 3);
      write_virtual_dword(i->seg(), eaddr, result);
   }
-#endif
 }
 
 /* 66 0F 3A 17 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::EXTRACTPS_EdVpsIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op = BX_READ_XMM_REG(i->nnn());
   Bit32u result = op.xmm32u(i->Ib() & 3);
   BX_WRITE_32BIT_REGZ(i->rm(), result);
-#endif
 }
 
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::EXTRACTPS_EdVpsIbM(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op = BX_READ_XMM_REG(i->nnn());
   Bit32u result = op.xmm32u(i->Ib() & 3);
 
   bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i));
   /* pointer, segment address pair */
   write_virtual_dword(i->seg(), eaddr, result);
-#endif
 }
 
 /* 66 0F 3A 20 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PINSRB_VdqEbIb(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   Bit8u op2;
 
@@ -776,13 +689,11 @@
   op1.xmmubyte(i->Ib() & 0xF) = op2;
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 3A 21 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::INSERTPS_VpsWssIb(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   Bit8u control = i->Ib();
   Bit32u op2;
@@ -806,13 +717,11 @@
   if (control & 8) op1.xmm32u(3) = 0;
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 3A 22 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PINSRD_VdqEdIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
 
 #if BX_SUPPORT_X86_64
@@ -827,12 +736,10 @@
   }
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PINSRD_VdqEdIbM(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
 
   bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i));
@@ -851,13 +758,11 @@
   }
 
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
 
 /* 66 0F 3A 42 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::MPSADBW_VdqWdqIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   BxPackedXmmRegister op2 = BX_READ_XMM_REG(i->rm()), result;
 
@@ -879,9 +784,10 @@
   }
 
   BX_WRITE_XMM_REGZ(i->nnn(), result, i->getVL());
-#endif
 }
 
+#endif // BX_CPU_LEVEL >= 6
+
 /* 66 0F 60 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUNPCKLBW_VdqWdqR(bxInstruction_c *i)
 {
@@ -940,7 +846,6 @@
   op1.xmm32u(1) = op2.xmm32u(0);
 //op1.xmm32u(0) = op1.xmm32u(0);
 
-  /* now write result back to destination */
   BX_WRITE_XMM_REG(i->nnn(), op1);
 #endif
 }

Modified: trunk/bochs/cpu/sse_move.cc
===================================================================
--- trunk/bochs/cpu/sse_move.cc	2011-06-26 17:42:07 UTC (rev 10426)
+++ trunk/bochs/cpu/sse_move.cc	2011-06-26 19:15:30 UTC (rev 10427)
@@ -799,10 +799,11 @@
 /* 3-BYTE-OPCODE INSTRUCTIONS */
 /* ************************** */
 
+#if BX_CPU_LEVEL >= 6
+
 /* 66 0F 38 20 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMOVSXBW_VdqWqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister result;
   BxPackedMmxRegister op;
 
@@ -819,13 +820,11 @@
   result.xmm16u(7) = MMXSB7(op);
 
   BX_WRITE_XMM_REGZ(i->nnn(), result, i->getVL());
-#endif
 }
 
 /* 66 0F 38 21 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMOVSXBD_VdqWdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister result;
   Bit32u val32 = BX_READ_XMM_REG_LO_DWORD(i->rm());
 
@@ -835,13 +834,11 @@
   result.xmm32u(3) = (Bit8s) (val32  >> 24);
 
   BX_WRITE_XMM_REGZ(i->nnn(), result, i->getVL());
-#endif
 }
 
 /* 66 0F 38 22 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMOVSXBQ_VdqWwR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister result;
   Bit16u val16 = BX_READ_XMM_REG_LO_WORD(i->rm());
 
@@ -849,29 +846,28 @@
   result.xmm64u(1) = (Bit8s) (val16 >> 8);
 
   BX_WRITE_XMM_REGZ(i->nnn(), result, i->getVL());
-#endif
 }
 
 /* 66 0F 38 23 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMOVSXWD_VdqWqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister result;
-  Bit64u val64 = BX_READ_XMM_REG_LO_QWORD(i->rm());
+  BxPackedMmxRegister op;
 
-  result.xmm32u(0) = (Bit16s) (val64 & 0xFFFF);
-  result.xmm32u(1) = (Bit16s) ((val64 >> 16) & 0xFFFF);
-  result.xmm32u(2) = (Bit16s) ((val64 >> 32) & 0xFFFF);
-  result.xmm32u(3) = (Bit16s) (val64  >> 48);
+  // use MMX register as 64-bit value with convinient accessors
+  MMXUQ(op) = BX_READ_XMM_REG_LO_QWORD(i->rm());
 
+  result.xmm32u(0) = (Bit16s) MMXSW0(op);
+  result.xmm32u(1) = (Bit16s) MMXSW1(op);
+  result.xmm32u(2) = (Bit16s) MMXSW2(op);
+  result.xmm32u(3) = (Bit16s) MMXSW3(op);
+
   BX_WRITE_XMM_REGZ(i->nnn(), result, i->getVL());
-#endif
 }
 
 /* 66 0F 38 24 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMOVSXWQ_VdqWdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister result;
   Bit32u val32 = BX_READ_XMM_REG_LO_DWORD(i->rm());
 
@@ -879,13 +875,11 @@
   result.xmm64u(1) = (Bit16s) (val32 >> 16);
 
   BX_WRITE_XMM_REGZ(i->nnn(), result, i->getVL());
-#endif
 }
 
 /* 66 0F 38 25 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMOVSXDQ_VdqWqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister result;
   Bit64u val64 = BX_READ_XMM_REG_LO_QWORD(i->rm());
 
@@ -893,13 +887,11 @@
   result.xmm64u(1) = (Bit32s) (val64 >> 32);
 
   BX_WRITE_XMM_REGZ(i->nnn(), result, i->getVL());
-#endif
 }
 
 /* 66 0F 38 30 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMOVZXBW_VdqWqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister result;
   BxPackedMmxRegister op;
 
@@ -916,13 +908,11 @@
   result.xmm16u(7) = MMXUB7(op);
 
   BX_WRITE_XMM_REGZ(i->nnn(), result, i->getVL());
-#endif
 }
 
 /* 66 0F 38 31 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMOVZXBD_VdqWdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister result;
   Bit32u val32 = BX_READ_XMM_REG_LO_DWORD(i->rm());
 
@@ -932,13 +922,11 @@
   result.xmm32u(3) = val32  >> 24;
 
   BX_WRITE_XMM_REGZ(i->nnn(), result, i->getVL());
-#endif
 }
 
 /* 66 0F 38 32 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMOVZXBQ_VdqWwR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister result;
   Bit16u val16 = BX_READ_XMM_REG_LO_WORD(i->rm());
 
@@ -946,29 +934,28 @@
   result.xmm64u(1) = val16 >> 8;
 
   BX_WRITE_XMM_REGZ(i->nnn(), result, i->getVL());
-#endif
 }
 
 /* 66 0F 38 33 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMOVZXWD_VdqWqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister result;
-  Bit64u val64 = BX_READ_XMM_REG_LO_QWORD(i->rm());
+  BxPackedMmxRegister op;
 
-  result.xmm32u(0) = val64 & 0xFFFF;
-  result.xmm32u(1) = (val64 >> 16) & 0xFFFF;
-  result.xmm32u(2) = (val64 >> 32) & 0xFFFF;
-  result.xmm32u(3) = val64  >> 48;
+  // use MMX register as 64-bit value with convinient accessors
+  MMXUQ(op) = BX_READ_XMM_REG_LO_QWORD(i->rm());
 
+  result.xmm32u(0) = MMXUW0(op);
+  result.xmm32u(1) = MMXUW1(op);
+  result.xmm32u(2) = MMXUW2(op);
+  result.xmm32u(3) = MMXUW3(op);
+
   BX_WRITE_XMM_REGZ(i->nnn(), result, i->getVL());
-#endif
 }
 
 /* 66 0F 38 34 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMOVZXWQ_VdqWdR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister result;
   Bit32u val32 = BX_READ_XMM_REG_LO_DWORD(i->rm());
 
@@ -976,13 +963,11 @@
   result.xmm64u(1) = val32 >> 16;
 
   BX_WRITE_XMM_REGZ(i->nnn(), result, i->getVL());
-#endif
 }
 
 /* 66 0F 38 35 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PMOVZXDQ_VdqWqR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister result;
   Bit64u val64 = BX_READ_XMM_REG_LO_QWORD(i->rm());
 
@@ -990,13 +975,11 @@
   result.xmm64u(1) = val64 >> 32;
 
   BX_WRITE_XMM_REGZ(i->nnn(), result, i->getVL());
-#endif
 }
 
 /* 66 0F 3A 0F */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PALIGNR_VdqWdqIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   BxPackedXmmRegister op2 = BX_READ_XMM_REG(i->rm()), result;
 
@@ -1038,5 +1021,6 @@
   }
 
   BX_WRITE_XMM_REGZ(i->nnn(), result, i->getVL());
-#endif
 }
+
+#endif

Modified: trunk/bochs/cpu/sse_pfp.cc
===================================================================
--- trunk/bochs/cpu/sse_pfp.cc	2011-06-26 17:42:07 UTC (rev 10426)
+++ trunk/bochs/cpu/sse_pfp.cc	2011-06-26 19:15:30 UTC (rev 10427)
@@ -2055,10 +2055,11 @@
 #endif
 }
 
+#if BX_CPU_LEVEL >= 6
+
 /* 66 0F 3A 08 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::ROUNDPS_VpsWpsIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op = BX_READ_XMM_REG(i->rm());
 
   float_status_t status_word;
@@ -2087,13 +2088,11 @@
 
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_XMM_REG(i->nnn(), op);
-#endif
 }
 
 /* 66 0F 3A 09 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::ROUNDPD_VpdWpdIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op = BX_READ_XMM_REG(i->rm());
 
   float_status_t status_word;
@@ -2118,13 +2117,11 @@
 
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_XMM_REG(i->nnn(), op);
-#endif
 }
 
 /* 66 0F 3A 0A */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::ROUNDSS_VssWssIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   float32 op = BX_READ_XMM_REG_LO_DWORD(i->rm());
 
   float_status_t status_word;
@@ -2145,13 +2142,11 @@
 
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_XMM_REG_LO_DWORD(i->nnn(), op);
-#endif
 }
 
 /* 66 0F 3A 0B */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::ROUNDSD_VsdWsdIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   float64 op = BX_READ_XMM_REG_LO_QWORD(i->rm());
 
   float_status_t status_word;
@@ -2172,7 +2167,6 @@
 
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_XMM_REG_LO_QWORD(i->nnn(), op);
-#endif
 }
 
 
@@ -2183,7 +2177,6 @@
  */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::DPPS_VpsWpsIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->nnn());
   BxPackedXmmRegister op2 = BX_READ_XMM_REG(i->rm()), tmp;
   Bit8u mask = i->Ib();
@@ -2227,7 +2220,6 @@
 
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_XMM_REG(i->nnn(), op1);
-#endif
 }
 
 /* Opcode: 66 0F 3A 41
@@ -2237,7 +2229,6 @@
  */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::DPPD_VpdWpdIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->vvv());
   BxPackedXmmRegister op2 = BX_READ_XMM_REG(i->rm()), tmp;
   Bit8u mask = i->Ib();
@@ -2269,5 +2260,6 @@
 
   check_exceptionsSSE(status_word.float_exception_flags);
   BX_WRITE_XMM_REGZ(i->nnn(), op1, i->getVL());
-#endif
 }
+
+#endif // BX_CPU_LEVEL >= 6

Modified: trunk/bochs/cpu/sse_string.cc
===================================================================
--- trunk/bochs/cpu/sse_string.cc	2011-06-26 17:42:07 UTC (rev 10426)
+++ trunk/bochs/cpu/sse_string.cc	2011-06-26 19:15:30 UTC (rev 10427)
@@ -224,8 +224,7 @@
         }
       }
 
-      if (res)
-        result |= (1<<j);
+      if (res) result |= (1<<j);
     }
     break;
 
@@ -240,8 +239,7 @@
         }
       }
 
-      if (res)
-        result |= (1<<j);
+      if (res) result |= (1<<j);
     }
     break;
 
@@ -262,8 +260,7 @@
         }
       }
 
-      if (res)
-        result |= (1<<j);
+      if (res) result |= (1<<j);
     }
     break;
   }
@@ -286,12 +283,9 @@
   return result;
 }
 
-#endif // BX_CPU_LEVEL >= 6
-
 /* 66 0F 3A 60 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PCMPESTRM_VdqWdqIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->nnn());
   BxPackedXmmRegister op2 = BX_READ_XMM_REG(i->rm()), result;
   Bit8u imm8 = i->Ib();
@@ -341,13 +335,11 @@
   setEFlagsOSZAPC(flags);
 
   BX_WRITE_XMM_REGZ(0, result, i->getVL()); /* store result XMM0 */
-#endif
 }
 
 /* 66 0F 3A 61 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PCMPESTRI_VdqWdqIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->nnn()), op2 = \
BX_READ_XMM_REG(i->rm());  Bit8u imm8 = i->Ib();
 
@@ -392,13 +384,11 @@
   if (result2 & 0x1)
     flags |= EFlagsOFMask;
   setEFlagsOSZAPC(flags);
-#endif
 }
 
 /* 66 0F 3A 62 */
 void BX_CPP_AttrRegparmN(1) BX_CPU_C::PCMPISTRM_VdqWdqIbR(bxInstruction_c *i)
 {
-#if BX_CPU_LEVEL >= 6
   BxPackedXmmRegister op1 = BX_READ_XMM_REG(i->nnn());
   BxPackedXmmRegister op2 = BX_READ_XMM_REG(i->rm()), result;
   Bit8u imm8 = i->Ib();
@@ -439,13 +429,11 @@
   setEFlagsOSZAPC(flags);
 
   BX_WRITE_XMM_REGZ(0, result, i->getVL()); /* store result XMM0 */
-#endif
 }
 
 /* 66 0F 3A 63 */

@@ Diff output truncated at 100000 characters. @@

This was sent by the SourceForge.net collaborative development platform, the world's \
largest Open Source development site.

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security 
threats, fraudulent activity, and more. Splunk takes this data and makes 
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
Bochs-cvs mailing list
Bochs-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bochs-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic