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

List:       bochs-cvs
Subject:    [Bochs-cvs] [13398] trunk/bochs/cpu/decoder
From:       sshwarts--- via Bochs-cvs <bochs-cvs () lists ! sourceforge ! net>
Date:       2017-12-17 17:21:02
Message-ID: 1513531262.966727.10496 () sfp-scm-5 ! v30 ! ch3 ! sourceforge ! com
[Download RAW message or body]

Revision: 13398
Author:   sshwarts
Date:     2017-12-17 17:21:02 +0000 (Sun, 17 Dec 2017)
Log Message:
-----------
fixup for MMX opcodes disasm

Modified Paths:
--------------
    trunk/bochs/cpu/decoder/disasm.cc
    trunk/bochs/cpu/decoder/fetchdecode.h

Modified: trunk/bochs/cpu/decoder/disasm.cc
===================================================================
--- trunk/bochs/cpu/decoder/disasm.cc	2017-12-17 16:55:10 UTC (rev 13397)
+++ trunk/bochs/cpu/decoder/disasm.cc	2017-12-17 17:21:02 UTC (rev 13398)
@@ -214,17 +214,18 @@
   else if (src_index == BX_SRC_RM) {
     switch(src_type) {
     case BX_GPR8:
-    case BX_GPR8_32:      // 8-bit  memory ref but 32-bit GPR
+    case BX_GPR32_MEM8:      // 8-bit  memory ref but 32-bit GPR
       disbufptr = dis_sprintf(disbufptr, "byte ptr ");
       break;
 
     case BX_GPR16:
-    case BX_GPR16_32:     // 16-bit memory ref but 32-bit GPR
+    case BX_GPR32_MEM16:     // 16-bit memory ref but 32-bit GPR
     case BX_SEGREG:
       disbufptr = dis_sprintf(disbufptr, "word ptr ");
       break;
 
     case BX_GPR32:
+    case BX_MMX_HALF_REG:
       disbufptr = dis_sprintf(disbufptr, "dword ptr ");
       break;
 
@@ -296,8 +297,8 @@
     break;
 
   case BX_GPR32:
-  case BX_GPR8_32:      // 8-bit  memory ref but 32-bit GPR
-  case BX_GPR16_32:     // 16-bit memory ref but 32-bit GPR
+  case BX_GPR32_MEM8:      // 8-bit  memory ref but 32-bit GPR
+  case BX_GPR32_MEM16:     // 16-bit memory ref but 32-bit GPR
     disbufptr = dis_sprintf(disbufptr, "%s", intel_general_32bit_regname[srcreg]);
     break;
 
@@ -312,6 +313,7 @@
     break;
 
   case BX_MMX_REG:
+  case BX_MMX_HALF_REG:
     disbufptr = dis_sprintf(disbufptr, "mm%d", srcreg & 0x7);
     break;
 

Modified: trunk/bochs/cpu/decoder/fetchdecode.h
===================================================================
--- trunk/bochs/cpu/decoder/fetchdecode.h	2017-12-17 16:55:10 UTC (rev 13397)
+++ trunk/bochs/cpu/decoder/fetchdecode.h	2017-12-17 17:21:02 UTC (rev 13398)
@@ -222,19 +222,20 @@
 enum {
   BX_NO_REGISTER = 0,
   BX_GPR8 = 0x1,
-  BX_GPR8_32 = 0x2,  // 8-bit memory reference but 32-bit GPR
+  BX_GPR32_MEM8 = 0x2,  // 8-bit memory reference but 32-bit GPR
   BX_GPR16 = 0x3,
-  BX_GPR16_32 = 0x4, // 16-bit memory reference but 32-bit GPR
+  BX_GPR32_MEM16 = 0x4, // 16-bit memory reference but 32-bit GPR
   BX_GPR32 = 0x5,
   BX_GPR64 = 0x6,
   BX_FPU_REG = 0x7,
   BX_MMX_REG = 0x8,
-  BX_VMM_REG = 0x9,
-  BX_KMASK_REG = 0xA,
-  BX_SEGREG = 0xB,
-  BX_CREG = 0xC,
-  BX_DREG = 0xD,
-  // encodings 0xE to 0xF are still free
+  BX_MMX_HALF_REG = 0x9,
+  BX_VMM_REG = 0xA,
+  BX_KMASK_REG = 0xB,
+  BX_SEGREG = 0xC,
+  BX_CREG = 0xD,
+  BX_DREG = 0xE,
+  // encoding 0xF still free
 };
 
 // to be used together with BX_SRC_VECTOR_RM
@@ -295,9 +296,9 @@
 const Bit8u OP_NONE = BX_SRC_NONE;
 
 const Bit8u OP_Eb = BX_FORM_SRC(BX_GPR8, BX_SRC_RM);
-const Bit8u OP_Ebd = BX_FORM_SRC(BX_GPR8_32, BX_SRC_RM);
+const Bit8u OP_Ebd = BX_FORM_SRC(BX_GPR32_MEM8, BX_SRC_RM);
 const Bit8u OP_Ew = BX_FORM_SRC(BX_GPR16, BX_SRC_RM);
-const Bit8u OP_Ewd = BX_FORM_SRC(BX_GPR16_32, BX_SRC_RM);
+const Bit8u OP_Ewd = BX_FORM_SRC(BX_GPR32_MEM16, BX_SRC_RM);
 const Bit8u OP_Ed = BX_FORM_SRC(BX_GPR32, BX_SRC_RM);
 const Bit8u OP_Eq = BX_FORM_SRC(BX_GPR64, BX_SRC_RM);
 


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
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