This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

fix trampolines on powerpc-darwin9


This fixes the trampoline-related testcases on powerpc-darwin9.  With
this and the cleanup fixes, darwin9 has better results than darwin8,
two new problems (apparently) and three old problems fixed.

Bootstrapped & tested on powerpc-darwin9.

I'll commit this to 4.2 as well, even though it's not technically a
regression; it causes a lot of testsuite noise and it affects the
shared libgcc, and I think it's pretty safe.

-- 
- Geoffrey Keating <geoffk@apple.com>

===File ~/patches/gcc-darwin-trampolinewriteable.patch======
2007-02-05  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
	__enable_execute_stack on completion.

Index: config/rs6000/darwin-tramp.asm
===================================================================
--- config/rs6000/darwin-tramp.asm	(revision 121440)
+++ config/rs6000/darwin-tramp.asm	(working copy)
@@ -96,11 +96,13 @@
 	addi	r3,r3,4
 	bdnz	Lcache
 
-	/* Finally synchronize things & return */
+	/* Ensure cache-flushing has finished.  */
 	sync
 	isync
-	blr
 
+	/* Make stack writeable.  */
+	b	___enable_execute_stack
+
 Labort:
 #ifdef __DYNAMIC__
 	bl	L_abort$stub
============================================================


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]