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]

Re: fix powerpc64 signal frame unwinding aborts


Alan Modra wrote:

Index: gcc/config/rs6000/linux64.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/linux64.h,v
retrieving revision 1.56
diff -u -p -r1.56 linux64.h
--- gcc/config/rs6000/linux64.h	27 Jan 2004 11:15:23 -0000	1.56
+++ gcc/config/rs6000/linux64.h	29 Jan 2004 15:03:32 -0000
@@ -649,10 +659,10 @@ enum { SIGNAL_FRAMESIZE = 64 };
        get the same result for multiple evaluation of the same signal	\
        frame.  */							\
     sc_->regs->gpr[47] = sc_->regs->nip + 4;  				\
-    (FS)->regs.reg[CR0_REGNO].how = REG_SAVED_OFFSET;			\
-    (FS)->regs.reg[CR0_REGNO].loc.offset 				\
+    (FS)->regs.reg[67].how = REG_SAVED_OFFSET;				\
+    (FS)->regs.reg[67].loc.offset 					\
       = (long)&(sc_->regs->gpr[47]) - new_cfa_;				\
-    (FS)->retaddr_column = CR0_REGNO;					\
+    (FS)->retaddr_column = 67;						\
     goto SUCCESS;							\
   } while (0)

just wondering, why do you take the 67 and not


/* Base register for access to arguments of the function.  */
#define ARG_POINTER_REGNUM 67

?

Andreas


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