summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2003-07-25 22:36:48 +0000
committermarcel <marcel@FreeBSD.org>2003-07-25 22:36:48 +0000
commit3c92e21eeb938c38b87965deb5e22241b9b268de (patch)
tree7b862067691b321a3e716c4e6b4190d6548896de
parent90dbdc0a7e3841c1ba9d25c597611f08c6384c20 (diff)
downloadFreeBSD-src-3c92e21eeb938c38b87965deb5e22241b9b268de.zip
FreeBSD-src-3c92e21eeb938c38b87965deb5e22241b9b268de.tar.gz
Revert previous commit. We don't use setjmp()/longjmp() for context
switching anymore, so there's no need to save and restore GP. This change breaks threaded applications linked against libc_r. Pull the tier 2 card again: relink. This will link against libthr instead.
-rw-r--r--lib/libc/ia64/gen/_setjmp.S6
-rw-r--r--sys/ia64/include/setjmp.h3
2 files changed, 3 insertions, 6 deletions
diff --git a/lib/libc/ia64/gen/_setjmp.S b/lib/libc/ia64/gen/_setjmp.S
index 8e3ba12..3966e83 100644
--- a/lib/libc/ia64/gen/_setjmp.S
+++ b/lib/libc/ia64/gen/_setjmp.S
@@ -171,11 +171,10 @@ ENTRY(_setjmp, 1)
mov r3 = b4
;;
st8 [r11] = r2, J_B5-J_B3
- st8 [r10] = r3, J_GP-J_B4
+ st8 [r10] = r3
mov r2 = b5
;;
st8 [r11] = r2
- st8 [r10] = r1
;;
//
// return
@@ -291,12 +290,11 @@ ENTRY(___longjmp, 2)
mov b1 = r2
mov b2 = r3
ld8 r2 = [r10], J_B5-J_B3
- ld8 r3 = [r11], J_GP-J_B4
+ ld8 r3 = [r11]
;;
mov b3 = r2
mov b4 = r3
ld8 r2 = [r10]
- ld8 r1 = [r11]
ld8 r21 = [r31] // get user unat
;;
mov b5 = r2
diff --git a/sys/ia64/include/setjmp.h b/sys/ia64/include/setjmp.h
index 6f4fab9..d7ca9f6 100644
--- a/sys/ia64/include/setjmp.h
+++ b/sys/ia64/include/setjmp.h
@@ -88,11 +88,10 @@
#define J_B5 0x1d0
#define J_SIGMASK 0x1d8
#define J_SIGSET 0x1e0
-#define J_GP 0x1f0
#endif /* __BSD_VISIBLE */
/*
- * We have 8 bytes left for future use, but it's a nice round,
+ * We only have 16 bytes left for future use, but it's a nice round,
* but above all large number. Size is in bytes.
*/
#define _JMPBUFSZ 0x200
OpenPOWER on IntegriCloud