summaryrefslogtreecommitdiff
path: root/arch/armv7/test_lift.py
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2024-08-21 10:15:56 -0400
committerMason Reed <mason@vector35.com>2024-08-21 18:52:04 -0400
commit183a842161b08fe51c92cf7cef5b11ba3d1f03fa (patch)
treea6f52655b8236d6dda58ed01be570ac96251d749 /arch/armv7/test_lift.py
parent63f5f43ce24cee1e65df1caba02eb700c0ead443 (diff)
Fix thumb2 lifting of REV
Diffstat (limited to 'arch/armv7/test_lift.py')
-rwxr-xr-xarch/armv7/test_lift.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/armv7/test_lift.py b/arch/armv7/test_lift.py
index ab97d1d9..96a6f4d9 100755
--- a/arch/armv7/test_lift.py
+++ b/arch/armv7/test_lift.py
@@ -122,7 +122,9 @@ test_cases = \
('T', b'\x41\xf3\x41\x00', 'LLIL_SET_REG.d(r0,LLIL_ASR.d(LLIL_LSL.d(LLIL_REG.d(r1),LLIL_CONST.b(0x1D)),LLIL_CONST.b(0x1E)))'),
# sbfx r0, r1, 20, 30 (starting at b20, width 30... gets clamped, so b31b30...b20
# just r0 = r1 >> 20, no left shift required
- ('T', b'\x41\xf3\x1d\x50', 'LLIL_SET_REG.d(r0,LLIL_ASR.d(LLIL_REG.d(r1),LLIL_CONST.b(0x14)))')
+ ('T', b'\x41\xf3\x1d\x50', 'LLIL_SET_REG.d(r0,LLIL_ASR.d(LLIL_REG.d(r1),LLIL_CONST.b(0x14)))'),
+ # rev r1, r1
+ ('T', b'\x09\xba', 'LLIL_SET_REG.d(r1,LLIL_OR.d(LLIL_LSR.d(LLIL_REG.d(r1),LLIL_CONST.d(0x18)),LLIL_OR.d(LLIL_LSL.d(LLIL_AND.d(LLIL_LSR.d(LLIL_REG.d(r1),LLIL_CONST.d(0x10)),LLIL_CONST.d(0xFF)),LLIL_CONST.d(0x8)),LLIL_OR.d(LLIL_LSL.d(LLIL_AND.d(LLIL_LSR.d(LLIL_REG.d(r1),LLIL_CONST.d(0x8)),LLIL_CONST.d(0xFF)),LLIL_CONST.d(0x10)),LLIL_LSL.d(LLIL_AND.d(LLIL_REG.d(r1),LLIL_CONST.d(0xFF)),LLIL_CONST.d(0x18))))))'),
]
import re