37 lines
966 B
ArmAsm
37 lines
966 B
ArmAsm
|
# REQUIRES: systemz
|
||
|
# RUN: llvm-mc -filetype=obj -triple=s390x-unknown-linux %s -o %t.o
|
||
|
# RUN: ld.lld -shared %t.o -soname=t.so -o %t.so
|
||
|
|
||
|
# RUN: llvm-readelf -S -s -x .data %t.so | FileCheck %s
|
||
|
|
||
|
# CHECK: Section Headers:
|
||
|
# CHECK: .plt PROGBITS 0000000000001290
|
||
|
# CHECK: .got PROGBITS 0000000000002390
|
||
|
|
||
|
# CHECK: Symbol table '.symtab'
|
||
|
# CHECK: 0000000000001288 {{.*}} bar
|
||
|
|
||
|
## Note: foo is the first (and only) PLT entry, which resides at .plt + 32
|
||
|
## PLTOFF (foo) is (.plt + 32) - .got == 0x12b0 - 0x2390 == 0xffffef20
|
||
|
## GOTOFF (bar) is bar - .got == 0x1288 - 0x2390 == 0xffffeef8
|
||
|
# CHECK: Hex dump of section '.data':
|
||
|
# CHECK-NEXT: eef8ef20 ffffeef8 ffffef20 ffffffff
|
||
|
# CHECK-NEXT: ffffeef8 ffffffff ffffef20
|
||
|
|
||
|
bar:
|
||
|
br %r14
|
||
|
|
||
|
.data
|
||
|
.reloc ., R_390_GOTOFF16, bar
|
||
|
.space 2
|
||
|
.reloc ., R_390_PLTOFF16, foo
|
||
|
.space 2
|
||
|
.reloc ., R_390_GOTOFF, bar
|
||
|
.space 4
|
||
|
.reloc ., R_390_PLTOFF32, foo
|
||
|
.space 4
|
||
|
.reloc ., R_390_GOTOFF64, bar
|
||
|
.space 8
|
||
|
.reloc ., R_390_PLTOFF64, foo
|
||
|
.space 8
|