[OpenBIOS] [commit] r1363 - trunk/openbios-devel/arch/sparc64
repository service
svn at openbios.org
Tue Dec 29 16:50:37 CET 2015
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 at 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]
More information about the OpenBIOS
mailing list