diff options
Diffstat (limited to 'test/MC/ARM/aligned-blx.s')
| -rw-r--r-- | test/MC/ARM/aligned-blx.s | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/MC/ARM/aligned-blx.s b/test/MC/ARM/aligned-blx.s new file mode 100644 index 000000000000..562eaac04677 --- /dev/null +++ b/test/MC/ARM/aligned-blx.s @@ -0,0 +1,34 @@ +@ RUN: llvm-mc -triple thumbv7-apple-ios -filetype=obj %s -o %t +@ RUN: llvm-objdump -macho -d %t | FileCheck %s + + @ Size: 2 bytes + .thumb_func _f1 + .thumb + .globl _f1 +_f1: + bx lr + + @ A properly aligned ARM function + .globl _aligned + .p2align 2 + .arm +_aligned: + bx lr + + @ Align this Thumb function so we can predict the outcome of + @ "Align(PC, 4)" during blx operation. + .thumb_func _test + .thumb + .p2align 2 + .globl _test +_test: + blx _elsewhere + blx _aligned @ PC=0 (mod 4) + blx _aligned @ PC=0 (mod 4) + movs r0, r0 + blx _aligned @ PC=2 (mod 4) + +@ CHECK: blx _elsewhere +@ CHECK: ff f7 fa ef blx _aligned +@ CHECK: ff f7 f8 ef blx _aligned +@ CHECK: ff f7 f6 ef blx _aligned |
