mirror of git://gcc.gnu.org/git/gcc.git
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:
parent
747b9f553a
commit
3062335c07
|
@ -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>
|
2006-03-15 Geoffrey Keating <geoffk@apple.com>
|
||||||
|
|
||||||
* config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
|
* config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* DWARF2 EH unwinding support for SH Linux.
|
/* 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.
|
This file is part of GCC.
|
||||||
|
|
||||||
|
@ -137,6 +137,7 @@ shmedia_fallback_frame_state (struct _Unwind_Context *context,
|
||||||
fs->regs.reg[63].loc.offset
|
fs->regs.reg[63].loc.offset
|
||||||
= (long)&(sc->sc_pc) - new_cfa;
|
= (long)&(sc->sc_pc) - new_cfa;
|
||||||
fs->retaddr_column = 63;
|
fs->retaddr_column = 63;
|
||||||
|
fs->signal_frame = 1;
|
||||||
return _URC_NO_REASON;
|
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
|
fs->regs.reg[SH_DWARF_FRAME_PC].loc.offset
|
||||||
= (long)&(sc->sc_pc) - new_cfa;
|
= (long)&(sc->sc_pc) - new_cfa;
|
||||||
fs->retaddr_column = SH_DWARF_FRAME_PC;
|
fs->retaddr_column = SH_DWARF_FRAME_PC;
|
||||||
|
fs->signal_frame = 1;
|
||||||
return _URC_NO_REASON;
|
return _URC_NO_REASON;
|
||||||
}
|
}
|
||||||
#endif /* defined (__SH5__) */
|
#endif /* defined (__SH5__) */
|
||||||
|
|
|
@ -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>
|
2006-03-15 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
* testsuite/libjava.jacks/jacks.xfail: Removed
|
* testsuite/libjava.jacks/jacks.xfail: Removed
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// sh-signal.h - Catch runtime signals and turn them into exceptions
|
// sh-signal.h - Catch runtime signals and turn them into exceptions
|
||||||
// on a SuperH based Linux system.
|
// 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.
|
This file is part of libgcj.
|
||||||
|
|
||||||
|
@ -33,28 +33,7 @@ typedef struct _sig_ucontext {
|
||||||
#define SIGNAL_HANDLER(_name) \
|
#define SIGNAL_HANDLER(_name) \
|
||||||
static void _name (int , siginfo_t *, sig_ucontext_t *_uc)
|
static void _name (int , siginfo_t *, sig_ucontext_t *_uc)
|
||||||
|
|
||||||
/* SH either leaves PC pointing at a faulting instruction or the
|
#define MAKE_THROW_FRAME(_exception)
|
||||||
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
|
|
||||||
|
|
||||||
/* For an explanation why we cannot simply use sigaction to
|
/* For an explanation why we cannot simply use sigaction to
|
||||||
install the handlers, see i386-signal.h. */
|
install the handlers, see i386-signal.h. */
|
||||||
|
|
Loading…
Reference in New Issue