mirror of
https://github.com/autc04/Retro68.git
synced 2024-12-12 11:29:30 +00:00
40 lines
552 B
ArmAsm
40 lines
552 B
ArmAsm
.text
|
|
|
|
.type foo_resolver, @function
|
|
foo_resolver:
|
|
ret
|
|
.size foo_resolver, .-foo_resolver
|
|
|
|
.globl foo
|
|
.type foo, %gnu_indirect_function
|
|
.set foo, foo_resolver
|
|
|
|
.globl bar
|
|
.type bar, @function
|
|
bar:
|
|
.L1:
|
|
auipc x1, %got_pcrel_hi (foo)
|
|
.ifdef __64_bit__
|
|
ld x1, %pcrel_lo (.L1) (x1)
|
|
.else
|
|
lw x1, %pcrel_lo (.L1) (x1)
|
|
.endif
|
|
|
|
.L2:
|
|
auipc x2, %pcrel_hi (foo_addr)
|
|
.ifdef __64_bit__
|
|
ld x2, %pcrel_lo (.L2) (x2)
|
|
.else
|
|
lw x2, %pcrel_lo (.L2) (x2)
|
|
.endif
|
|
ret
|
|
.size bar, .-bar
|
|
|
|
.data
|
|
foo_addr:
|
|
.ifdef __64_bit__
|
|
.quad foo
|
|
.else
|
|
.long foo
|
|
.endif
|