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
This commit is contained in:
Kaz Kojima 2006-03-16 02:44:10 +00:00
parent 747b9f553a
commit 3062335c07
4 changed files with 16 additions and 24 deletions

View 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.

View 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__) */

View 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

View 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. */