From c80831866f9fc79c020ed43f735bedb82f35f17f Mon Sep 17 00:00:00 2001 From: Steve Ellcey Date: Tue, 14 Oct 2003 19:25:54 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/config/ia64/ia64.c | 1 + gcc/config/ia64/ia64.md | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) 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 + + * 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 * 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")) -- 2.30.2