Projet_SETI_RISC-V/riscv-gnu-toolchain/binutils/ld/testsuite/ld-riscv-elf/ifunc-plt-got-overwrite.s
2023-03-06 14:48:14 +01:00

39 lines
587 B
ArmAsm

.text
.type foo_resolver, @function
foo_resolver:
ret
.size foo_resolver, .-foo_resolver
.globl foo1
.type foo1, %gnu_indirect_function
.set foo1, foo_resolver
.globl foo2
.type foo2, %gnu_indirect_function
.set foo2, foo_resolver
.globl bar
.type bar, @function
bar:
.L1:
auipc x1, %got_pcrel_hi (foo1)
.ifdef __64_bit__
ld x1, %pcrel_lo (.L1) (x1)
.else
lw x1, %pcrel_lo (.L1) (x1)
.endif
call foo1
call foo1@plt
.L2:
auipc x2, %got_pcrel_hi (foo2)
.ifdef __64_bit__
ld x2, %pcrel_lo (.L2) (x2)
.else
lw x2, %pcrel_lo (.L2) (x2)
.endif
ret
.size bar, .-bar