aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Ellcey <sje@cup.hp.com>2003-10-14 19:25:54 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2003-10-14 19:25:54 +0000
commitc80831866f9fc79c020ed43f735bedb82f35f17f (patch)
tree13a103580c574e1a6b51dba1e883cc7a33113730
parent553e5ce9e10dcc845a69b198bfc610eec266161c (diff)
downloadgcc-c80831866f9fc79c020ed43f735bedb82f35f17f.zip
gcc-c80831866f9fc79c020ed43f735bedb82f35f17f.tar.gz
gcc-c80831866f9fc79c020ed43f735bedb82f35f17f.tar.bz2
ia64.c (ia64_expand_call): Force function address to DImode.
* config/ia64/ia64.c (ia64_expand_call): Force function address to DImode. * config/ia64/ia64.md (call_gp): Put DImode on operand 0. From-SVN: r72489
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/ia64/ia64.c1
-rw-r--r--gcc/config/ia64/ia64.md2
3 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b16d5b0..76be7d17 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2003-10-14 Steve Ellcey <sje@cup.hp.com>
+
+ * config/ia64/ia64.c (ia64_expand_call): Force function address
+ to DImode.
+ * config/ia64/ia64.md (call_gp): Put DImode on operand 0.
+
2003-10-14 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.md ("muldf3", "*muldf3", "*muldf3_ibm",
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index b9a4537..1c94533e 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -1500,6 +1500,7 @@ ia64_expand_call (rtx retval, rtx addr, rtx nextarg ATTRIBUTE_UNUSED,
rtx insn, b0;
addr = XEXP (addr, 0);
+ addr = convert_memory_address (DImode, addr);
b0 = gen_rtx_REG (DImode, R_BR (0));
/* ??? Should do this for functions known to bind local too. */
diff --git a/gcc/config/ia64/ia64.md b/gcc/config/ia64/ia64.md
index 9ead086..da7bff4 100644
--- a/gcc/config/ia64/ia64.md
+++ b/gcc/config/ia64/ia64.md
@@ -4731,7 +4731,7 @@
[(set_attr "itanium_class" "br,scall")])
(define_insn "call_gp"
- [(call (mem:DI (match_operand 0 "call_operand" "?r,i"))
+ [(call (mem:DI (match_operand:DI 0 "call_operand" "?r,i"))
(const_int 1))
(clobber (match_operand:DI 1 "register_operand" "=b,b"))
(clobber (match_scratch:DI 2 "=&r,X"))