Home | History | Annotate | Download | only in AlignedBundling
      1 # RUN: llvm-mc -filetype=obj -triple armv7-linux-gnueabi %s -o - \
      2 # RUN:   | llvm-objdump -no-show-raw-insn -triple armv7 -disassemble - | FileCheck %s
      3 
      4 # On ARM each instruction is 4 bytes long so padding for individual
      5 # instructions should not be inserted. However, for bundle-locked groups
      6 # it can be.
      7 
      8   .syntax unified
      9   .text
     10   .bundle_align_mode 4
     11 
     12   bx lr
     13   and r1, r1, r2
     14   and r1, r1, r2
     15   .bundle_lock
     16   bx r9
     17   bx r8
     18   .bundle_unlock
     19 # CHECK:      c:  nop
     20 # CHECK-NEXT: 10: bx
     21 # CHECK-NEXT: 14: bx
     22 
     23   # pow2 here
     24   .align 4
     25   bx lr
     26   .bundle_lock
     27   bx r9
     28   bx r9
     29   bx r9
     30   bx r8
     31   .bundle_unlock
     32 # CHECK:      20: bx
     33 # CHECK-NEXT: 24: nop
     34 # CHECK-NEXT: 28: nop
     35 # CHECK-NEXT: 2c: nop
     36 # CHECK-NEXT: 30: bx
     37 
     38   .align 4
     39 foo:
     40   b foo
     41   .long 3892240112
     42   .long 3892240112
     43   .long 3892240112
     44   .long 3892240112
     45   .long 3892240112
     46   .long 3892240112
     47 # CHECK:  40: b
     48 
     49