aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTom Wood <wood@gnu.org>1993-03-23 12:46:53 +0000
committerTom Wood <wood@gnu.org>1993-03-23 12:46:53 +0000
commit92ea370bfd463eceb6eadfb033f4328f78bfaa66 (patch)
tree0e1e61369ea30ee76461eb220c39c8010f31bdc0 /gcc
parentcdece1efd184a99037324ebc23f5294b9a2e8168 (diff)
downloadgcc-92ea370bfd463eceb6eadfb033f4328f78bfaa66.zip
gcc-92ea370bfd463eceb6eadfb033f4328f78bfaa66.tar.gz
gcc-92ea370bfd463eceb6eadfb033f4328f78bfaa66.tar.bz2
(INCOMING_REGNO, OUTGOING_REGNO): Define.
From-SVN: r3835
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/sparc/sparc.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h
index 3771a3d..b017400 100644
--- a/gcc/config/sparc/sparc.h
+++ b/gcc/config/sparc/sparc.h
@@ -709,6 +709,22 @@ extern char leaf_reg_backmap[];
#define BASE_PASSING_ARG_REG(MODE) (8)
#define BASE_INCOMING_ARG_REG(MODE) (TARGET_FRW ? 8 : 24)
+/* Define this macro if the target machine has "register windows". This
+ C expression returns the register number as seen by the called function
+ corresponding to register number OUT as seen by the calling function.
+ Return OUT if register number OUT is not an outbound register. */
+
+#define INCOMING_REGNO(OUT) \
+ ((TARGET_FRW || (OUT) < 8 || (OUT) > 15) ? (OUT) : (OUT) + 16)
+
+/* Define this macro if the target machine has "register windows". This
+ C expression returns the register number as seen by the calling function
+ corresponding to register number IN as seen by the called function.
+ Return IN if register number IN is not an inbound register. */
+
+#define OUTGOING_REGNO(IN) \
+ ((TARGET_FRW || (IN) < 24 || (IN) > 31) ? (IN) : (IN) - 16)
+
/* Define how to find the value returned by a function.
VALTYPE is the data type of the value (as a tree).
If the precise function being called is known, FUNC is its FUNCTION_DECL;