diff options
Diffstat (limited to 'roms/SLOF/rtas')
-rw-r--r-- | roms/SLOF/rtas/reloc.S | 2 | ||||
-rw-r--r-- | roms/SLOF/rtas/rtas.lds | 3 | ||||
-rw-r--r-- | roms/SLOF/rtas/rtas_entry.S | 2 |
3 files changed, 4 insertions, 3 deletions
diff --git a/roms/SLOF/rtas/reloc.S b/roms/SLOF/rtas/reloc.S index e24d293d4..1b5b59a68 100644 --- a/roms/SLOF/rtas/reloc.S +++ b/roms/SLOF/rtas/reloc.S @@ -61,7 +61,7 @@ _rtas_start: ._rtas_entry_offset: .quad rtas_entry-_rtas_start ._rtas_config_offset: .quad rtas_config-_rtas_start ._rtas_stack: .quad .stack-_rtas_start+RTAS_STACKSIZE-0x60 -._rtas_toc: .quad _got-_rtas_start+0x8000 +._rtas_toc: .quad _got-_rtas_start .over: mflr r8 # gpr 8 is the base diff --git a/roms/SLOF/rtas/rtas.lds b/roms/SLOF/rtas/rtas.lds index a5ba1daaf..30b18dd26 100644 --- a/roms/SLOF/rtas/rtas.lds +++ b/roms/SLOF/rtas/rtas.lds @@ -28,7 +28,8 @@ SECTIONS { } .got : { - _got = .; + . = ALIGN(256); + _got = DEFINED (.TOC.) ? .TOC. : ADDR (.got) + 0x8000; *(.got .toc) } .reloc : diff --git a/roms/SLOF/rtas/rtas_entry.S b/roms/SLOF/rtas/rtas_entry.S index 74693aa48..424137bf5 100644 --- a/roms/SLOF/rtas/rtas_entry.S +++ b/roms/SLOF/rtas/rtas_entry.S @@ -39,7 +39,7 @@ rtas_entry: bcl 20,31,.over # branch to over .base: .align 3 -..got: .quad _got-.base+0x8000 +..got: .quad _got-.base ..stack: .quad .stack+RTAS_STACKSIZE-0x60-.base .over: mflr r8 # gpr 8 is the base |