59 lines
1.2 KiB
ArmAsm
59 lines
1.2 KiB
ArmAsm
.macro makeref,sym
|
|
lw $5,%got(\sym\@)($gp)
|
|
.endm
|
|
|
|
.globl f1
|
|
.ent f1
|
|
f1:
|
|
# See below.
|
|
lw $4,%got(foo+0x120000)($gp)
|
|
addiu $4,$4,%lo(foo+0x120000)
|
|
|
|
# 2 pages
|
|
lw $4,%got(foo-0x8000)($gp)
|
|
addiu $4,$4,%lo(foo-0x8000)
|
|
lw $4,%got(foo+0x800)($gp)
|
|
addiu $4,$4,%lo(foo+0x8000)
|
|
|
|
# 2 pages
|
|
lw $4,%got(foo-0x1000000)($gp)
|
|
addiu $4,$4,%lo(foo-0x1000000)
|
|
lw $4,%got(foo-0xffffff)($gp)
|
|
addiu $4,$4,%lo(foo-0xffffff)
|
|
|
|
# 1 page
|
|
lw $4,%got(foo+0x120000)($gp)
|
|
addiu $4,$4,%lo(foo+0x120000)
|
|
|
|
# 5 pages
|
|
lw $4,%got(bar)($gp)
|
|
addiu $4,$4,%lo(bar)
|
|
lw $4,%got(bar+0x20000)($gp)
|
|
addiu $4,$4,%lo(bar+0x20000)
|
|
lw $4,%got(bar+0x40000)($gp)
|
|
addiu $4,$4,%lo(bar+0x40000)
|
|
lw $4,%got(bar+0x30000)($gp)
|
|
addiu $4,$4,%lo(bar+0x30000)
|
|
lw $4,%got(bar+0x10000)($gp)
|
|
addiu $4,$4,%lo(bar+0x10000)
|
|
lw $4,%got(bar+0x38000)($gp)
|
|
addiu $4,$4,%lo(bar+0x38000)
|
|
lw $4,%got(bar+0x14000)($gp)
|
|
addiu $4,$4,%lo(bar+0x14000)
|
|
lw $4,%got(bar+0x2c000)($gp)
|
|
addiu $4,$4,%lo(bar+0x2c000)
|
|
lw $4,%got(bar+0x02000)($gp)
|
|
addiu $4,$4,%lo(bar+0x02000)
|
|
.end f1
|
|
|
|
.rept 8000
|
|
makeref foo
|
|
.endr
|
|
|
|
.section .bss.foo,"aw",@nobits
|
|
.fill 0x800000
|
|
foo: .fill 0x800000
|
|
|
|
.section .bss.bar,"aw",@nobits
|
|
bar: .fill 0xc00000
|