OSDN Git Service

* config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
authorkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 Mar 2006 02:44:10 +0000 (02:44 +0000)
committerkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 Mar 2006 02:44:10 +0000 (02:44 +0000)
fs->signal_frame.
(sh_fallback_frame_state): Likewise.

* include/sh-signal.h (MAKE_THROW_FRAME): Change into empty
macro.

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

gcc/ChangeLog
gcc/config/sh/linux-unwind.h
libjava/ChangeLog
libjava/include/sh-signal.h

index 9908e3a..0ae3170 100644 (file)
@@ -1,3 +1,9 @@
+2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
+       fs->signal_frame.
+       (sh_fallback_frame_state): Likewise.
+
 2006-03-15  Geoffrey Keating  <geoffk@apple.com>
 
        * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
index 3ba9436..de84a77 100644 (file)
@@ -1,5 +1,5 @@
 /* DWARF2 EH unwinding support for SH Linux.
-   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -137,6 +137,7 @@ shmedia_fallback_frame_state (struct _Unwind_Context *context,
   fs->regs.reg[63].loc.offset
     = (long)&(sc->sc_pc) - new_cfa;
   fs->retaddr_column = 63;
+  fs->signal_frame = 1;
   return _URC_NO_REASON;
 }
 
@@ -246,6 +247,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context,
   fs->regs.reg[SH_DWARF_FRAME_PC].loc.offset
     = (long)&(sc->sc_pc) - new_cfa;
   fs->retaddr_column = SH_DWARF_FRAME_PC;
+  fs->signal_frame = 1;
   return _URC_NO_REASON;
 }
 #endif /* defined (__SH5__) */
index f3ff2d6..ac20408 100644 (file)
@@ -1,3 +1,8 @@
+2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * include/sh-signal.h (MAKE_THROW_FRAME): Change into empty
+       macro.
+       
 2006-03-15  Tom Tromey  <tromey@redhat.com>
 
        * testsuite/libjava.jacks/jacks.xfail: Removed
index 25e8731..3a96ce2 100644 (file)
@@ -1,7 +1,7 @@
 // sh-signal.h - Catch runtime signals and turn them into exceptions
 // on a SuperH based Linux system.
 
-/* Copyright (C) 2004  Free Software Foundation
+/* Copyright (C) 2004, 2006  Free Software Foundation
 
    This file is part of libgcj.
 
@@ -33,28 +33,7 @@ typedef struct _sig_ucontext {
 #define SIGNAL_HANDLER(_name)                                          \
   static void _name (int , siginfo_t *, sig_ucontext_t *_uc)
 
-/* SH 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.  */
-
-#ifdef __SH5__
-#define MAKE_THROW_FRAME(_exception)                                   \
-do                                                                     \
-  {                                                                    \
-    volatile struct sigcontext *_sc = &_uc->uc_mcontext;               \
-    _sc->sc_pc += 4;                                                   \
-  }                                                                    \
-while (0)
-#else
-#define MAKE_THROW_FRAME(_exception)                                   \
-do                                                                     \
-  {                                                                    \
-    volatile struct sigcontext *_sc = &_uc->uc_mcontext;               \
-    _sc->sc_pc += 2;                                                   \
-  }                                                                    \
-while (0)
-#endif
+#define MAKE_THROW_FRAME(_exception)
 
 /* For an explanation why we cannot simply use sigaction to
    install the handlers, see i386-signal.h.  */