[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openbios
Subject:    [OpenBIOS] [commit] r749 - trunk/openbios-devel/arch/sparc64
From:       repository service <svn () openbios ! org>
Date:       2010-04-16 10:20:07
Message-ID: E1O2ied-0002wO-1O () ra ! coresystems ! de
[Download RAW message or body]

Author: mcayland
Date: Fri Apr 16 12:20:06 2010
New Revision: 749
URL: http://tracker.coreboot.org/trac/openbios/changeset/749

Log:
Fix a mistake in call-client.S whereby the stack offsets were out by one item. When \
saving registers upon a client's entry into  the CIF, we were using space for one \
more stack item than we had allocated. Hence a subsequent stack push would corrupt \
the  topmost item (in this case register %g7) causing it to be restored with a random \
value before returning to the client.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.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	Fri Apr 16 12:01:42 2010	(r748)
+++ trunk/openbios-devel/arch/sparc64/call-client.S	Fri Apr 16 12:20:06 2010	(r749)
@@ -21,24 +21,24 @@
 	flushw
 	save %sp, -248, %sp
 	stx	    %g1, [%sp + 2047 + 192 +  0]
-	stx	    %g2, [%sp + 2047 + 192 + 16]
-	stx	    %g3, [%sp + 2047 + 192 + 24]
-	stx	    %g4, [%sp + 2047 + 192 + 32]
-	stx	    %g5, [%sp + 2047 + 192 + 40]
-	stx	    %g6, [%sp + 2047 + 192 + 48]
-	stx	    %g7, [%sp + 2047 + 192 + 56]
+	stx	    %g2, [%sp + 2047 + 192 +  8]
+	stx	    %g3, [%sp + 2047 + 192 + 16]
+	stx	    %g4, [%sp + 2047 + 192 + 24]
+	stx	    %g5, [%sp + 2047 + 192 + 32]
+	stx	    %g6, [%sp + 2047 + 192 + 40]
+	stx	    %g7, [%sp + 2047 + 192 + 48]
 
 	call of_client_interface
 	 mov %i0, %o0
 	mov %o0, %i0
 
 	ldx	    [%sp + 2047 + 192 +  0], %g1
-	ldx	    [%sp + 2047 + 192 + 16], %g2
-	ldx	    [%sp + 2047 + 192 + 24], %g3
-	ldx	    [%sp + 2047 + 192 + 32], %g4
-	ldx	    [%sp + 2047 + 192 + 40], %g5
-	ldx	    [%sp + 2047 + 192 + 48], %g6
-	ldx	    [%sp + 2047 + 192 + 56], %g7
+	ldx	    [%sp + 2047 + 192 +  8], %g2
+	ldx	    [%sp + 2047 + 192 + 16], %g3
+	ldx	    [%sp + 2047 + 192 + 24], %g4
+	ldx	    [%sp + 2047 + 192 + 32], %g5
+	ldx	    [%sp + 2047 + 192 + 40], %g6
+	ldx	    [%sp + 2047 + 192 + 48], %g7
 	return  %i7+8
 	 nop
 

-- 
OpenBIOS                 http://openbios.org/
Mailinglist:  http://lists.openbios.org/mailman/listinfo
Free your System - May the Forth be with you


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic