imul imm8 fix - 0x82 opcode support (Hidemi KAWAI)
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 22 Apr 2004 21:34:25 +0000 (21:34 +0000)
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 22 Apr 2004 21:34:25 +0000 (21:34 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@735 c046a42c-6fe2-441c-8c8c-71466251a162

target-i386/translate-copy.c
target-i386/translate.c

index 6992791..500475a 100644 (file)
@@ -389,6 +389,7 @@ static int disas_insn(DisasContext *s)
 
     case 0x80: /* GRP1 */
     case 0x81:
+    case 0x82:
     case 0x83:
         {
             if ((b & 1) == 0)
@@ -403,6 +404,7 @@ static int disas_insn(DisasContext *s)
             default:
             case 0x80:
             case 0x81:
+            case 0x82:
                 insn_get(s, ot);
                 break;
             case 0x83:
index 3ef6146..4bddba5 100644 (file)
@@ -1938,6 +1938,7 @@ static uint8_t *disas_insn(DisasContext *s, uint8_t *pc_start)
 
     case 0x80: /* GRP1 */
     case 0x81:
+    case 0x82:
     case 0x83:
         {
             int val;
@@ -1963,6 +1964,7 @@ static uint8_t *disas_insn(DisasContext *s, uint8_t *pc_start)
             default:
             case 0x80:
             case 0x81:
+            case 0x82:
                 val = insn_get(s, ot);
                 break;
             case 0x83:
@@ -2242,7 +2244,7 @@ static uint8_t *disas_insn(DisasContext *s, uint8_t *pc_start)
             val = insn_get(s, ot);
             gen_op_movl_T1_im(val);
         } else if (b == 0x6b) {
-            val = insn_get(s, OT_BYTE);
+            val = (int8_t)insn_get(s, OT_BYTE);
             gen_op_movl_T1_im(val);
         } else {
             gen_op_mov_TN_reg[ot][1][reg]();