Patch for alpha -mno-fp-regs

Michael Meissner meissner@cygnus.com
Thu Mar 23 18:07:00 GMT 2000


On Wed, Mar 22, 2000 at 02:57:05PM -0800, Richard Henderson wrote:
> On Tue, Mar 21, 2000 at 01:55:17PM -0500, Michael Meissner wrote:
> > In generating the patch, I discovered that the recent TF support
> > also didn't check for whether you could use the FP registers...
> 
> Which would be correct, since the TFmode support doesn't
> use the FP registers.  Please back this out.

Done.  Here is the patch.

2000-03-23  Michael Meissner  <meissner@redhat.com>

	* config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
	change adding TARGET_FP to the TF floating point insns, except for
	trunctfsf2, which generates direct calls to truncdfsf2.

*** config/alpha/alpha.md.~1~	Thu Mar 23 19:40:41 2000
--- config/alpha/alpha.md	Thu Mar 23 19:43:36 2000
***************
*** 2093,2099 ****
  (define_expand "fix_trunctfdi2"
    [(use (match_operand:DI 0 "register_operand" ""))
     (use (match_operand:TF 1 "general_operand" ""))]
!   "TARGET_FP && TARGET_HAS_XFLOATING_LIBS"
    "alpha_emit_xfloating_cvt (FIX, operands); DONE;")
  
  (define_insn ""
--- 2093,2099 ----
  (define_expand "fix_trunctfdi2"
    [(use (match_operand:DI 0 "register_operand" ""))
     (use (match_operand:TF 1 "general_operand" ""))]
!   "TARGET_HAS_XFLOATING_LIBS"
    "alpha_emit_xfloating_cvt (FIX, operands); DONE;")
  
  (define_insn ""
***************
*** 2131,2137 ****
  (define_expand "floatditf2"
    [(use (match_operand:TF 0 "register_operand" ""))
     (use (match_operand:DI 1 "general_operand" ""))]
!   "TARGET_FP && TARGET_HAS_XFLOATING_LIBS"
    "alpha_emit_xfloating_cvt (FLOAT, operands); DONE;")
  
  (define_expand "floatunsdisf2"
--- 2131,2137 ----
  (define_expand "floatditf2"
    [(use (match_operand:TF 0 "register_operand" ""))
     (use (match_operand:DI 1 "general_operand" ""))]
!   "TARGET_HAS_XFLOATING_LIBS"
    "alpha_emit_xfloating_cvt (FLOAT, operands); DONE;")
  
  (define_expand "floatunsdisf2"
***************
*** 2149,2155 ****
  (define_expand "floatunsditf2"
    [(use (match_operand:TF 0 "register_operand" ""))
     (use (match_operand:DI 1 "general_operand" ""))]
!   "TARGET_FP && TARGET_HAS_XFLOATING_LIBS"
    "alpha_emit_xfloating_cvt (UNSIGNED_FLOAT, operands); DONE;")
  
  (define_expand "extendsfdf2"
--- 2149,2155 ----
  (define_expand "floatunsditf2"
    [(use (match_operand:TF 0 "register_operand" ""))
     (use (match_operand:DI 1 "general_operand" ""))]
!   "TARGET_HAS_XFLOATING_LIBS"
    "alpha_emit_xfloating_cvt (UNSIGNED_FLOAT, operands); DONE;")
  
  (define_expand "extendsfdf2"
***************
*** 2183,2189 ****
  (define_expand "extendsftf2"
    [(use (match_operand:TF 0 "register_operand" ""))
     (use (match_operand:SF 1 "general_operand" ""))]
!   "TARGET_FP && TARGET_HAS_XFLOATING_LIBS"
    "
  {
    rtx tmp = gen_reg_rtx (DFmode);
--- 2183,2189 ----
  (define_expand "extendsftf2"
    [(use (match_operand:TF 0 "register_operand" ""))
     (use (match_operand:SF 1 "general_operand" ""))]
!   "TARGET_HAS_XFLOATING_LIBS"
    "
  {
    rtx tmp = gen_reg_rtx (DFmode);
***************
*** 2195,2201 ****
  (define_expand "extenddftf2"
    [(use (match_operand:TF 0 "register_operand" ""))
     (use (match_operand:DF 1 "general_operand" ""))]
!   "TARGET_FP && TARGET_HAS_XFLOATING_LIBS"
    "alpha_emit_xfloating_cvt (FLOAT_EXTEND, operands); DONE;")
  
  (define_insn ""
--- 2195,2201 ----
  (define_expand "extenddftf2"
    [(use (match_operand:TF 0 "register_operand" ""))
     (use (match_operand:DF 1 "general_operand" ""))]
!   "TARGET_HAS_XFLOATING_LIBS"
    "alpha_emit_xfloating_cvt (FLOAT_EXTEND, operands); DONE;")
  
  (define_insn ""
***************
*** 2217,2223 ****
  (define_expand "trunctfdf2"
    [(use (match_operand:DF 0 "register_operand" ""))
     (use (match_operand:TF 1 "general_operand" ""))]
!   "TARGET_FP && TARGET_HAS_XFLOATING_LIBS"
    "alpha_emit_xfloating_cvt (FLOAT_TRUNCATE, operands); DONE;")
  
  (define_expand "trunctfsf2"
--- 2217,2223 ----
  (define_expand "trunctfdf2"
    [(use (match_operand:DF 0 "register_operand" ""))
     (use (match_operand:TF 1 "general_operand" ""))]
!   "TARGET_HAS_XFLOATING_LIBS"
    "alpha_emit_xfloating_cvt (FLOAT_TRUNCATE, operands); DONE;")
  
  (define_expand "trunctfsf2"
***************
*** 2317,2323 ****
    [(use (match_operand 0 "register_operand" ""))
     (use (match_operand 1 "general_operand" ""))
     (use (match_operand 2 "general_operand" ""))]
!   "TARGET_FP && TARGET_HAS_XFLOATING_LIBS"
    "alpha_emit_xfloating_arith (DIV, operands); DONE;")
  
  (define_insn ""
--- 2317,2323 ----
    [(use (match_operand 0 "register_operand" ""))
     (use (match_operand 1 "general_operand" ""))
     (use (match_operand 2 "general_operand" ""))]
!   "TARGET_HAS_XFLOATING_LIBS"
    "alpha_emit_xfloating_arith (DIV, operands); DONE;")
  
  (define_insn ""
***************
*** 2381,2387 ****
    [(use (match_operand 0 "register_operand" ""))
     (use (match_operand 1 "general_operand" ""))
     (use (match_operand 2 "general_operand" ""))]
!   "TARGET_FP && TARGET_HAS_XFLOATING_LIBS"
    "alpha_emit_xfloating_arith (MULT, operands); DONE;")
  
  (define_insn ""
--- 2381,2387 ----
    [(use (match_operand 0 "register_operand" ""))
     (use (match_operand 1 "general_operand" ""))
     (use (match_operand 2 "general_operand" ""))]
!   "TARGET_HAS_XFLOATING_LIBS"
    "alpha_emit_xfloating_arith (MULT, operands); DONE;")
  
  (define_insn ""
***************
*** 2455,2461 ****
    [(use (match_operand 0 "register_operand" ""))
     (use (match_operand 1 "general_operand" ""))
     (use (match_operand 2 "general_operand" ""))]
!   "TARGET_FP && TARGET_HAS_XFLOATING_LIBS"
    "alpha_emit_xfloating_arith (MINUS, operands); DONE;")
  
  (define_insn ""
--- 2455,2461 ----
    [(use (match_operand 0 "register_operand" ""))
     (use (match_operand 1 "general_operand" ""))
     (use (match_operand 2 "general_operand" ""))]
!   "TARGET_HAS_XFLOATING_LIBS"
    "alpha_emit_xfloating_arith (MINUS, operands); DONE;")
  
  (define_insn ""
***************
*** 3172,3178 ****
  (define_expand "cmptf"
    [(set (cc0) (compare (match_operand:TF 0 "general_operand" "")
  		       (match_operand:TF 1 "general_operand" "")))]
!   "TARGET_FP && TARGET_HAS_XFLOATING_LIBS"
    "
  {
    alpha_compare.op0 = operands[0];
--- 3172,3178 ----
  (define_expand "cmptf"
    [(set (cc0) (compare (match_operand:TF 0 "general_operand" "")
  		       (match_operand:TF 1 "general_operand" "")))]
!   "TARGET_HAS_XFLOATING_LIBS"
    "
  {
    alpha_compare.op0 = operands[0];

-- 
Michael Meissner, Cygnus Solutions, a Red Hat company.
PMB 198, 174 Littleton Road #3, Westford, Massachusetts 01886, USA
Work:	  meissner@redhat.com		phone: +1 978-486-9304
Non-work: meissner@spectacle-pond.org	fax:   +1 978-692-4482


More information about the Gcc-patches mailing list