mirror of
https://github.com/hakril/PythonForWindows
synced 2026-06-08 14:31:45 +00:00
Fix issue #19 about x86/x64 bad Test encoding
This commit is contained in:
@@ -210,6 +210,10 @@ def test_assembler():
|
||||
CheckInstr(x64.Test)('RCX', 'RCX')
|
||||
|
||||
CheckInstr(x64.Test)(mem('[RDI + 0x100]'), 'RCX')
|
||||
CheckInstr(x64.Test)('EAX', 0x11223344)
|
||||
CheckInstr(x64.Test, immediat_accepted=-1)('RAX', 0xffffffff)
|
||||
CheckInstr(x64.Test)('ECX', 0x42)
|
||||
CheckInstr(x64.Test)('RCX', 0x42)
|
||||
|
||||
assert x64.Test(mem('[RDI + 0x100]'), 'RCX').get_code() == x64.Test('RCX', mem('[RDI + 0x100]')).get_code()
|
||||
|
||||
|
||||
@@ -183,6 +183,8 @@ def test_assembler():
|
||||
CheckInstr(Cmp, immediat_accepted=0xffffffff)('EAX', -1)
|
||||
CheckInstr(Cmp)('EAX', 0xffffffff)
|
||||
|
||||
|
||||
|
||||
CheckInstr(And)('ECX', 'EBX')
|
||||
CheckInstr(And)('EAX', 0x11223344)
|
||||
CheckInstr(And)('EAX', mem('[EAX + 1]'))
|
||||
@@ -218,6 +220,9 @@ def test_assembler():
|
||||
CheckInstr(x86.Test)('EAX', 'EAX')
|
||||
CheckInstr(x86.Test, expected_result="test edi, ecx")('ECX', 'EDI')
|
||||
CheckInstr(x86.Test)(mem('[ECX + 0x100]'), 'ECX')
|
||||
CheckInstr(x86.Test)('EAX', 0x11223344)
|
||||
CheckInstr(x86.Test, immediat_accepted=-1)('EAX', 0xffffffff)
|
||||
CheckInstr(x86.Test)('ECX', 0x42)
|
||||
|
||||
|
||||
assert x86.Test(mem('[ECX + 0x100]'), 'ECX').get_code() == x86.Test('ECX', mem('[ECX + 0x100]')).get_code()
|
||||
|
||||
@@ -1021,7 +1021,7 @@ class Cmp(Instruction):
|
||||
class Test(Instruction):
|
||||
default_32_bits = True
|
||||
refuse_reverse = True
|
||||
encoding = [(RawBits.from_int(8, 0xf7), Slash(7), AnyImm32()),
|
||||
encoding = [(RawBits.from_int(8, 0xf7), Slash(0), AnyImm32()),
|
||||
(RawBits.from_int(8, 0x85), ModRM([ModRM_REG__REG, ModRM_REG64__MEM], has_direction_bit=False))]
|
||||
|
||||
|
||||
|
||||
@@ -799,7 +799,7 @@ class Cmp(Instruction):
|
||||
|
||||
|
||||
class Test(Instruction):
|
||||
encoding = [(RawBits.from_int(8, 0xf7), Slash(7), Imm32()),
|
||||
encoding = [(RawBits.from_int(8, 0xf7), Slash(0), Imm32()),
|
||||
(RawBits.from_int(8, 0x85), ModRM([ModRM_REG__REG, ModRM_REG__MEM], has_direction_bit=False))]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user