diff options
author | Steve Ellcey <sje@cup.hp.com> | 2003-10-14 19:25:54 +0000 |
---|---|---|
committer | Steve Ellcey <sje@gcc.gnu.org> | 2003-10-14 19:25:54 +0000 |
commit | c80831866f9fc79c020ed43f735bedb82f35f17f (patch) | |
tree | 13a103580c574e1a6b51dba1e883cc7a33113730 /gcc | |
parent | 553e5ce9e10dcc845a69b198bfc610eec266161c (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.c | 1 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.md | 2 |
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")) |