From 401cec230683dd086b9102645941bc190eb0a514 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Tue, 8 Jun 1993 11:51:25 -0700 Subject: [PATCH] (call_operand, call_operand_address): Accept any address not just REG rtx. From-SVN: r4651 --- gcc/config/sparc/sparc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index e8f831c08a9..5ecaa65ba7e 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 -- 2.30.2