diff options
author | Wolfgang Denk <wd@denx.de> | 2008-05-05 11:25:04 (GMT) |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2008-05-05 11:25:04 (GMT) |
commit | 908261f3fdb418091d8c60bfbd7eb85e5869b579 (patch) | |
tree | 87f976b1174cad1f5270e72bb0201dcb92eeb082 /cpu | |
parent | 12a67a9e51f6b3ec26cb0f077fb5685a447c359d (diff) | |
parent | 0f8c62a14b523c56874ebcb67c1a16c99aad48b3 (diff) | |
download | u-boot-908261f3fdb418091d8c60bfbd7eb85e5869b579.tar.xz |
Merge branch 'master' of git+ssh://10.10.0.7/home/wd/git/u-boot/master
Diffstat (limited to 'cpu')
-rw-r--r-- | cpu/mips/start.S | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/cpu/mips/start.S b/cpu/mips/start.S index 6e1a78c..947128d 100644 --- a/cpu/mips/start.S +++ b/cpu/mips/start.S @@ -345,7 +345,8 @@ relocate_code: jr t0 nop - .gpword _GLOBAL_OFFSET_TABLE_ /* _GLOBAL_OFFSET_TABLE_ - _gp */ + .word _gp + .word _GLOBAL_OFFSET_TABLE_ .word uboot_end_data .word uboot_end .word num_got_entries @@ -358,8 +359,10 @@ in_ram: * generated by GNU ld. Skip these reserved entries from relocation. */ lw t3, -4(t0) /* t3 <-- num_got_entries */ - lw t4, -16(t0) /* t4 <-- (_GLOBAL_OFFSET_TABLE_ - _gp) */ - add t4, t4, gp /* t4 now holds _GLOBAL_OFFSET_TABLE_ */ + lw t4, -16(t0) /* t4 <-- _GLOBAL_OFFSET_TABLE_ */ + lw t5, -20(t0) /* t5 <-- _gp */ + sub t4, t5 /* compute offset*/ + add t4, t4, gp /* t4 now holds relocated _GLOBAL_OFFSET_TABLE_ */ addi t4, t4, 8 /* Skipping first two entries. */ li t2, 2 1: |