[HVM] Fill in mmio decode gaps for Grp1 immediate opcodes.
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Fri, 9 Feb 2007 18:19:24 +0000 (18:19 +0000)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Fri, 9 Feb 2007 18:19:24 +0000 (18:19 +0000)
Signed-off-by: Keir Fraser <keir@xensource.com>
xen/arch/x86/hvm/platform.c

index 1c8e4c11c497da64a18f7ea750881c3fccb0cf62..8eb73f53e6aed5dd10cc04c8a5a7591dcdf78b34 100644 (file)
@@ -513,14 +513,30 @@ static int mmio_decode(int address_bytes, unsigned char *opcode,
         mmio_op->operand[1] = mk_operand(size_reg, 0, 0, MEMORY);
 
         switch ( ins_subtype ) {
-        case 7: /* cmp $imm, m32/16 */
-            mmio_op->instr = INSTR_CMP;
+        case 0: /* add $imm, m32/16 */
+            mmio_op->instr = INSTR_ADD;
             return DECODE_success;
 
         case 1: /* or $imm, m32/16 */
             mmio_op->instr = INSTR_OR;
             return DECODE_success;
 
+        case 4: /* and $imm, m32/16 */
+            mmio_op->instr = INSTR_AND;
+            return DECODE_success;
+
+        case 5: /* sub $imm, m32/16 */
+            mmio_op->instr = INSTR_SUB;
+            return DECODE_success;
+
+        case 6: /* xor $imm, m32/16 */
+            mmio_op->instr = INSTR_XOR;
+            return DECODE_success;
+
+        case 7: /* cmp $imm, m32/16 */
+            mmio_op->instr = INSTR_CMP;
+            return DECODE_success;
+
         default:
             printk("%x/%x, This opcode isn't handled yet!\n",
                    *opcode, ins_subtype);