Commit f369bbb1 by Andrew Pinski Committed by Andrew Pinski

rs6000.md (floatsidf2): Rewrite PowerPC64 case to use gen_floatdidf2 directly.

2008-09-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to 
        use gen_floatdidf2 directly.
        (floatunssidf2): Likewise.
        (floatsidf_ppc64_mfpgpr): Remove.
        (floatsidf_ppc64): Remove.
        (floatunssidf_ppc64): Remove.

From-SVN: r140381
parent 402b8cf6
2008-09-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
* config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
use gen_floatdidf2 directly.
(floatunssidf2): Likewise.
(floatsidf_ppc64_mfpgpr): Remove.
(floatsidf_ppc64): Remove.
(floatunssidf_ppc64): Remove.
2008-09-15 Jakub Jelinek <jakub@redhat.com> 2008-09-15 Jakub Jelinek <jakub@redhat.com>
* ira-color.c (finish_cost_update): Free update_cost_queue_elems * ira-color.c (finish_cost_update): Free update_cost_queue_elems
......
...@@ -5828,18 +5828,10 @@ ...@@ -5828,18 +5828,10 @@
emit_insn (gen_spe_floatsidf2 (operands[0], operands[1])); emit_insn (gen_spe_floatsidf2 (operands[0], operands[1]));
DONE; DONE;
} }
if (TARGET_POWERPC64 && TARGET_MFPGPR && TARGET_HARD_FLOAT && TARGET_FPRS)
{
rtx t1 = gen_reg_rtx (DImode);
emit_insn (gen_floatsidf_ppc64_mfpgpr (operands[0], operands[1], t1));
DONE;
}
if (TARGET_POWERPC64) if (TARGET_POWERPC64)
{ {
rtx mem = assign_stack_temp (DImode, GET_MODE_SIZE (DImode), 0); rtx x = convert_to_mode (DImode, operands[1], 0);
rtx t1 = gen_reg_rtx (DImode); emit_insn (gen_floatdidf2 (operands[0], x));
rtx t2 = gen_reg_rtx (DImode);
emit_insn (gen_floatsidf_ppc64 (operands[0], operands[1], mem, t1, t2));
DONE; DONE;
} }
...@@ -5907,11 +5899,8 @@ ...@@ -5907,11 +5899,8 @@
} }
if (TARGET_POWERPC64) if (TARGET_POWERPC64)
{ {
rtx mem = assign_stack_temp (DImode, GET_MODE_SIZE (DImode), 0); rtx x = convert_to_mode (DImode, operands[1], 1);
rtx t1 = gen_reg_rtx (DImode); emit_insn (gen_floatdidf2 (operands[0], x));
rtx t2 = gen_reg_rtx (DImode);
emit_insn (gen_floatunssidf_ppc64 (operands[0], operands[1], mem,
t1, t2));
DONE; DONE;
} }
...@@ -6132,47 +6121,6 @@ ...@@ -6132,47 +6121,6 @@
"fcfid %0,%1" "fcfid %0,%1"
[(set_attr "type" "fp")]) [(set_attr "type" "fp")])
(define_insn_and_split "floatsidf_ppc64_mfpgpr"
[(set (match_operand:DF 0 "gpc_reg_operand" "=f")
(float:DF (match_operand:SI 1 "gpc_reg_operand" "r")))
(clobber (match_operand:DI 2 "gpc_reg_operand" "=r"))]
"TARGET_POWERPC64 && TARGET_MFPGPR && TARGET_HARD_FLOAT && TARGET_FPRS"
"#"
"&& 1"
[(set (match_dup 2) (sign_extend:DI (match_dup 1)))
(set (match_dup 0) (float:DF (match_dup 2)))]
"")
(define_insn_and_split "floatsidf_ppc64"
[(set (match_operand:DF 0 "gpc_reg_operand" "=f")
(float:DF (match_operand:SI 1 "gpc_reg_operand" "r")))
(clobber (match_operand:DI 2 "offsettable_mem_operand" "=o"))
(clobber (match_operand:DI 3 "gpc_reg_operand" "=r"))
(clobber (match_operand:DI 4 "gpc_reg_operand" "=f"))]
"TARGET_POWERPC64 && !TARGET_MFPGPR && TARGET_HARD_FLOAT && TARGET_FPRS"
"#"
"&& 1"
[(set (match_dup 3) (sign_extend:DI (match_dup 1)))
(set (match_dup 2) (match_dup 3))
(set (match_dup 4) (match_dup 2))
(set (match_dup 0) (float:DF (match_dup 4)))]
"")
(define_insn_and_split "floatunssidf_ppc64"
[(set (match_operand:DF 0 "gpc_reg_operand" "=f")
(unsigned_float:DF (match_operand:SI 1 "gpc_reg_operand" "r")))
(clobber (match_operand:DI 2 "offsettable_mem_operand" "=o"))
(clobber (match_operand:DI 3 "gpc_reg_operand" "=r"))
(clobber (match_operand:DI 4 "gpc_reg_operand" "=f"))]
"TARGET_POWERPC64 && TARGET_HARD_FLOAT && TARGET_FPRS"
"#"
"&& 1"
[(set (match_dup 3) (zero_extend:DI (match_dup 1)))
(set (match_dup 2) (match_dup 3))
(set (match_dup 4) (match_dup 2))
(set (match_dup 0) (float:DF (match_dup 4)))]
"")
(define_insn "fix_truncdfdi2" (define_insn "fix_truncdfdi2"
[(set (match_operand:DI 0 "gpc_reg_operand" "=!f#r") [(set (match_operand:DI 0 "gpc_reg_operand" "=!f#r")
(fix:DI (match_operand:DF 1 "gpc_reg_operand" "f")))] (fix:DI (match_operand:DF 1 "gpc_reg_operand" "f")))]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment