]> gcc.gnu.org Git - gcc.git/commitdiff
ia64.c (ia64_expand_call): Force function address to DImode.
authorSteve Ellcey <sje@cup.hp.com>
Tue, 14 Oct 2003 19:25:54 +0000 (19:25 +0000)
committerSteve Ellcey <sje@gcc.gnu.org>
Tue, 14 Oct 2003 19:25:54 +0000 (19:25 +0000)
* 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
gcc/config/ia64/ia64.c
gcc/config/ia64/ia64.md

index b16d5b0b4ac9b2c158b89854fbefdfdc14565803..76be7d17012f0f33bfb32cb1b7de9ebb3f3364e6 100644 (file)
@@ -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",
index b9a4537a30141159a49548be3d5ae9b1406e043f..1c94533e047cb1857c245a33f2f2f63bbb65ab2c 100644 (file)
@@ -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.  */
index 9ead0866798475cda87157ffec39cf8b29c93ede..da7bff4afe0d22a1b9d2ef45f0e32458a43ddd23 100644 (file)
   [(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"))
This page took 0.091705 seconds and 5 git commands to generate.