|
|
|
@ -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: |
|
|
|
|