aboutsummaryrefslogtreecommitdiffstats
path: root/test/MC/ARM/AlignedBundling
diff options
context:
space:
mode:
Diffstat (limited to 'test/MC/ARM/AlignedBundling')
-rw-r--r--test/MC/ARM/AlignedBundling/pad-align-to-bundle-end.s41
1 files changed, 41 insertions, 0 deletions
diff --git a/test/MC/ARM/AlignedBundling/pad-align-to-bundle-end.s b/test/MC/ARM/AlignedBundling/pad-align-to-bundle-end.s
new file mode 100644
index 0000000..341358b
--- /dev/null
+++ b/test/MC/ARM/AlignedBundling/pad-align-to-bundle-end.s
@@ -0,0 +1,41 @@
+# RUN: llvm-mc -filetype=obj -triple armv7-linux-gnueabi %s -o - \
+# RUN: | llvm-objdump -no-show-raw-insn -triple armv7 -disassemble - | FileCheck %s
+
+ .syntax unified
+ .text
+ .bundle_align_mode 4
+
+ bx lr
+ and r1, r1, r2
+ and r1, r1, r2
+ .bundle_lock align_to_end
+ bx r9
+ .bundle_unlock
+# No padding required here because bx just happens to be in the
+# right offset.
+# CHECK: 8: and
+# CHECK-NEXT: c: bx
+
+ bx lr
+ and r1, r1, r2
+ .bundle_lock align_to_end
+ bx r9
+ .bundle_unlock
+# A 4-byte padding is needed here
+# CHECK: 18: nop
+# CHECK-NEXT: 1c: bx
+
+ bx lr
+ and r1, r1, r2
+ .bundle_lock align_to_end
+ bx r9
+ bx r9
+ bx r9
+ .bundle_unlock
+# A 12-byte padding is needed here to push the group to the end of the next
+# bundle
+# CHECK: 28: nop
+# CHECK-NEXT: 2c: nop
+# CHECK-NEXT: 30: nop
+# CHECK-NEXT: 34: bx
+