about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/ia64/setjmp.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-03-25 05:15:51 +0000
committerUlrich Drepper <drepper@redhat.com>2001-03-25 05:15:51 +0000
commit0a45b76c6238f4685c07ba5c5db371ae9b95d661 (patch)
tree2f2102508869d2b1d9d31799f81c65e691904911 /sysdeps/unix/sysv/linux/ia64/setjmp.S
parent8c0fe2900498fea31db0d0f3bb2f4f13b8e393ce (diff)
downloadglibc-0a45b76c6238f4685c07ba5c5db371ae9b95d661.tar.gz
glibc-0a45b76c6238f4685c07ba5c5db371ae9b95d661.tar.xz
glibc-0a45b76c6238f4685c07ba5c5db371ae9b95d661.zip
Update.
2001-03-23  Jes Sorensen  <jes@linuxcare.com>

	* sysdeps/unix/sysv/linux/ia64/sysdep.h (ENTRY): Moved to ...
	* sysdeps/ia64/sysdep.h: ...here.

	* sysdeps/ia64/sysdep.h (LOCAL_ENTRY): Define.
	* sysdeps/ia64/sysdep.h (LOCAL_LEAF): Define.

	* sysdeps/ia64/_mcount.S (_mcount_ret_helper): Use LOCAL_LEAF() to
	declare instead of LEAF().  Suggestion from David Mosberger.

2001-03-21  David Mosberger  <davidm@hpl.hp.com>

	* sysdeps/unix/sysv/linux/ia64/sysdep.h (CALL_MCOUNT): Add unwind
	directives.
	(PSEUDO): Drop .psr and .lsb directives.

	* sysdeps/unix/sysv/linux/ia64/setjmp.S: Ditto.  Add unwind
	directives.
	* sysdeps/unix/sysv/linux/ia64/sysdep.S: Ditto.

	* sysdeps/ia64/elf/start.S: Misc cleanup: remove .psr and .lsb
	directives etc.
	* sysdeps/unix/sysv/linux/ia64/brk.S: Ditto.
	* sysdeps/unix/sysv/linux/ia64/__longjmp.S: Ditto.
	* sysdeps/ia64/_mcount.S: Remove .psr and .lsb directives (no
	longer needed).  Add unwind directives.

	* sysdeps/ia64/sysdep.h: Define ASM_UNW_PRLG_RP, ASM_UNW_PRLG_PFS,
	ASM_UNW_PRLG_PSP, ASM_UNW_PRLG_PR, and ASM_UNW_PRLG_GRSAVE.

2001-03-21  Paul Eggert  <eggert@twinsun.com>

	* posix/regex.h (RE_INVALID_INTERVAL_ORD): New macro.
	(RE_SYNTAX_POSIX_EGREP): Use it.
	* posix/regex.c (regex_compile): Implement it.

2001-03-21  Paul Eggert  <eggert@twinsun.com>

	* posix/regex.c (GET_UNSIGNED_NUMBER): Check for overflow.
	Rewrite to avoid duplicate code.

2001-03-21  H.J. Lu  <hjl@gnu.org>

	* elf/Makefile (tests): Don't depend on $(objpfx)tst-pathopt.out
	for cross-compiling.
	($(objpfx)tst-pathopt.out): Undo the last change.
Diffstat (limited to 'sysdeps/unix/sysv/linux/ia64/setjmp.S')
-rw-r--r--sysdeps/unix/sysv/linux/ia64/setjmp.S44
1 files changed, 18 insertions, 26 deletions
diff --git a/sysdeps/unix/sysv/linux/ia64/setjmp.S b/sysdeps/unix/sysv/linux/ia64/setjmp.S
index 63abe0d25e..1d03cc55c0 100644
--- a/sysdeps/unix/sysv/linux/ia64/setjmp.S
+++ b/sysdeps/unix/sysv/linux/ia64/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
    Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -19,7 +19,7 @@
    The layout of the jmp_buf is as follows.  This is subject to change
    and user-code should never depend on the particular layout of
    jmp_buf!
-  
+
 
   	offset:	description:
 	-------	------------
@@ -67,34 +67,25 @@
 #include <sysdep.h>
 #include <features.h>
 
-	.text
-	.psr abi64
-	.psr lsb
-	.lsb
-
 	/* The following two entry points are the traditional entry points: */
 
-	.global setjmp
-	.proc setjmp
-setjmp:	alloc r8=ar.pfs,2,0,0,0
+LEAF(setjmp)
+	alloc r8=ar.pfs,2,0,0,0
 	mov in1=1
 	br.cond.sptk.many __sigsetjmp
-	.endp setjmp
+END(setjmp)
 
-	.global _setjmp
-	.proc _setjmp
-_setjmp:
+LEAF(_setjmp)
 	alloc r8=ar.pfs,2,0,0,0
 	mov in1=0
 	br.cond.sptk.many __sigsetjmp
-	.endp _setjmp
+END(_setjmp)
 
 	/* __sigsetjmp(__jmp_buf buf, int savemask) */
-	.align 32
-	.global __sigsetjmp
-	.proc __sigsetjmp
-__sigsetjmp:
-	alloc loc0=ar.pfs,2,2,2,0
+
+ENTRY(__sigsetjmp)
+	.prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(2)
+	alloc loc1=ar.pfs,2,2,2,0
 	mov r16=ar.unat
 	;;
 	mov r17=ar.fpsr
@@ -114,7 +105,8 @@ __sigsetjmp:
 	;;
 	stf.spill.nta [r8]=f2,32
 	stf.spill.nta [r9]=f3,32
-	mov loc1=rp
+	mov loc0=rp
+	.body
 	;;
 	stf.spill.nta [r8]=f4,32
 	stf.spill.nta [r9]=f5,32
@@ -157,7 +149,7 @@ __sigsetjmp:
 	mov r25=ar.unat
 	mov out0=in0
 
-	st8.nta [r2]=loc1,16		// b0
+	st8.nta [r2]=loc0,16		// b0
 	st8.nta [r3]=r17,16		// b1
 	mov out1=in1
 	;;
@@ -167,7 +159,7 @@ __sigsetjmp:
 	st8.nta [r2]=r20,16		// b4
 	st8.nta [r3]=r21,16		// b5
 	;;
-	st8.nta [r2]=loc0,16		// ar.pfs
+	st8.nta [r2]=loc1,16		// ar.pfs
 	st8.nta [r3]=r22,16		// ar.lc
 	;;
 	st8.nta [r2]=r24,16		// pr
@@ -178,10 +170,10 @@ __sigsetjmp:
 	br.call.dpnt.few rp=__sigjmp_save
 .ret0:					// force a new bundle ::q
 	mov r8=0
-	mov rp=loc1
-	mov ar.pfs=loc0
+	mov rp=loc0
+	mov ar.pfs=loc1
 	ret
-	.endp __sigsetjmp
+END(__sigsetjmp)
 
 weak_extern(_setjmp)
 weak_extern(setjmp)