Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Dec 2001 06:19:05 +0100
From:      Bernd Walter <ticso@cicely9.cicely.de>
To:        Andrew Gallatin <gallatin@cs.duke.edu>
Cc:        Daniel Eischen <eischen@vigrid.com>, freebsd-alpha@FreeBSD.ORG
Subject:   Re: Munging jmp_bufs on alpha
Message-ID:  <20011221051904.GA71395@cicely9.cicely.de>
In-Reply-To: <20011220063713.GC67179@cicely9.cicely.de>
References:  <3C21000F.994BD53D@vigrid.com> <15393.15450.563749.55393@grasshopper.cs.duke.edu> <20011220063713.GC67179@cicely9.cicely.de>

next in thread | previous in thread | raw e-mail | index | archive | help

--ikeVEW9yuYc//A+q
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

My first explanation was a bit wrong but nevertheless here are the
patches for libc and Daniels testprogramm.

-- 
B.Walter              COSMO-Project         http://www.cosmo-project.de
ticso@cicely.de         Usergroup           info@cosmo-project.de


--ikeVEW9yuYc//A+q
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=patch

Index: src/lib/libc/alpha/gen/_setjmp.S
===================================================================
RCS file: /vol/freebsd-cvs/src/lib/libc/alpha/gen/_setjmp.S,v
retrieving revision 1.7
diff -u -r1.7 _setjmp.S
--- src/lib/libc/alpha/gen/_setjmp.S	24 Jan 2001 12:58:52 -0000	1.7
+++ src/lib/libc/alpha/gen/_setjmp.S	21 Dec 2001 05:11:50 -0000
@@ -96,6 +96,7 @@
 	beq	t0, botch			/* If the magic was bad, punt */
 
 	ldq	ra, (2 * 8)(a0)			/* sc_pc = return address */
+	mov	ra, t12
 	ldq	s0, (( 9 + 4) * 8)(a0)		/* saved bits of sc_regs */
 	ldq	s1, ((10 + 4) * 8)(a0)
 	ldq	s2, ((11 + 4) * 8)(a0)

--ikeVEW9yuYc//A+q
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=patch2

--- test_jmpbuf.c	Fri Dec 21 06:15:18 2001
+++ test_jmpbuf.c.new	Fri Dec 21 06:14:58 2001
@@ -16,7 +16,7 @@
 #define	SET_STACK_JB(jb, stk)		(jb)[0]._jb[R_SP + 4] = (long)(stk)
 #define	GET_STACK_JB(jb)		((unsigned long)((jb)[0]._jb[R_SP + 4]))
 #define SET_RETURN_ADDR_JB(jb, ra) do {		\
-	(jb)[0]._jb[2] = (unsigned long)(ra) + 8UL;	\
+	(jb)[0]._jb[2] = (unsigned long)(ra);	\
 	(jb)[0]._jb[R_RA + 4] = (long)(ra);	\
 	(jb)[0]._jb[R_T12 + 4] = (long)(ra);	\
 } while (0)

--ikeVEW9yuYc//A+q--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011221051904.GA71395>