Author: mcayland Date: Tue Dec 29 16:50:36 2015 New Revision: 1363 URL: http://tracker.coreboot.org/trac/openbios/changeset/1363
Log: SPARC64: move client interface stack inline to the new Forth context stack
Rather than having a separate OpenBIOS stack for client interface calls, reuse the Forth stack by reserving 8K extra beneath the CPU save state area and using that instead.
Signed-off-by: Mark Cave-Ayland mark.cave-ayland@ilande.co.uk
Modified: trunk/openbios-devel/arch/sparc64/call-client.S
Modified: trunk/openbios-devel/arch/sparc64/call-client.S ============================================================================== --- trunk/openbios-devel/arch/sparc64/call-client.S Tue Dec 29 16:50:34 2015 (r1362) +++ trunk/openbios-devel/arch/sparc64/call-client.S Tue Dec 29 16:50:36 2015 (r1363) @@ -148,9 +148,6 @@ .data .align 8
- .skip 16384 -openbios_stack: - client_stack: .xword 0 client_tba: @@ -200,8 +197,15 @@ SAVE_WINDOW_STATE(cif)
- /* Move to OpenBIOS stack */ - setx openbios_stack - 2047 - 192, %g6, %g7 + /* Move to OpenBIOS context stack */ + setx _fcstack_ptr, %g6, %g7 + ldx [%g7], %g6 + setx 0x2000, %g4, %g5 + sub %g6, %g5, %g6 + stx %g6, [%g7] + + setx - 2047 - 192, %g6, %g7 + add %g1, %g7, %g7 mov %g7, %sp
/* Call client inteface */ @@ -211,6 +215,9 @@ /* Restore windows */ setx _fcstack_ptr, %g6, %g7 ldx [%g7], %g1 + setx 0x2000, %g4, %g5 + add %g1, %g5, %g1 + stx %g1, [%g7] /* Return value */ stx %o0, [%g1 + 0x30]