diff options
Diffstat (limited to 'llvm/test/MC/ARM/AlignedBundling/group-bundle-arm.s')
-rw-r--r-- | llvm/test/MC/ARM/AlignedBundling/group-bundle-arm.s | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/llvm/test/MC/ARM/AlignedBundling/group-bundle-arm.s b/llvm/test/MC/ARM/AlignedBundling/group-bundle-arm.s new file mode 100644 index 00000000000..6a5e454bf09 --- /dev/null +++ b/llvm/test/MC/ARM/AlignedBundling/group-bundle-arm.s @@ -0,0 +1,37 @@ +# RUN: llvm-mc -filetype=obj -triple armv7-linux-gnueabi %s -o - \ +# RUN: | llvm-objdump -no-show-raw-insn -triple armv7 -disassemble - | FileCheck %s + +# On ARM each instruction is 4 bytes long so padding for individual +# instructions should not be inserted. However, for bundle=locked groups +# it can be. + + .syntax unified + .text + .bundle_align_mode 4 + + bx lr + and r1, r1, r2 + and r1, r1, r2 + .bundle_lock + bx r9 + bx r8 + .bundle_unlock +# CHECK: c: nop +# CHECK-NEXT: 10: bx +# CHECK-NEXT: 14: bx + + # pow2 here + .align 4 + bx lr + .bundle_lock + bx r9 + bx r9 + bx r9 + bx r8 + .bundle_unlock +# CHECK: 20: bx +# CHECK-NEXT: 24: nop +# CHECK-NEXT: 28: nop +# CHECK-NEXT: 2c: nop +# CHECK-NEXT: 30: bx + |