OSDN Git Service

libgcc/ChangeLog:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 17 Oct 2011 15:36:28 +0000 (15:36 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 17 Oct 2011 15:36:28 +0000 (15:36 +0000)
2011-10-16  Uros Bizjak  <ubizjak@gmail.com>
    Eric Botcazou  <ebotcazou@adacore.com>

PR target/50737
* config/alpha/linux-unwind.h (alpha_fallback_frame_state): Set
fs->signal_frame to 1.

libjava/ChangeLog:

2011-10-16  Uros Bizjak  <ubizjak@gmail.com>
    Eric Botcazou  <ebotcazou@adacore.com>

PR target/50737
* include/dwarf2-signal.h [__alpha__]: Remove MAKE_THROW_FRAME
definition.

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

libgcc/ChangeLog
libgcc/config/alpha/linux-unwind.h
libjava/ChangeLog
libjava/include/dwarf2-signal.h

index 87ba1ca..54287b4 100644 (file)
@@ -1,3 +1,10 @@
+2011-10-16  Uros Bizjak  <ubizjak@gmail.com>
+           Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR target/50737
+       * config/alpha/linux-unwind.h (alpha_fallback_frame_state): Set
+       fs->signal_frame to 1.
+
 2011-10-07  Ian Lance Taylor  <iant@google.com>
 
        * generic-morestack-thread.c: #include <errno.h>.
index e43aacf..629d557 100644 (file)
@@ -74,5 +74,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
   fs->regs.reg[64].how = REG_SAVED_OFFSET;
   fs->regs.reg[64].loc.offset = (long)&sc->sc_pc - new_cfa;
   fs->retaddr_column = 64;
+  fs->signal_frame = 1;
+
   return _URC_NO_REASON;
 }
index 53adfd4..efbf855 100644 (file)
@@ -1,3 +1,10 @@
+2011-10-16  Uros Bizjak  <ubizjak@gmail.com>
+           Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR target/50737
+       * include/dwarf2-signal.h [__alpha__]: Remove MAKE_THROW_FRAME
+       definition.
+
 2011-08-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * exception.cc (std::abort): Remove static.
index 949bcc0..8129682 100644 (file)
@@ -29,20 +29,7 @@ class java::lang::Throwable;
 // then throw an exception.  With the dwarf2 unwinder we don't usually
 // need to do anything, with some minor exceptions.
 
-#ifdef __alpha__
-#define MAKE_THROW_FRAME(_exception)                                   \
-do                                                                     \
-{                                                                      \
-  /* Alpha either leaves PC pointing at a faulting instruction or the  \
-   following instruction, depending on the signal.  SEGV always does   \
-   the former, so we adjust the saved PC to point to the following     \
-   instruction; this is what the handler in libgcc expects.  */                \
-  struct sigcontext *_sc = (struct sigcontext *)_p;                    \
-  _sc->sc_pc += 4;                                                     \
-}                                                                      \
-while (0)
-
-#elif defined(__ia64__)
+#ifdef __ia64__
 
 #define MAKE_THROW_FRAME(_exception)                                   \
 do                                                                     \