diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index 59344544e1f..c365e64df6f 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 01965e36066..44cba6a8b24 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 f5a612ebdd5..b5a6b36174b 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 a0ec89f0e6b..ddd8ac5f6fc 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. */