aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony Green <green@gcc.gnu.org>2010-11-21 03:49:21 +0000
committerAnthony Green <green@gcc.gnu.org>2010-11-21 03:49:21 +0000
commit8812e4d5dd6f5ff0cac16c22bfe41986d92cb959 (patch)
tree8f2987194d0cb64c65d09ede9ba10efe18d56713
parent52ae149de0588e84b71b4fcc3ec35a7af1644d3f (diff)
downloadgcc-8812e4d5dd6f5ff0cac16c22bfe41986d92cb959.zip
gcc-8812e4d5dd6f5ff0cac16c22bfe41986d92cb959.tar.gz
gcc-8812e4d5dd6f5ff0cac16c22bfe41986d92cb959.tar.bz2
moxie EH fixes
From-SVN: r166997
-rw-r--r--gcc/config/moxie/moxie.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/config/moxie/moxie.h b/gcc/config/moxie/moxie.h
index 6f64a7b..c3b3454 100644
--- a/gcc/config/moxie/moxie.h
+++ b/gcc/config/moxie/moxie.h
@@ -285,6 +285,21 @@ enum reg_class
pointer registers are already assumed to be used as needed. */
#define EPILOGUE_USES(R) (R == MOXIE_R5)
+/* A C expression whose value is RTL representing the location of the
+ incoming return address at the beginning of any function, before
+ the prologue. */
+#define INCOMING_RETURN_ADDR_RTX \
+ gen_frame_mem (Pmode, \
+ plus_constant (stack_pointer_rtx, UNITS_PER_WORD))
+
+/* Describe how we implement __builtin_eh_return. */
+#define EH_RETURN_DATA_REGNO(N) ((N) < 4 ? (N+2) : INVALID_REGNUM)
+
+/* Store the return handler into the call frame. */
+#define EH_RETURN_HANDLER_RTX \
+ gen_frame_mem (Pmode, \
+ plus_constant (frame_pointer_rtx, UNITS_PER_WORD))
+
/* Storage Layout */
#define BITS_BIG_ENDIAN 0