diff --git a/suite/regress/arm_bl_label.py b/suite/regress/arm_bl_label.py new file mode 100755 index 0000000000000000000000000000000000000000..4f866cfecf5c7d492c035bb111c611a3ace130f7 --- /dev/null +++ b/suite/regress/arm_bl_label.py @@ -0,0 +1,28 @@ +#!/usr/bin/python + +# Test BL <label> instruction for ARM32 + +# Github issue: #248 +# Author: dmxcsnsbh + +from keystone import * + +import regress + +class TestARM(regress.RegressTest): + def runTest(self): + # Initialize Keystone engine + ks = Ks(KS_ARCH_ARM, KS_MODE_ARM) + # Assemble to get back insn encoding & statement count + encoding, count = ks.asm(b""" + bl func + sub r0, r0, r0 + sub r1, r1, r1 + func: + """) + # Assert the result + # self.assertEqual(encoding, [ 0x01, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x40, 0xe0, 0x01, 0x10, 0x41, 0xe0 ]) + self.assertEqual(encoding[:4], [ 0x01, 0x00, 0x00, 0xeb ]) + +if __name__ == '__main__': + regress.main()