1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
.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
|