Commit 3062335c by Kaz Kojima

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
parent 747b9f55
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.
......
/* 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__) */
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
......
// 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. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment