[alpha] divide patterns vs plt

Richard Henderson rth@redhat.com
Tue Jan 22 15:26:00 GMT 2002


Generate more lituse_jsr relocs.  This time we make the divide
patterns use the plt again.


r~


        * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
        sequence number for the literal.
        (divmoddi_internal_er): Likewise.

Index: alpha.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/alpha/alpha.md,v
retrieving revision 1.175
diff -c -p -d -r1.175 alpha.md
*** alpha.md	2002/01/11 03:47:24	1.175
--- alpha.md	2002/01/22 23:10:58
*************** fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi
*** 1212,1217 ****
--- 1212,1218 ----
    [(parallel [(set (match_dup 0)
  		   (sign_extend:DI (match_dup 3)))
  	      (use (match_dup 0))
+ 	      (use (match_dup 4))
  	      (clobber (reg:DI 23))
  	      (clobber (reg:DI 28))])]
  {
*************** fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi
*** 1233,1239 ****
      default:
        abort ();
      }
!   emit_move_insn (operands[0], gen_rtx_SYMBOL_REF (DImode, str));
  }
    [(set_attr "type" "jsr")
     (set_attr "length" "8")])
--- 1234,1243 ----
      default:
        abort ();
      }
!   operands[4] = GEN_INT (alpha_next_sequence_number++);
!   emit_insn (gen_movdi_er_high_g (operands[0], pic_offset_table_rtx,
! 				  gen_rtx_SYMBOL_REF (DImode, str),
! 				  operands[4]));
  }
    [(set_attr "type" "jsr")
     (set_attr "length" "8")])
*************** fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi
*** 1244,1253 ****
                          [(match_operand:DI 1 "register_operand" "a")
                           (match_operand:DI 2 "register_operand" "b")])))
     (use (match_operand:DI 4 "register_operand" "c"))
     (clobber (reg:DI 23))
     (clobber (reg:DI 28))]
    "TARGET_EXPLICIT_RELOCS && ! TARGET_ABI_OPEN_VMS"
!   "jsr $23,($27),__%E3"
    [(set_attr "type" "jsr")
     (set_attr "length" "4")])
  
--- 1248,1258 ----
                          [(match_operand:DI 1 "register_operand" "a")
                           (match_operand:DI 2 "register_operand" "b")])))
     (use (match_operand:DI 4 "register_operand" "c"))
+    (use (match_operand 5 "const_int_operand" ""))
     (clobber (reg:DI 23))
     (clobber (reg:DI 28))]
    "TARGET_EXPLICIT_RELOCS && ! TARGET_ABI_OPEN_VMS"
!   "jsr $23,($27),__%E3%J5"
    [(set_attr "type" "jsr")
     (set_attr "length" "4")])
  
*************** fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi
*** 1275,1280 ****
--- 1280,1286 ----
    "&& reload_completed"
    [(parallel [(set (match_dup 0) (match_dup 3))
  	      (use (match_dup 0))
+ 	      (use (match_dup 4))
  	      (clobber (reg:DI 23))
  	      (clobber (reg:DI 28))])]
  {
*************** fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi
*** 1296,1302 ****
      default:
        abort ();
      }
!   emit_move_insn (operands[0], gen_rtx_SYMBOL_REF (DImode, str));
  }
    [(set_attr "type" "jsr")
     (set_attr "length" "8")])
--- 1302,1311 ----
      default:
        abort ();
      }
!   operands[4] = GEN_INT (alpha_next_sequence_number++);
!   emit_insn (gen_movdi_er_high_g (operands[0], pic_offset_table_rtx,
! 				  gen_rtx_SYMBOL_REF (DImode, str),
! 				  operands[4]));
  }
    [(set_attr "type" "jsr")
     (set_attr "length" "8")])
*************** fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi
*** 1307,1316 ****
                          [(match_operand:DI 1 "register_operand" "a")
                           (match_operand:DI 2 "register_operand" "b")]))
     (use (match_operand:DI 4 "register_operand" "c"))
     (clobber (reg:DI 23))
     (clobber (reg:DI 28))]
    "TARGET_EXPLICIT_RELOCS && ! TARGET_ABI_OPEN_VMS"
!   "jsr $23,($27),__%E3"
    [(set_attr "type" "jsr")
     (set_attr "length" "4")])
  
--- 1316,1326 ----
                          [(match_operand:DI 1 "register_operand" "a")
                           (match_operand:DI 2 "register_operand" "b")]))
     (use (match_operand:DI 4 "register_operand" "c"))
+    (use (match_operand 5 "const_int_operand" ""))
     (clobber (reg:DI 23))
     (clobber (reg:DI 28))]
    "TARGET_EXPLICIT_RELOCS && ! TARGET_ABI_OPEN_VMS"
!   "jsr $23,($27),__%E3%J5"
    [(set_attr "type" "jsr")
     (set_attr "length" "4")])
  



More information about the Gcc-patches mailing list