aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaz Kojima <kkojima@gcc.gnu.org>2006-03-16 02:44:10 +0000
committerKaz Kojima <kkojima@gcc.gnu.org>2006-03-16 02:44:10 +0000
commit3062335c076f3700185f1f217fe0516d0549f67d (patch)
treef07f90453577dd978a46b2ca2b879b031dab4461
parent747b9f553aafa9b3e420d54c8c7d9a5eba0eda0b (diff)
downloadgcc-3062335c076f3700185f1f217fe0516d0549f67d.zip
gcc-3062335c076f3700185f1f217fe0516d0549f67d.tar.gz
gcc-3062335c076f3700185f1f217fe0516d0549f67d.tar.bz2
linux-unwind.h (shmedia_fallback_frame_state): Set fs->signal_frame.
* config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set fs->signal_frame. (sh_fallback_frame_state): Likewise. * include/sh-signal.h (MAKE_THROW_FRAME): Change into empty macro. From-SVN: r112122
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/sh/linux-unwind.h4
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/include/sh-signal.h25
4 files changed, 16 insertions, 24 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9908e3a..0ae3170 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/sh/linux-unwind.h b/gcc/config/sh/linux-unwind.h
index 3ba9436..de84a77 100644
--- a/gcc/config/sh/linux-unwind.h
+++ b/gcc/config/sh/linux-unwind.h
@@ -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__) */
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index f3ff2d6..ac20408 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -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
diff --git a/libjava/include/sh-signal.h b/libjava/include/sh-signal.h
index 25e8731..3a96ce2 100644
--- a/libjava/include/sh-signal.h
+++ b/libjava/include/sh-signal.h
@@ -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. */