* config/i386/i386.c (x86_initialize_trampoline): Emit a call
authorthorpej <thorpej@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 18 Oct 2002 23:00:50 +0000 (23:00 +0000)
committerthorpej <thorpej@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 18 Oct 2002 23:00:50 +0000 (23:00 +0000)
to __enable_execute_stack with the address of the trampoline
if TRANSFER_FROM_TRAMPOLINE is defined.
* config/i386/i386.h (TARGET_64BIT): Expand to a compile-time
constant if building libgcc2.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@58291 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.h

index 9d0de30..53bbe9a 100644 (file)
@@ -1,3 +1,11 @@
+2002-10-18  Jason Thorpe  <thorpej@wasabisystems.com>
+
+       * config/i386/i386.c (x86_initialize_trampoline): Emit a call
+       to __enable_execute_stack with the address of the trampoline
+       if TRANSFER_FROM_TRAMPOLINE is defined.
+       * config/i386/i386.h (TARGET_64BIT): Expand to a compile-time
+       constant if building libgcc2.
+
 2002-10-17  Roger Sayle  <roger@eyesopen.com>
 
        * doc/c-tree.texi: Update description of COND_EXPR tree nodes.
index 739db6a..1ea90ee 100644 (file)
@@ -11713,6 +11713,11 @@ x86_initialize_trampoline (tramp, fnaddr, cxt)
       if (offset > TRAMPOLINE_SIZE)
        abort ();
     }
+
+#ifdef TRANSFER_FROM_TRAMPOLINE
+  emit_library_call (gen_rtx (SYMBOL_REF, Pmode, "__enable_execute_stack"),
+                    LCT_NORMAL, VOIDmode, 1, tramp, Pmode);
+#endif
 }
 \f
 #define def_builtin(MASK, NAME, TYPE, CODE)                    \
index 5409bcd..9e52d66 100644 (file)
@@ -177,7 +177,15 @@ extern int target_flags;
 /* Debug FUNCTION_ARG macros */
 #define TARGET_DEBUG_ARG (ix86_debug_arg_string != 0)
 
-/* 64bit Sledgehammer mode */
+/* 64bit Sledgehammer mode.  For libgcc2 we make sure this is a
+   compile-time constant.  */
+#ifdef IN_LIBGCC2
+#ifdef __x86_64__
+#define TARGET_64BIT 1
+#else
+#define TARGET_64BIT 0
+#endif
+#else
 #ifdef TARGET_BI_ARCH
 #define TARGET_64BIT (target_flags & MASK_64BIT)
 #else
@@ -187,6 +195,7 @@ extern int target_flags;
 #define TARGET_64BIT 0
 #endif
 #endif
+#endif
 
 #define TARGET_386 (ix86_cpu == PROCESSOR_I386)
 #define TARGET_486 (ix86_cpu == PROCESSOR_I486)