summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/pa/pa.c3
-rw-r--r--gcc/config/pa/pa.md4
3 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 21e8547a104..8b1acbf3a80 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+Tue Nov 23 11:15:04 1999 Jeffrey A Law (law@cygnus.com)
+
+ * pa.md (call_internal_symref, call_value_internal_symref): No mode
+ needed on the address operand.
+ * pa.c (call_operand_address): Check for the correct mode.
+
1999-11-23 Bernd Schmidt <bernds@cygnus.co.uk>
* loop.c: Include "basic-block.h".
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 2145ef7961e..529015c1b05 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -205,7 +205,8 @@ call_operand_address (op, mode)
rtx op;
enum machine_mode mode ATTRIBUTE_UNUSED;
{
- return (CONSTANT_P (op) && ! TARGET_PORTABLE_RUNTIME);
+ return (GET_MODE (op) == word_mode
+ && CONSTANT_P (op) && ! TARGET_PORTABLE_RUNTIME);
}
/* Return 1 if X contains a symbolic expression. We know these
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index e9e2673a7bc..a837a715948 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -4771,7 +4771,7 @@
}")
(define_insn "call_internal_symref"
- [(call (mem:SI (match_operand:SI 0 "call_operand_address" ""))
+ [(call (mem:SI (match_operand 0 "call_operand_address" ""))
(match_operand 1 "" "i"))
(clobber (reg:SI 2))
(use (const_int 0))]
@@ -4920,7 +4920,7 @@
(define_insn "call_value_internal_symref"
[(set (match_operand 0 "" "=rf")
- (call (mem:SI (match_operand:SI 1 "call_operand_address" ""))
+ (call (mem:SI (match_operand 1 "call_operand_address" ""))
(match_operand 2 "" "i")))
(clobber (reg:SI 2))
(use (const_int 0))]
OpenPOWER on IntegriCloud