[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[commits] r8606 - in /fsf/trunk/libc: ChangeLog sysdeps/powerpc/powerpc32/____longjmp_chk.S



Author: eglibc
Date: Fri Jun 26 00:07:40 2009
New Revision: 8606

Log:
Import glibc-mainline for 2009-06-26

Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/____longjmp_chk.S

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Fri Jun 26 00:07:40 2009
@@ -1,3 +1,8 @@
+2009-06-25  Andreas Schwab  <aschwab@xxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/____longjmp_chk.S (LOAD_ARG): Define.
+	(CHECK_SP): Use it.
+
 2009-06-24  Andreas Schwab  <aschwab@xxxxxxxxxx>
 
 	* sysdeps/powerpc/powerpc32/power4/fpu/w_sqrtf.S: Fix cfa offset

Modified: fsf/trunk/libc/sysdeps/powerpc/powerpc32/____longjmp_chk.S
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/____longjmp_chk.S (original)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/____longjmp_chk.S Fri Jun 26 00:07:40 2009
@@ -26,11 +26,30 @@
 
 #define __longjmp ____longjmp_chk
 
+#ifdef PIC
+# ifdef HAVE_ASM_PPC_REL16
+#  define LOAD_ARG \
+	bcl	20,31,1f;				\
+1:	mflr	r3;					\
+	addis	r3,r3,_GLOBAL_OFFSET_TABLE_-1b@ha;	\
+	addi	r3,r3,_GLOBAL_OFFSET_TABLE_-1b@l;	\
+	lwz	r3,.LC0@got(r3)
+# else
+#  define LOAD_ARG \
+	bl	_GLOBAL_OFFSET_TABLE_-4@local;		\
+	mflr	r3;					\
+	lwz	r3,.LC0@got(r3)
+# endif
+#else
+# define LOAD_ARG \
+	lis	r3,.LC0@ha;				\
+	la	r3,.LC0@l(r3)
+#endif
+
 #define CHECK_SP(reg) \
 	cmplw	reg, r1;				\
 	bge+	.Lok;					\
-	lis	r3,.LC0@ha;				\
-	la	r3,.LC0@l(r3);				\
+	LOAD_ARG;					\
 	bl	HIDDEN_JUMPTARGET (__fortify_fail);	\
 .Lok: