summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorsje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>2003-10-14 19:25:54 +0000
committersje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>2003-10-14 19:25:54 +0000
commite569ee689ab9b22bb2b0d11063bbb0a79e005f3f (patch)
tree13a103580c574e1a6b51dba1e883cc7a33113730 /gcc
parentb344394ededc8cbd8178f9ee8784998e84639464 (diff)
downloadgcc-e569ee689ab9b22bb2b0d11063bbb0a79e005f3f.tar.gz
* config/ia64/ia64.c (ia64_expand_call): Force function address
to DImode. * config/ia64/ia64.md (call_gp): Put DImode on operand 0. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72489 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-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 b16d5b0b4ac..76be7d17012 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 b9a4537a301..1c94533e047 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 9ead0866798..da7bff4afe0 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"))