|
@@ -124,8 +124,13 @@ rm16|32|64,imm \320\2\x0F\xBA\205\25 386,SB
|
|
[CALL,call]
|
|
[CALL,call]
|
|
; don't know value of any register
|
|
; don't know value of any register
|
|
(Ch_ROp1, Ch_All, Ch_None)
|
|
(Ch_ROp1, Ch_All, Ch_None)
|
|
|
|
+; Compiler emits CALL/JMP with opsize=S_NO which matches any size,
|
|
|
|
+; and will match the first entry in sequence.
|
|
|
|
+; Therefore rm16 must be placed after rm32/rm64
|
|
|
|
+rm32 \325\1\xFF\202 386,NOX86_64
|
|
|
|
+rm64 \335\1\xFF\202 X86_64
|
|
|
|
+rm16 \324\1\xFF\202 8086
|
|
imm \320\1\xE8\64 8086
|
|
imm \320\1\xE8\64 8086
|
|
-rm16|32|64 \320\1\xFF\202 8086
|
|
|
|
imm|near \320\1\xE8\64 8086
|
|
imm|near \320\1\xE8\64 8086
|
|
imm|far \320\1\x9A\34\37 8086,ND,NOX86_64
|
|
imm|far \320\1\x9A\34\37 8086,ND,NOX86_64
|
|
mem|near \320\1\xFF\202 8086
|
|
mem|near \320\1\xFF\202 8086
|
|
@@ -880,9 +885,12 @@ imm \1\xE3\50 X86_64
|
|
|
|
|
|
[JMP,jmpX]
|
|
[JMP,jmpX]
|
|
(Ch_ROp1, Ch_None, Ch_None)
|
|
(Ch_ROp1, Ch_None, Ch_None)
|
|
|
|
+; rm16 should be after rm32/rm64, see comments for CALL.
|
|
imm8 \1\xEB\50 8086,PASS2
|
|
imm8 \1\xEB\50 8086,PASS2
|
|
imm16|32 \320\1\xE9\64 8086,PASS2
|
|
imm16|32 \320\1\xE9\64 8086,PASS2
|
|
-rm16|32|64 \320\1\xFF\204 8086
|
|
|
|
|
|
+rm32 \325\1\xFF\204 386,NOX86_64
|
|
|
|
+rm64 \335\1\xFF\204 X86_64
|
|
|
|
+rm16 \324\1\xFF\204 8086
|
|
imm|short \1\xEB\50 8086,PASS2
|
|
imm|short \1\xEB\50 8086,PASS2
|
|
imm|near \320\1\xE9\64 8086,ND,PASS2
|
|
imm|near \320\1\xE9\64 8086,ND,PASS2
|
|
imm|far \320\1\xEA\34\37 8086,ND,PASS2,NOX86_64
|
|
imm|far \320\1\xEA\34\37 8086,ND,PASS2,NOX86_64
|
|
@@ -903,10 +911,11 @@ reg16|32|64,regmem \320\2\x0F\x02\110 286,PROT,SM
|
|
|
|
|
|
[LCALL,lcall]
|
|
[LCALL,lcall]
|
|
; don't know value of any register
|
|
; don't know value of any register
|
|
|
|
+; Far call, AT&T only (there are no near/far modifiers in AT&T syntax, so separate mnemonic is needed)
|
|
(Ch_All, Ch_None, Ch_None)
|
|
(Ch_All, Ch_None, Ch_None)
|
|
-rm16|32|64 \320\1\xFF\202 8086
|
|
|
|
-mem|near \320\1\xFF\202 8086
|
|
|
|
-mem|far \320\1\xFF\203 8086
|
|
|
|
|
|
+mem32 \325\1\xFF\203 386,NOX86_64
|
|
|
|
+mem64 \335\1\xFF\203 X86_64
|
|
|
|
+mem16 \324\1\xFF\203 8086
|
|
|
|
|
|
[LDS,ldsX]
|
|
[LDS,ldsX]
|
|
(Ch_Wop2, Ch_Rop1, Ch_None)
|
|
(Ch_Wop2, Ch_Rop1, Ch_None)
|
|
@@ -943,9 +952,9 @@ mem \2\x0F\x01\203 286,PRIV
|
|
|
|
|
|
[LJMP,ljmp]
|
|
[LJMP,ljmp]
|
|
(Ch_ROp1, Ch_None, Ch_None)
|
|
(Ch_ROp1, Ch_None, Ch_None)
|
|
-rm16|32|64 \320\1\xFF\205 8086
|
|
|
|
-mem|far \320\1\xFF\205 8086
|
|
|
|
-mem|near \320\1\xFF\204 8086
|
|
|
|
|
|
+mem32 \325\1\xFF\205 386,NOX86_64
|
|
|
|
+mem64 \335\1\xFF\205 X86_64
|
|
|
|
+mem16 \324\1\xFF\205 8086
|
|
|
|
|
|
[LLDT,lldtX]
|
|
[LLDT,lldtX]
|
|
(Ch_None, Ch_None, Ch_None)
|
|
(Ch_None, Ch_None, Ch_None)
|