brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · a1b7b89 Raw
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