57 lines · plain
1# RUN: llvm-mc -filetype=obj -triple x86_64 --x86-align-branch-boundary=32 --x86-align-branch=call+indirect %s | llvm-objdump -d --no-show-raw-insn - | FileCheck %s --check-prefixes=CHECK,X642# RUN: llvm-mc -filetype=obj -triple i386 --x86-align-branch-boundary=32 --x86-align-branch=call+indirect %s | llvm-objdump -d --no-show-raw-insn - | FileCheck %s --check-prefixes=CHECK,X863 4 # Exercise cases where the instruction to be aligned has a variant symbol5 # operand, and we can't add before it since linker may rewrite it.6 7 .text8 .global foo9 10foo:11 .p2align 512 .rept 3013 int314 .endr15 # CHECK: 1d: int316 # X64: 1e: callq17 # X86: 1e: calll18 # CHECK: 23: int319 call ___tls_get_addr@PLT20 int321 22 .p2align 523 .rept 3024 int325 .endr26 # CHECK: 5d: int327 # X64: 5e: callq *(%ecx)28 # X64: 65: int329 # X86: 5e: calll *(%ecx)30 # X86: 64: int331 call *___tls_get_addr@GOT(%ecx)32 int333 34 .p2align 535 .rept 3036 int337 .endr38 # CHECK: 9d: int339 # X64: 9e: callq *(%eax)40 # X64: a1: int341 # X86: 9e: calll *(%eax)42 # X86: a0: int343 call *foo@tlscall(%eax)44 int345 46 .p2align 547 .rept 3048 int349 .endr50 # CHECK: dd: int351 # X64: de: jmpq *(%eax)52 # X64: e1: int353 # X86: de: jmpl *(%eax)54 # X86: e0: int355 jmp *foo@tlscall(%eax)56 int357