Patchwork [6/9] Emit the prologue/epilogue using frame offsets.

login
register
mail settings
Submitter Richard Henderson
Date Aug. 5, 2010, 3:40 p.m.
Message ID <4C5ADB66.2050807@twiddle.net>
Download mbox | patch
Permalink /patch/60999/
State New
Headers show

Comments

Richard Henderson - Aug. 5, 2010, 3:40 p.m.
On 08/05/2010 07:10 AM, H.J. Lu wrote:
> This caused:
> 
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45189

Fixed.


r~
H.J. Lu - Aug. 5, 2010, 3:47 p.m.
On Thu, Aug 5, 2010 at 8:40 AM, Richard Henderson <rth@twiddle.net> wrote:
> On 08/05/2010 07:10 AM, H.J. Lu wrote:
>> This caused:
>>
>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45189
>
> Fixed.
>

Are you sure this patch fixes the stack alignment failure on Linux/ia32?
Richard Henderson - Aug. 5, 2010, 3:58 p.m.
On 08/05/2010 08:47 AM, H.J. Lu wrote:
> On Thu, Aug 5, 2010 at 8:40 AM, Richard Henderson <rth@twiddle.net> wrote:
>> On 08/05/2010 07:10 AM, H.J. Lu wrote:
>>> This caused:
>>>
>>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45189
>>
>> Fixed.
>>
> 
> Are you sure this patch fixes the stack alignment failure on Linux/ia32?

No, I meant to reply to the ia64 failure.


r~

Patch

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1b5c8ad..4aeb014 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@ 
+2010-08-05  Richard Henderson  <rth@redhat.com>
+
+	* dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
+	(INCOMING_RETURN_ADDR_RTX): Likewise.
+	(dwarf2out_do_frame): Remove conditional compilation.
+	(dwarf2out_frame_init): Likewise.
+
 2010-08-05  Martin Jambor  <mjambor@suse.cz>
 
 	* ipa-cp.c (ipcp_discover_new_direct_edges): New function.
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 2c79c69..8e6f94f 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -112,6 +112,14 @@  int vms_file_stats_name (const char *, long long *, long *, char *, int *);
 #define DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET 0
 #endif
 
+#ifndef DWARF2_UNWIND_INFO
+#define DWARF2_UNWIND_INFO 0
+#endif
+
+#ifndef INCOMING_RETURN_ADDR_RTX
+#define INCOMING_RETURN_ADDR_RTX  (gcc_unreachable (), NULL_RTX)
+#endif
+
 #ifndef DWARF2_FRAME_INFO
 # ifdef DWARF2_DEBUGGING_INFO
 #  define DWARF2_FRAME_INFO \
@@ -143,11 +151,9 @@  dwarf2out_do_frame (void)
   return (write_symbols == DWARF2_DEBUG
 	  || write_symbols == VMS_AND_DWARF2_DEBUG
 	  || DWARF2_FRAME_INFO || saved_do_cfi_asm
-#ifdef DWARF2_UNWIND_INFO
 	  || (DWARF2_UNWIND_INFO
 	      && (flag_unwind_tables
 		  || (flag_exceptions && ! USING_SJLJ_EXCEPTIONS)))
-#endif
 	  );
 }
 
@@ -4153,10 +4159,8 @@  dwarf2out_frame_init (void)
   /* On entry, the Canonical Frame Address is at SP.  */
   dwarf2out_def_cfa (NULL, STACK_POINTER_REGNUM, INCOMING_FRAME_SP_OFFSET);
 
-#ifdef DWARF2_UNWIND_INFO
   if (DWARF2_UNWIND_INFO || DWARF2_FRAME_INFO)
     initial_return_save (INCOMING_RETURN_ADDR_RTX);
-#endif
 }
 
 void