1.1 --- a/stage2/entry.S Wed Feb 24 17:25:47 2016 +0100
1.2 +++ b/stage2/entry.S Wed Feb 24 17:26:10 2016 +0100
1.3 @@ -26,16 +26,20 @@
1.4 .set noreorder
1.5
1.6 _tlb_entry:
1.7 - lui $k0, %hi(_GLOBAL_OFFSET_TABLE_)
1.8 - ori $k0, $k0, %lo(_GLOBAL_OFFSET_TABLE_)
1.9 + move $k1, $gp
1.10 + lui $gp, %hi(_GLOBAL_OFFSET_TABLE_)
1.11 + ori $gp, $gp, %lo(_GLOBAL_OFFSET_TABLE_)
1.12 la $k0, tlb_handler
1.13 + move $gp, $k1
1.14 jr $k0
1.15 nop
1.16
1.17 _irq_entry:
1.18 - lui $k0, %hi(_GLOBAL_OFFSET_TABLE_)
1.19 - ori $k0, $k0, %lo(_GLOBAL_OFFSET_TABLE_)
1.20 + move $k1, $gp
1.21 + lui $gp, %hi(_GLOBAL_OFFSET_TABLE_)
1.22 + ori $gp, $gp, %lo(_GLOBAL_OFFSET_TABLE_)
1.23 la $k0, interrupt_handler
1.24 + move $gp, $k1
1.25 jr $k0
1.26 nop
1.27
2.1 --- a/stage2/handlers.S Wed Feb 24 17:25:47 2016 +0100
2.2 +++ b/stage2/handlers.S Wed Feb 24 17:26:10 2016 +0100
2.3 @@ -33,6 +33,8 @@
2.4
2.5 /* Invoke the handler. */
2.6
2.7 + lui $gp, %hi(_GLOBAL_OFFSET_TABLE_)
2.8 + ori $gp, $gp, %lo(_GLOBAL_OFFSET_TABLE_)
2.9 jal tlb_handle
2.10 nop
2.11
2.12 @@ -46,6 +48,8 @@
2.13
2.14 /* Invoke the handler. */
2.15
2.16 + lui $gp, %hi(_GLOBAL_OFFSET_TABLE_)
2.17 + ori $gp, $gp, %lo(_GLOBAL_OFFSET_TABLE_)
2.18 jal irq_handle
2.19 nop
2.20