brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.5 KiB · 447e60b Raw
133 lines · plain
1# REQUIRES: amdgpu2# RUN: llvm-mc -filetype=obj -triple=amdgcn--amdhsa -mcpu=fiji %s -o %t.o3# RUN: ld.lld --hash-style=sysv -shared %t.o -o %t.so4# RUN: llvm-readobj -r %t.so | FileCheck %s5# RUN: llvm-nm %t.so | FileCheck %s --check-prefix=NM6# RUN: llvm-readelf -x .rodata -x nonalloc %t.so | FileCheck %s --check-prefix=HEX7 8## ABS64 and RELATIVE64 relocs do not cause --check-dynamic-relocations errors.9# RUN: ld.lld --hash-style=sysv -shared %t.o -o /dev/null --apply-dynamic-relocs10 11.text12 13kernel0:14  s_mov_b32 s0, common_var0@GOTPCREL+415  s_mov_b32 s0, common_var1@gotpcrel32@lo+416  s_mov_b32 s0, common_var2@gotpcrel32@hi+417 18  s_mov_b32 s0, global_var0@GOTPCREL+419  s_mov_b32 s0, global_var1@gotpcrel32@lo+420  s_mov_b32 s0, global_var2@gotpcrel32@hi+421 22  s_mov_b32 s0, extern_var0@GOTPCREL+423  s_mov_b32 s0, extern_var1@gotpcrel32@lo+424  s_mov_b32 s0, extern_var2@gotpcrel32@hi+425 26  s_mov_b32 s0, weak_var0@GOTPCREL+427  s_mov_b32 s0, weak_var1@gotpcrel32@lo+428  s_mov_b32 s0, weak_var2@gotpcrel32@hi+429 30  s_mov_b32 s0, weakref_var0@GOTPCREL+431  s_mov_b32 s0, weakref_var1@gotpcrel32@lo+432  s_mov_b32 s0, weakref_var2@gotpcrel32@hi+433 34  s_mov_b32 s0, local_var0+435  s_mov_b32 s0, local_var1@rel32@lo+436  s_mov_b32 s0, local_var2@rel32@hi+437 38  s_endpgm39 40  .comm    common_var0,1024,441  .comm    common_var1,1024,442  .comm    common_var2,1024,443  .globl   global_var044  .globl   global_var145  .globl   global_var146  .weak    weak_var047  .weak    weak_var148  .weak    weak_var249  .weakref weakref_var0, weakref_alias_var050  .weakref weakref_var1, weakref_alias_var151  .weakref weakref_var2, weakref_alias_var252  .local   local_var053  .local   local_var154  .local   local_var255  local_var0:56  local_var1:57  local_var2:58 59# R_AMDGPU_ABS32:60.section nonalloc, "w", @progbits61  .long var0, common_var2+462  .long var1, common_var1+863  .long var2, common_var0+1264 65# R_AMDGPU_ABS64:66.type ptr, @object67.data68  .globl ptr69  .p2align 370ptr:71  .quad temp72  .size ptr, 873 74# R_AMDGPU_RELATIVE64:75  .type temp2, @object76  .local temp277  .size temp2, 478  temp2:79 80  .type ptr2, @object81  .globl ptr282  .size ptr2, 883  .p2align 384ptr2:85  .quad temp286 87# R_AMDGPU_REL64:88.type foo, @object89.rodata90  .globl foo91  .p2align 392foo:93  .quad temp2@rel6494  .size foo, 895 96# The relocation for local_var{0, 1, 2} and var should be resolved by the97# linker.98# CHECK: Relocations [99# CHECK: .rela.dyn {100# CHECK-NEXT: R_AMDGPU_RELATIVE64 - 0x3928101# CHECK-NEXT: R_AMDGPU_ABS64 common_var0 0x0102# CHECK-NEXT: R_AMDGPU_ABS64 common_var1 0x0103# CHECK-NEXT: R_AMDGPU_ABS64 common_var2 0x0104# CHECK-NEXT: R_AMDGPU_ABS64 global_var0 0x0105# CHECK-NEXT: R_AMDGPU_ABS64 global_var1 0x0106# CHECK-NEXT: R_AMDGPU_ABS64 global_var2 0x0107# CHECK-NEXT: R_AMDGPU_ABS64 extern_var0 0x0108# CHECK-NEXT: R_AMDGPU_ABS64 extern_var1 0x0109# CHECK-NEXT: R_AMDGPU_ABS64 extern_var2 0x0110# CHECK-NEXT: R_AMDGPU_ABS64 weak_var0 0x0111# CHECK-NEXT: R_AMDGPU_ABS64 weak_var1 0x0112# CHECK-NEXT: R_AMDGPU_ABS64 weak_var2 0x0113# CHECK-NEXT: R_AMDGPU_ABS64 temp 0x0114# CHECK-NEXT: R_AMDGPU_ABS64 weakref_alias_var0 0x0115# CHECK-NEXT: R_AMDGPU_ABS64 weakref_alias_var1 0x0116# CHECK-NEXT: R_AMDGPU_ABS64 weakref_alias_var2 0x0117# CHECK-NEXT: }118# CHECK-NEXT: ]119 120# NM: 0000000000003930 B common_var0121# NM: 0000000000003d30 B common_var1122# NM: 0000000000004130 B common_var2123# NM: 0000000000003928 d temp2124 125# temp2 - foo = 0x3928-0x768 = 0x31c0126# HEX:      section '.rodata':127# HEX-NEXT: 0x00000768 c0310000 00000000128 129# common_var2+4, common_var1+8, and common_var0+12.130# HEX:      section 'nonalloc':131# HEX-NEXT: 0x00000000 00000000 34410000 00000000 383d0000132# HEX-NEXT: 0x00000010 00000000 3c390000133