(movsi): In TOC symbol case, use "la" for PowerPC.
authorRichard Kenner <kenner@gcc.gnu.org>
Thu, 10 Nov 1994 20:41:50 +0000 (15:41 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Thu, 10 Nov 1994 20:41:50 +0000 (15:41 -0500)
(movdi): Handle TOC symbol just like movsi.

From-SVN: r8408

gcc/config/rs6000/rs6000.md

index 3a1b6f6b6d035e78c483208b3137291705b86c46..a11f75678a99cfe5f6e3ff8f01b131b44b842015 100644 (file)
    {st%U0%X0|stw%U0%X0} %1,%0
    {lil|li} %0,%1
    {liu|lis} %0,%u1
-   cal %0,%1(%*)
+   {cal|la} %0,%1(%*)
    mf%1 %0
    mt%0 %1
    mt%0 %1
    (set_attr "length" "8,8,8,*,*,*")])
 
 (define_insn ""
-  [(set (match_operand:DI 0 "nonimmediate_operand" "=r,r,m,r,r,f,f,m,r,*h")
-       (match_operand:DI 1 "input_operand" "r,m,r,I,J,f,m,f,*h,r"))]
+  [(set (match_operand:DI 0 "nonimmediate_operand" "=r,r,m,r,r,r,f,f,m,r,*h")
+       (match_operand:DI 1 "input_operand" "r,m,r,I,J,R,f,m,f,*h,r"))]
   "TARGET_POWERPC64 && (gpc_reg_operand (operands[0], DImode)
    || gpc_reg_operand (operands[1], DImode))"
   "@
    sd%U0%X0 %1,%0
    li %0,%1
    lis %0,%u1
+   {cal|la} %0,%1(%*)
    fmr %0,%1
    lfd%U1%X1 %0,%1
    stfd%U0%X0 %1,%0
    mf%1 %0
    mt%0 %1"
-  [(set_attr "type" "*,load,*,*,*,fp,fpload,*,*,mtjmpr")])
+  [(set_attr "type" "*,load,*,*,*,*,fp,fpload,*,*,mtjmpr")])
 \f
 ;; TImode is similar, except that we usually want to compute the address into
 ;; a register and use lsi/stsi (the exception is during reload).  MQ is also