1 # RUN: llvm-mc -triple=i686-linux -filetype=obj %s -o - | \
2 # RUN: llvm-objdump -disassemble -no-show-raw-insn -r - | FileCheck %s
3 # RUN: llvm-mc -triple=i686-nacl -filetype=obj %s -o - | \
4 # RUN: llvm-objdump -disassemble -no-show-raw-insn -r - | FileCheck %s
13 # Call + pop sequence for determining the PIC base.
14 .bundle_lock align_to_end
20 # 26 bytes of instructions between the pop and the use of the pic base symbol.
21 movl $3, 2(%ebx, %ebx)
22 movl $3, 2(%ebx, %ebx)
23 movl $3, 2(%ebx, %ebx)
28 addl (.Ltmp0-.L0$pb), %eax
29 # The addl has bundle padding to push it from 0x3b to 0x40.
30 # The difference between the labels should be 0x20 (0x40-0x20) not 0x1b
32 # CHECK: 40: addl 32, %eax
37 # Also make sure it works with a non-relaxable instruction (cmp vs add)
38 # and for 2 adjacent labels that both point to the correct instruction
39 .section .text.bar, "ax"
45 .bundle_lock align_to_end
51 # 26 bytes of instructions between the pop and the use of the pic base symbol.
52 movl $3, 2(%ebx, %ebx)
53 movl $3, 2(%ebx, %ebx)
54 movl $3, 2(%ebx, %ebx)
61 # CHECK: 40: cmpl %eax, 64
62 cmpl %eax, (.Ltmp2-.L1$pb)
63 # CHECK: 46: cmpl %eax, 32
68 # Switch sections in the middle of a function
69 .section .text.foo, "ax"