aboutsummaryrefslogtreecommitdiff
path: root/libjava/include
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/include')
-rw-r--r--libjava/include/i386-signal.h24
-rw-r--r--libjava/include/powerpc-signal.h18
-rw-r--r--libjava/include/x86_64-signal.h13
3 files changed, 10 insertions, 45 deletions
diff --git a/libjava/include/i386-signal.h b/libjava/include/i386-signal.h
index a5c8ae4..a30ceeb 100644
--- a/libjava/include/i386-signal.h
+++ b/libjava/include/i386-signal.h
@@ -1,7 +1,7 @@
// i386-signal.h - Catch runtime signals and turn them into exceptions
// on an i386 based Linux system.
-/* Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2001, 2002, 2006 Free Software Foundation
This file is part of libgcj.
@@ -22,19 +22,7 @@ details. */
#define SIGNAL_HANDLER(_name) \
static void _name (int _dummy __attribute__ ((__unused__)))
-#define MAKE_THROW_FRAME(_exception) \
-do \
-{ \
- void **_p = (void **)&_dummy; \
- volatile struct sigcontext_struct *_regs = (struct sigcontext_struct *)++_p; \
- \
- /* Advance the program counter so that it is after the start of the \
- instruction: the x86 exception handler expects \
- the PC to point to the instruction after a call. */ \
- _regs->eip += 2; \
- \
-} \
-while (0)
+#define MAKE_THROW_FRAME(_exception)
#define HANDLE_DIVIDE_OVERFLOW \
do \
@@ -91,14 +79,6 @@ do \
_regs->eip = (unsigned long)_eip; \
return; \
} \
- else \
- { \
- /* Advance the program counter so that it is after the start \
- of the instruction: this is because the x86 exception \
- handler expects the PC to point to the instruction after a \
- call. */ \
- _regs->eip += 2; \
- } \
} \
} \
while (0)
diff --git a/libjava/include/powerpc-signal.h b/libjava/include/powerpc-signal.h
index 0d5a662..66133e9 100644
--- a/libjava/include/powerpc-signal.h
+++ b/libjava/include/powerpc-signal.h
@@ -1,7 +1,7 @@
// powerpc-signal.h - Catch runtime signals and turn them into exceptions
// on a powerpc based Linux system.
-/* Copyright (C) 2003 Free Software Foundation
+/* Copyright (C) 2003, 2006 Free Software Foundation
This file is part of libgcj.
@@ -22,18 +22,12 @@ details. */
#define SIGNAL_HANDLER(_name) \
static void _name (int /* _signal */, struct sigcontext *_sc)
-/* PPC 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. */
+/* MD_FALBACK_FRAME_STATE_FOR takes care of special casing PC
+ before the faulting instruction, so we don't need to do anything
+ here. */
+
+#define MAKE_THROW_FRAME(_exception)
-#define MAKE_THROW_FRAME(_exception) \
-do \
- { \
- _sc->regs->nip += 4; \
- } \
-while (0)
-
/* For an explanation why we cannot simply use sigaction to
install the handlers, see i386-signal.h. */
diff --git a/libjava/include/x86_64-signal.h b/libjava/include/x86_64-signal.h
index f6df7d7..b4b4c2b 100644
--- a/libjava/include/x86_64-signal.h
+++ b/libjava/include/x86_64-signal.h
@@ -1,7 +1,7 @@
// x86_64-signal.h - Catch runtime signals and turn them into exceptions
// on an x86_64 based GNU/Linux system.
-/* Copyright (C) 2003 Free Software Foundation
+/* Copyright (C) 2003, 2006 Free Software Foundation
This file is part of libgcj.
@@ -34,16 +34,7 @@ extern "C"
};
}
-#define MAKE_THROW_FRAME(_exception) \
-do \
-{ \
- /* Advance the program counter so that it is after the start of the \
- instruction: the x86_64 exception handler expects \
- the PC to point to the instruction after a call. */ \
- struct ucontext *_uc = (struct ucontext *)_p; \
- _uc->uc_mcontext.gregs[REG_RIP] += 2; \
-} \
-while (0)
+#define MAKE_THROW_FRAME(_exception)
#define RESTORE(name, syscall) RESTORE2 (name, syscall)
#define RESTORE2(name, syscall) \