brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.9 KiB · 0de0c91 Raw
160 lines · plain
1# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t.o2# RUN: llvm-readobj -r %t.o | FileCheck %s --check-prefixes=CHECK,COMMON3# RUN: llvm-mc -filetype=obj -triple=x86_64 -x86-relax-relocations=false %s -o %t1.o4# RUN: llvm-readobj -r %t1.o | FileCheck %s --check-prefixes=NORELAX,COMMON5 6# COMMON:     Relocations [7# COMMON-NEXT:  Section ({{.*}}) .rela.text {8# CHECK-NEXT:     R_X86_64_GOTPCRELX .text 0xFFFFFFFFFFFFFFFC9# CHECK-NEXT:     R_X86_64_GOTPCRELX test 0xFFFFFFFFFFFFFFFC10# CHECK-NEXT:     R_X86_64_GOTPCRELX adc11# CHECK-NEXT:     R_X86_64_GOTPCRELX add12# CHECK-NEXT:     R_X86_64_GOTPCRELX and13# CHECK-NEXT:     R_X86_64_GOTPCRELX cmp14# CHECK-NEXT:     R_X86_64_GOTPCRELX or15# CHECK-NEXT:     R_X86_64_GOTPCRELX sbb16# CHECK-NEXT:     R_X86_64_GOTPCRELX sub17# CHECK-NEXT:     R_X86_64_GOTPCRELX xor18# CHECK-NEXT:     R_X86_64_GOTPCRELX call19# CHECK-NEXT:     R_X86_64_GOTPCRELX jmp20# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX mov21# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX test22# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX adc23# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX add24# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX and25# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX cmp26# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX or27# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX sbb28# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX sub29# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX xor30# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX mov31# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX test32# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX adc33# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX add34# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX and35# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX cmp36# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX or37# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX sbb38# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX sub39# CHECK-NEXT:     R_X86_64_REX_GOTPCRELX xor40# CHECK-NEXT:     R_X86_64_CODE_4_GOTPCRELX mov41# CHECK-NEXT:     R_X86_64_CODE_4_GOTPCRELX test42# CHECK-NEXT:     R_X86_64_CODE_4_GOTPCRELX adc43# CHECK-NEXT:     R_X86_64_CODE_4_GOTPCRELX add44# CHECK-NEXT:     R_X86_64_CODE_4_GOTPCRELX and45# CHECK-NEXT:     R_X86_64_CODE_4_GOTPCRELX cmp46# CHECK-NEXT:     R_X86_64_CODE_4_GOTPCRELX or47# CHECK-NEXT:     R_X86_64_CODE_4_GOTPCRELX sbb48# CHECK-NEXT:     R_X86_64_CODE_4_GOTPCRELX sub49# CHECK-NEXT:     R_X86_64_CODE_4_GOTPCRELX xor50# CHECK-NEXT:   }51 52# NORELAX-NEXT:     R_X86_64_GOTPCREL .text 0xFFFFFFFFFFFFFFFC53# NORELAX-NEXT:     R_X86_64_GOTPCREL test 0xFFFFFFFFFFFFFFFC54# NORELAX-NEXT:     R_X86_64_GOTPCREL adc55# NORELAX-NEXT:     R_X86_64_GOTPCREL add56# NORELAX-NEXT:     R_X86_64_GOTPCREL and57# NORELAX-NEXT:     R_X86_64_GOTPCREL cmp58# NORELAX-NEXT:     R_X86_64_GOTPCREL or59# NORELAX-NEXT:     R_X86_64_GOTPCREL sbb60# NORELAX-NEXT:     R_X86_64_GOTPCREL sub61# NORELAX-NEXT:     R_X86_64_GOTPCREL xor62# NORELAX-NEXT:     R_X86_64_GOTPCREL call63# NORELAX-NEXT:     R_X86_64_GOTPCREL jmp64# NORELAX-NEXT:     R_X86_64_GOTPCREL mov65# NORELAX-NEXT:     R_X86_64_GOTPCREL test66# NORELAX-NEXT:     R_X86_64_GOTPCREL adc67# NORELAX-NEXT:     R_X86_64_GOTPCREL add68# NORELAX-NEXT:     R_X86_64_GOTPCREL and69# NORELAX-NEXT:     R_X86_64_GOTPCREL cmp70# NORELAX-NEXT:     R_X86_64_GOTPCREL or71# NORELAX-NEXT:     R_X86_64_GOTPCREL sbb72# NORELAX-NEXT:     R_X86_64_GOTPCREL sub73# NORELAX-NEXT:     R_X86_64_GOTPCREL xor74# NORELAX-NEXT:     R_X86_64_GOTPCREL mov75# NORELAX-NEXT:     R_X86_64_GOTPCREL test76# NORELAX-NEXT:     R_X86_64_GOTPCREL adc77# NORELAX-NEXT:     R_X86_64_GOTPCREL add78# NORELAX-NEXT:     R_X86_64_GOTPCREL and79# NORELAX-NEXT:     R_X86_64_GOTPCREL cmp80# NORELAX-NEXT:     R_X86_64_GOTPCREL or81# NORELAX-NEXT:     R_X86_64_GOTPCREL sbb82# NORELAX-NEXT:     R_X86_64_GOTPCREL sub83# NORELAX-NEXT:     R_X86_64_GOTPCREL xor84# NORELAX-NEXT:     R_X86_64_GOTPCREL mov85# NORELAX-NEXT:     R_X86_64_GOTPCREL test86# NORELAX-NEXT:     R_X86_64_GOTPCREL adc87# NORELAX-NEXT:     R_X86_64_GOTPCREL add88# NORELAX-NEXT:     R_X86_64_GOTPCREL and89# NORELAX-NEXT:     R_X86_64_GOTPCREL cmp90# NORELAX-NEXT:     R_X86_64_GOTPCREL or91# NORELAX-NEXT:     R_X86_64_GOTPCREL sbb92# NORELAX-NEXT:     R_X86_64_GOTPCREL sub93# NORELAX-NEXT:     R_X86_64_GOTPCREL xor94# NORELAX-NEXT:   }95 96movl .text@GOTPCREL(%rip), %eax97test %eax, test@GOTPCREL(%rip)98adc adc@GOTPCREL(%rip), %eax99add add@GOTPCREL(%rip), %eax100and and@GOTPCREL(%rip), %eax101cmp cmp@GOTPCREL(%rip), %eax102or  or@GOTPCREL(%rip), %eax103sbb sbb@GOTPCREL(%rip), %eax104sub sub@GOTPCREL(%rip), %eax105xor xor@GOTPCREL(%rip), %eax106call *call@GOTPCREL(%rip)107jmp *jmp@GOTPCREL(%rip)108 109movl mov@GOTPCREL(%rip), %r8d110test %r8d, test@GOTPCREL(%rip)111adc adc@GOTPCREL(%rip), %r8d112add add@GOTPCREL(%rip), %r8d113and and@GOTPCREL(%rip), %r8d114cmp cmp@GOTPCREL(%rip), %r8d115or  or@GOTPCREL(%rip), %r8d116sbb sbb@GOTPCREL(%rip), %r8d117sub sub@GOTPCREL(%rip), %r8d118xor xor@GOTPCREL(%rip), %r8d119 120movq mov@GOTPCREL(%rip), %rax121test %rax, test@GOTPCREL(%rip)122adc adc@GOTPCREL(%rip), %rax123add add@GOTPCREL(%rip), %rax124and and@GOTPCREL(%rip), %rax125cmp cmp@GOTPCREL(%rip), %rax126or  or@GOTPCREL(%rip), %rax127sbb sbb@GOTPCREL(%rip), %rax128sub sub@GOTPCREL(%rip), %rax129xor xor@GOTPCREL(%rip), %rax130 131movq mov@GOTPCREL(%rip), %r16132test %r16, test@GOTPCREL(%rip)133adc adc@GOTPCREL(%rip), %r16134add add@GOTPCREL(%rip), %r16135and and@GOTPCREL(%rip), %r16136cmp cmp@GOTPCREL(%rip), %r16137or  or@GOTPCREL(%rip), %r16138sbb sbb@GOTPCREL(%rip), %r16139sub sub@GOTPCREL(%rip), %r16140xor xor@GOTPCREL(%rip), %r16141 142# COMMON-NEXT:   Section ({{.*}}) .rela.norelax {143# COMMON-NEXT:     R_X86_64_GOTPCREL mov 0x0144# COMMON-NEXT:     R_X86_64_GOTPCREL mov 0xFFFFFFFFFFFFFFFD145# COMMON-NEXT:     R_X86_64_GOTPCREL mov 0xFFFFFFFFFFFFFFFC146# COMMON-NEXT:     R_X86_64_GOTPCREL mov 0xFFFFFFFFFFFFFFFD147# COMMON-NEXT:   }148# COMMON-NEXT: ]149 150.section .norelax,"ax",@progbits151## Clang may emit this expression to load the high 32-bit of the GOT entry.152## Don't emit R_X86_64_GOTPCRELX.153movl mov@GOTPCREL+4(%rip), %eax154## Don't emit R_X86_64_GOTPCRELX.155movq mov@GOTPCREL+1(%rip), %rax156## We could emit R_X86_64_GOTPCRELX, but it is probably unnecessary.157movl mov@GOTPCREL+0(%rip), %eax158## Don't emit R_X86_64_GOTPCRELX.159movq mov@GOTPCREL+1(%rip), %r16160