From 439ce31f0e0ca4964b5927ddcaa8f0de7423caa4 Mon Sep 17 00:00:00 2001
From: kkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 16 Mar 2006 02:44:10 +0000
Subject: [PATCH] 	* 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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112122 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog                |  6 ++++++
 gcc/config/sh/linux-unwind.h |  4 +++-
 libjava/ChangeLog            |  5 +++++
 libjava/include/sh-signal.h  | 25 ++-----------------------
 4 files changed, 16 insertions(+), 24 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9908e3a3cddf..0ae317083e84 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 3ba943648d87..de84a7727623 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 f3ff2d68a792..ac204088ae2c 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 25e873117ffe..3a96ce25fb2d 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.  */
-- 
GitLab