Home | History | Annotate | Download | only in AlignedBundling
      1 # RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
      2 # RUN:   | llvm-objdump -disassemble -no-show-raw-insn - | FileCheck %s
      3 # RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mc-relax-all %s -o - \
      4 # RUN:   | llvm-objdump -disassemble -no-show-raw-insn - | FileCheck %s
      5 
      6 # Test some variations of padding for bundle-locked groups.
      7 
      8   .text
      9 foo:
     10   .bundle_align_mode 4
     11 
     12 # Each of these callq instructions is 5 bytes long
     13   callq   bar
     14   callq   bar
     15 
     16   .bundle_lock
     17   callq   bar
     18   callq   bar
     19   .bundle_unlock
     20 # We'll need a 6-byte NOP before this group
     21 # CHECK:        a:  nop
     22 # CHECK-NEXT:   10: callq
     23 # CHECK-NEXT:   15: callq
     24 
     25   .bundle_lock
     26   callq   bar
     27   callq   bar
     28   .bundle_unlock
     29 # Same here
     30 # CHECK:        1a:  nop
     31 # CHECK-NEXT:   20: callq
     32 # CHECK-NEXT:   25: callq
     33 
     34   .align 16, 0x90
     35   callq   bar
     36   .bundle_lock
     37   callq   bar
     38   callq   bar
     39   callq   bar
     40   .bundle_unlock
     41 # And here we'll need a 11-byte NOP
     42 # CHECK:        30: callq
     43 # CHECK:        35: nop
     44 # CHECK-NEXT:   40: callq
     45 # CHECK-NEXT:   45: callq
     46 
     47 
     48 
     49