diff options
author | sje <sje@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-10-14 19:25:54 +0000 |
---|---|---|
committer | sje <sje@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-10-14 19:25:54 +0000 |
commit | e569ee689ab9b22bb2b0d11063bbb0a79e005f3f (patch) | |
tree | 13a103580c574e1a6b51dba1e883cc7a33113730 /gcc | |
parent | b344394ededc8cbd8178f9ee8784998e84639464 (diff) | |
download | gcc-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/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 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")) |