diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1993-06-08 11:51:25 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1993-06-08 11:51:25 -0700 |
commit | 401cec230683dd086b9102645941bc190eb0a514 (patch) | |
tree | 3a75ccc8f207a7e847aae7f88fa4ef456b2b6d62 /gcc | |
parent | 6ffeae97834991f74aa4fbf352f6dd8402e7951e (diff) | |
download | gcc-401cec230683dd086b9102645941bc190eb0a514.zip gcc-401cec230683dd086b9102645941bc190eb0a514.tar.gz gcc-401cec230683dd086b9102645941bc190eb0a514.tar.bz2 |
(call_operand, call_operand_address): Accept any address not just REG rtx.
From-SVN: r4651
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/sparc/sparc.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index e8f831c..5ecaa65b 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -113,7 +113,8 @@ restore_operand (op, mode) && (REGNO (op) < 8 || (REGNO (op) >= 24 && REGNO (op) < 32))); } -/* PC-relative call insn on SPARC is independent of `memory_operand'. */ +/* Call insn on SPARC can take a PC-relative constant address, or any regular + memory address. */ int call_operand (op, mode) @@ -123,7 +124,7 @@ call_operand (op, mode) if (GET_CODE (op) != MEM) abort (); op = XEXP (op, 0); - return (REG_P (op) || CONSTANT_P (op)); + return (CONSTANT_P (op) || memory_address_p (Pmode, op)); } int @@ -131,7 +132,7 @@ call_operand_address (op, mode) rtx op; enum machine_mode mode; { - return (REG_P (op) || CONSTANT_P (op)); + return (CONSTANT_P (op) || memory_address_p (Pmode, op)); } /* Returns 1 if OP is either a symbol reference or a sum of a symbol |