56 lines
816 B
ArmAsm
56 lines
816 B
ArmAsm
.macro loadtoc,sym
|
|
.if size == 32
|
|
lwz 1,\sym(2)
|
|
.else
|
|
ld 1,\sym(2)
|
|
.endif
|
|
.endm
|
|
|
|
.toc
|
|
LC01: .tc indirect1[TC],indirect1[RW]
|
|
LC02: .tc block[TC],block[RW]
|
|
|
|
.csect .unused_local[PR]
|
|
.unused_local:
|
|
bl .unused_global
|
|
|
|
.globl .init_function
|
|
.csect .init_function[PR]
|
|
.init_function:
|
|
loadtoc LC01
|
|
|
|
.globl .fini_function
|
|
.csect .fini_function[PR]
|
|
.fini_function:
|
|
loadtoc LC02
|
|
|
|
.globl .unused_global
|
|
.csect .unused_global[PR]
|
|
.unused_global:
|
|
bl .unused_local
|
|
|
|
.globl .exported_global
|
|
.csect .exported_global[PR]
|
|
.exported_global:
|
|
bl .indirect2
|
|
|
|
.globl .indirect1
|
|
.csect .indirect1[PR]
|
|
.indirect1:
|
|
lwz 8,4(8)
|
|
|
|
.csect .indirect2[PR]
|
|
.indirect2:
|
|
lwz 8,8(8)
|
|
|
|
.globl .indirect3
|
|
.csect .indirect3[PR]
|
|
.indirect3:
|
|
lwz 8,12(8)
|
|
|
|
.globl block
|
|
.csect block[RW]
|
|
block:
|
|
.long indirect3
|
|
.long 0x11223344
|