Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


added memory read instruction forms
Jack Lange [Mon, 9 Feb 2009 00:14:18 +0000 (18:14 -0600)]
palacios/src/palacios/vmm_xed.c

index 5975797..cc0d1d2 100644 (file)
@@ -1172,37 +1172,59 @@ static v3_op_type_t get_opcode(xed_iform_enum_t iform) {
 
     /* Data Instructions */
 
+    // Write
   case XED_IFORM_ADC_MEMv_GPRv:
   case XED_IFORM_ADC_MEMv_IMM:
   case XED_IFORM_ADC_MEMb_GPR8:
   case XED_IFORM_ADC_MEMb_IMM:
+    // Read
+  case XED_IFORM_ADC_GPRv_MEMv:
+  case XED_IFORM_ADC_GPR8_MEMb:
     return V3_OP_ADC;
 
+    // Write
   case XED_IFORM_ADD_MEMv_GPRv:
   case XED_IFORM_ADD_MEMb_IMM:
   case XED_IFORM_ADD_MEMb_GPR8:
   case XED_IFORM_ADD_MEMv_IMM:
+    // Read
+  case XED_IFORM_ADD_GPRv_MEMv:
+  case XED_IFORM_ADD_GPR8_MEMb:
     return V3_OP_ADD;
 
+    // Write
   case XED_IFORM_AND_MEMv_IMM:
   case XED_IFORM_AND_MEMb_GPR8:
   case XED_IFORM_AND_MEMv_GPRv:
   case XED_IFORM_AND_MEMb_IMM:
+    // Read
+  case XED_IFORM_AND_GPR8_MEMb:
+  case XED_IFORM_AND_GPRv_MEMv:
     return V3_OP_AND;
 
+    // Write
   case XED_IFORM_SUB_MEMv_IMM:
   case XED_IFORM_SUB_MEMb_GPR8:
   case XED_IFORM_SUB_MEMb_IMM:
   case XED_IFORM_SUB_MEMv_GPRv:
+    // Read
+  case XED_IFORM_SUB_GPR8_MEMb:
+  case XED_IFORM_SUB_GPRv_MEMv:
     return V3_OP_SUB;
 
+    // Write
   case XED_IFORM_MOV_MEMv_GPRv:
   case XED_IFORM_MOV_MEMb_GPR8:
   case XED_IFORM_MOV_MEMb_AL:
   case XED_IFORM_MOV_MEMv_IMM:
   case XED_IFORM_MOV_MEMb_IMM:
+    // Read 
+  case XED_IFORM_MOV_GPRv_MEMv:
+  case XED_IFORM_MOV_GPR8_MEMb:
+  case XED_IFORM_MOV_AL_MEMb:
     return V3_OP_MOV;
 
+
   case XED_IFORM_DEC_MEMv:
   case XED_IFORM_DEC_MEMb:
     return V3_OP_DEC;
@@ -1211,16 +1233,24 @@ static v3_op_type_t get_opcode(xed_iform_enum_t iform) {
   case XED_IFORM_INC_MEMv:
     return V3_OP_INC;
 
+    // Write
   case XED_IFORM_OR_MEMv_IMM:
   case XED_IFORM_OR_MEMb_IMM:
   case XED_IFORM_OR_MEMv_GPRv:
   case XED_IFORM_OR_MEMb_GPR8:
+    // Read
+  case XED_IFORM_OR_GPRv_MEMv:
+  case XED_IFORM_OR_GPR8_MEMb:
     return V3_OP_OR;
 
+    // Write
   case XED_IFORM_XOR_MEMv_GPRv:
   case XED_IFORM_XOR_MEMb_IMM:
   case XED_IFORM_XOR_MEMb_GPR8:
   case XED_IFORM_XOR_MEMv_IMM:
+    // Read
+  case XED_IFORM_XOR_GPRv_MEMv:
+  case XED_IFORM_XOR_GPR8_MEMb:
     return V3_OP_XOR;
 
   case XED_IFORM_NEG_MEMb: