diff options
| -rw-r--r-- | miasm2/arch/arm/arch.py | 7 | ||||
| -rw-r--r-- | test/arch/arm/arch.py | 15 |
2 files changed, 21 insertions, 1 deletions
diff --git a/miasm2/arch/arm/arch.py b/miasm2/arch/arm/arch.py index 348820db..b7cf48bf 100644 --- a/miasm2/arch/arm/arch.py +++ b/miasm2/arch/arm/arch.py @@ -1957,7 +1957,12 @@ armtop("swi", [bs('11011111'), tswi_i]) armtop("b", [bs('11100'), offs11]) armtop("und", [bs('1101'), bs('1110'), imm8_d1]) -# + +armtop("uxtb", [bs('10110010'), bs('11'), rml, rdl], [rdl, rml]) +armtop("uxth", [bs('10110010'), bs('10'), rml, rdl], [rdl, rml]) +armtop("sxtb", [bs('10110010'), bs('01'), rml, rdl], [rdl, rml]) +armtop("sxth", [bs('10110010'), bs('00'), rml, rdl], [rdl, rml]) + # thumb2 ###################### # diff --git a/test/arch/arm/arch.py b/test/arch/arm/arch.py index 5b5ec40f..964d7295 100644 --- a/test/arch/arm/arch.py +++ b/test/arch/arm/arch.py @@ -227,6 +227,11 @@ reg_tests_arm = [ ("XXXXXXXX UBFX R1, R2, 0x10, 0x8", "5218E7E7"), + ("XXXXXXXX UXTB R0, R2", + "7200EFE6"), + ("XXXXXXXX UXTH R0, R2", + "7200FFE6"), + ] ts = time.time() @@ -437,6 +442,16 @@ reg_tests_armt = [ ("00000000 CBNZ R0, 0x2A", "a8b9"), + ("00000000 SXTB R2, R1", + "4AB2"), + ("00000000 SXTH R1, R0", + "01b2"), + + ("00000000 UXTH R3, R2", + "93b2"), + + ("00000000 UXTB R5, R0", + "C5B2"), ] print "#" * 40, 'armthumb', '#' * 40 |