浏览代码

+ added i8086 instruction entries for Jcc near (which is actually a 386+
instruction), that encode it as two i8086 compatible instructions:
JNcc short +3
JMP near target

git-svn-id: trunk@30612 -

nickysn 10 年之前
父节点
当前提交
2cf6852910
共有 3 个文件被更改,包括 17 次插入1 次删除
  1. 1 1
      compiler/i8086/i8086nop.inc
  2. 14 0
      compiler/i8086/i8086tab.inc
  3. 2 0
      compiler/x86/x86ins.dat

+ 1 - 1
compiler/i8086/i8086nop.inc

@@ -1,2 +1,2 @@
 { don't edit, this file is generated from x86ins.dat }
-1970;
+1972;

+ 14 - 0
compiler/i8086/i8086tab.inc

@@ -5950,6 +5950,13 @@
     code    : #208#1#15#11#128#52;
     flags   : if_386 or if_pass2
   ),
+  (
+    opcode  : A_Jcc;
+    ops     : 1;
+    optypes : (ot_immediate or ot_bits16,ot_none,ot_none,ot_none);
+    code    : #19#112#1#3#1#233#48;
+    flags   : if_8086 or if_pass2 or if_16bitonly
+  ),
   (
     opcode  : A_Jcc;
     ops     : 1;
@@ -5964,6 +5971,13 @@
     code    : #208#1#15#11#128#52;
     flags   : if_386 or if_pass2
   ),
+  (
+    opcode  : A_Jcc;
+    ops     : 1;
+    optypes : (ot_immediate or ot_bits16 or ot_near,ot_none,ot_none,ot_none);
+    code    : #19#112#1#3#1#233#48;
+    flags   : if_8086 or if_pass2 or if_16bitonly
+  ),
   (
     opcode  : A_SETcc;
     ops     : 1;

+ 2 - 0
compiler/x86/x86ins.dat

@@ -2099,8 +2099,10 @@ reg16|32|64,regmem    \320\1\x0F\13\x40\110          P6,SM
 (Ch_RFLAGS, Ch_None, Ch_None)
 imm8                  \13\x70\50                     8086
 imm16|32              \320\1\x0F\13\x80\64           386,PASS2
+imm16                 \23\x70\1\x03\1\xE9\60         8086,PASS2,16BITONLY
 imm|short             \13\x70\50                     8086
 imm|near              \320\1\x0F\13\x80\64           386,PASS2
+imm16|near            \23\x70\1\x03\1\xE9\60         8086,PASS2,16BITONLY
 
 [SETcc,setCCX]
 (Ch_RFLAGS, Ch_WOp1, Ch_None)