aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Stump <mrs@gcc.gnu.org>1996-07-26 18:17:32 +0000
committerMike Stump <mrs@gcc.gnu.org>1996-07-26 18:17:32 +0000
commit9704efe67c2f7348e9664b33761db623c93f9664 (patch)
tree8d8e5ea96872888ab3085c60560c7e2997a1aa9a
parent39950dff997d3a75c807c1339ccf7bb4991e6104 (diff)
downloadgcc-9704efe67c2f7348e9664b33761db623c93f9664.zip
gcc-9704efe67c2f7348e9664b33761db623c93f9664.tar.gz
gcc-9704efe67c2f7348e9664b33761db623c93f9664.tar.bz2
install EH code
From-SVN: r12568
-rw-r--r--gcc/config/rs6000/rs6000.h7
-rw-r--r--gcc/config/sparc/sparc.h4
-rw-r--r--gcc/config/sparc/sparc.md3
-rw-r--r--gcc/config/vax/vax.h4
4 files changed, 15 insertions, 3 deletions
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 5934454..c365e64 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -2310,6 +2310,13 @@ extern int rs6000_trunc_used;
#define READONLY_DATA_SECTION read_only_data_section
+
+/* Define the name of the section to use for the exception tables.
+ TODO: test and see if we can use read_only_data_section, if so,
+ remove this. */
+
+#define EXCEPTION_SECTION data_section
+
/* If we are referencing a function that is static or is known to be
in this file, make the SYMBOL_REF special. We can use this to indicate
that we can branch to this function without emitting a no-op after the
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h
index 01965e3..44cba6a 100644
--- a/gcc/config/sparc/sparc.h
+++ b/gcc/config/sparc/sparc.h
@@ -895,7 +895,7 @@ extern int sparc_mode_class[];
#define FRAME_POINTER_REGNUM 30
#if 0
-/* Register that is used for the return address. */
+/* Register that is used for the return address for the flat model. */
#define RETURN_ADDR_REGNUM 15
#endif
@@ -2168,6 +2168,8 @@ extern struct rtx_def *sparc_builtin_saveregs ();
? gen_rtx (REG, Pmode, 31) \
: gen_rtx (MEM, Pmode, \
memory_address (Pmode, plus_constant (frame, 15 * UNITS_PER_WORD))))
+
+#define DOESNT_NEED_UNWINDER (! TARGET_FLAT)
/* Addressing modes, and classification of registers for them. */
diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md
index f5a612e..b5a6b36 100644
--- a/gcc/config/sparc/sparc.md
+++ b/gcc/config/sparc/sparc.md
@@ -5392,7 +5392,8 @@
[(set_attr "type" "multi")])
(define_insn "return"
- [(return)]
+ [(return)
+ (use (reg:SI 31))]
"! TARGET_EPILOGUE"
"* return output_return (operands);"
[(set_attr "type" "multi")])
diff --git a/gcc/config/vax/vax.h b/gcc/config/vax/vax.h
index a0ec89f..ddd8ac5 100644
--- a/gcc/config/vax/vax.h
+++ b/gcc/config/vax/vax.h
@@ -566,7 +566,9 @@ gen_rtx (PLUS, Pmode, frame, gen_rtx (CONST_INT, VOIDmode, 12))
can ignore COUNT. */
#define RETURN_ADDR_RTX(COUNT, FRAME) \
- gen_rtx (MEM, Pmode, plus_constant (FRAME, RETURN_ADDRESS_OFFSET))
+ ((COUNT == 0) \
+ ? gen_rtx (MEM, Pmode, plus_constant (FRAME, RETURN_ADDRESS_OFFSET)) \
+ : (rtx) 0)
/* Addressing modes, and classification of registers for them. */