]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
linux-unwind.h: Update copyright years.
authorUros Bizjak <uros@gcc.gnu.org>
Wed, 21 Dec 2011 21:29:45 +0000 (22:29 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Wed, 21 Dec 2011 21:29:45 +0000 (22:29 +0100)
* config/alpha/linux-unwind.h: Update copyright years.
(MD_FROB_UPDATE_CONTEXT): New define.
(alpha_frob_update_context): New function.

From-SVN: r182606

gcc/ChangeLog
gcc/config/alpha/linux-unwind.h

index f01c00de6ca3f6e3f6a0db99b2f79b4968067689..154b64434f34cef6856ebd0652749a21af6bfc31 100644 (file)
@@ -1,7 +1,12 @@
+2011-12-21  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/alpha/linux-unwind.h: Update copyright years.
+       (MD_FROB_UPDATE_CONTEXT): New define.
+       (alpha_frob_update_context): New function.
+
 2011-12-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
-       * regmove.c (fixup_match_2): Only access call_used_regs with hard
-       regs.
+       * regmove.c (fixup_match_2): Only access call_used_regs with hard regs.
 
 2011-12-09  Kazu Hirata  <kazu@codesourcery.com>
 
index 629d557c46c7ff1b3594e7587f36b7188a5e0200..4c811dca4bf4589f259785ca7ef366184e854249 100644 (file)
@@ -1,5 +1,5 @@
 /* DWARF2 EH unwinding support for Alpha Linux.
-   Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005, 2009, 2011 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -36,16 +36,17 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
 {
   unsigned int *pc = context->ra;
   struct sigcontext *sc;
-  long new_cfa, i;
+  long new_cfa;
+  int i;
 
   if (pc[0] != 0x47fe0410              /* mov $30,$16 */
-      || pc[2] != 0x00000083           /* callsys */)
+      || pc[2] != 0x00000083)          /* callsys */
     return _URC_END_OF_STACK;
   if (context->cfa == 0)
     return _URC_END_OF_STACK;
   if (pc[1] == 0x201f0067)             /* lda $0,NR_sigreturn */
     sc = context->cfa;
-  else if (pc[1] == 0x201f015f)        /* lda $0,NR_rt_sigreturn */
+  else if (pc[1] == 0x201f015f)                /* lda $0,NR_rt_sigreturn */
     {
       struct rt_sigframe {
        struct siginfo info;
@@ -55,6 +56,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
     }
   else
     return _URC_END_OF_STACK;
+
   new_cfa = sc->sc_regs[30];
   fs->regs.cfa_how = CFA_REG_OFFSET;
   fs->regs.cfa_reg = 30;
@@ -63,13 +65,13 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
     {
       fs->regs.reg[i].how = REG_SAVED_OFFSET;
       fs->regs.reg[i].loc.offset
-       = (long)&sc->sc_regs[i] - new_cfa;
+       = (long) &sc->sc_regs[i] - new_cfa;
     }
   for (i = 0; i < 31; ++i)
     {
       fs->regs.reg[i+32].how = REG_SAVED_OFFSET;
       fs->regs.reg[i+32].loc.offset
-       = (long)&sc->sc_fpregs[i] - new_cfa;
+       = (long) &sc->sc_fpregs[i] - new_cfa;
     }
   fs->regs.reg[64].how = REG_SAVED_OFFSET;
   fs->regs.reg[64].loc.offset = (long)&sc->sc_pc - new_cfa;
@@ -78,3 +80,20 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
 
   return _URC_NO_REASON;
 }
+
+#define MD_FROB_UPDATE_CONTEXT alpha_frob_update_context
+
+/* Fix up for signal handlers that don't have S flag set.  */
+
+static void
+alpha_frob_update_context (struct _Unwind_Context *context,
+                          _Unwind_FrameState *fs ATTRIBUTE_UNUSED)
+{
+  unsigned int *pc = context->ra;
+
+  if (pc[0] == 0x47fe0410              /* mov $30,$16 */
+      && pc[2] == 0x00000083           /* callsys */
+      && (pc[1] == 0x201f0067          /* lda $0,NR_sigreturn */
+         || pc[1] == 0x201f015f))      /* lda $0,NR_rt_sigreturn */
+    _Unwind_SetSignalFrame (context, 1);
+}