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 
      4 # Test some variations of padding for bundle-locked groups.
      5 
      6   .text
      7 foo:
      8   .bundle_align_mode 4
      9 
     10 # Each of these callq instructions is 5 bytes long
     11   callq   bar
     12   callq   bar
     13 
     14   .bundle_lock
     15   callq   bar
     16   callq   bar
     17   .bundle_unlock
     18 # We'll need a 6-byte NOP before this group
     19 # CHECK:        a:  nop
     20 # CHECK-NEXT:   10: callq
     21 # CHECK-NEXT:   15: callq
     22 
     23   .bundle_lock
     24   callq   bar
     25   callq   bar
     26   .bundle_unlock
     27 # Same here
     28 # CHECK:        1a:  nop
     29 # CHECK-NEXT:   20: callq
     30 # CHECK-NEXT:   25: callq
     31 
     32   .align 16, 0x90
     33   callq   bar
     34   .bundle_lock
     35   callq   bar
     36   callq   bar
     37   callq   bar
     38   .bundle_unlock
     39 # And here we'll need a 11-byte NOP
     40 # CHECK:        30: callq
     41 # CHECK:        35: nop
     42 # CHECK-NEXT:   40: callq
     43 # CHECK-NEXT:   45: callq
     44 
     45 
     46 
     47