Commit 8002331e by Uros Bizjak

i386.md (movsf_1): Enable pattern for standard 80387 constants before reload…

i386.md (movsf_1): Enable pattern for standard 80387 constants before reload when optimizing for size.

	* config/i386/i386.md (movsf_1): Enable pattern for standard
	80387 constants before reload when optimizing for size.
	(*movdf_nointeger, *movdf_integer): Ditto.
	(*movxf_nointeger, *movxf_integer): Disable patterns for standard
	80387 constants before reload when not optimizing for size.

	(*fop_xf_4_i387, *fop_xf_5_i387, *fop_xf_6_i387): Avoid float
	extension of XFmode input operands.

From-SVN: r119355
parent 8fdb5572
2006-11-30 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (movsf_1): Enable pattern for standard
80387 constants before reload when optimizing for size.
(*movdf_nointeger, *movdf_integer): Ditto.
(*movxf_nointeger, *movxf_integer): Disable patterns for standard
80387 constants before reload when not optimizing for size.
(*fop_xf_4_i387, *fop_xf_5_i387, *fop_xf_6_i387): Avoid float
extension of XFmode input operands.
2006-11-29 Andrew Pinski <andrew_pinski@playstation.sony.com> 2006-11-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
* config/spu/crt0.c (__dso_handle): Define. * config/spu/crt0.c (__dso_handle): Define.
......
...@@ -2305,6 +2305,8 @@ ...@@ -2305,6 +2305,8 @@
"!(MEM_P (operands[0]) && MEM_P (operands[1])) "!(MEM_P (operands[0]) && MEM_P (operands[1]))
&& (reload_in_progress || reload_completed && (reload_in_progress || reload_completed
|| (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
|| (!TARGET_SSE_MATH && optimize_size
&& standard_80387_constant_p (operands[1]))
|| GET_CODE (operands[1]) != CONST_DOUBLE || GET_CODE (operands[1]) != CONST_DOUBLE
|| memory_operand (operands[0], SFmode))" || memory_operand (operands[0], SFmode))"
{ {
...@@ -2473,6 +2475,8 @@ ...@@ -2473,6 +2475,8 @@
&& ((optimize_size || !TARGET_INTEGER_DFMODE_MOVES) && !TARGET_64BIT) && ((optimize_size || !TARGET_INTEGER_DFMODE_MOVES) && !TARGET_64BIT)
&& (reload_in_progress || reload_completed && (reload_in_progress || reload_completed
|| (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
|| (!(TARGET_SSE2 && TARGET_SSE_MATH) && optimize_size
&& standard_80387_constant_p (operands[1]))
|| GET_CODE (operands[1]) != CONST_DOUBLE || GET_CODE (operands[1]) != CONST_DOUBLE
|| memory_operand (operands[0], DFmode))" || memory_operand (operands[0], DFmode))"
{ {
...@@ -2593,6 +2597,8 @@ ...@@ -2593,6 +2597,8 @@
&& ((!optimize_size && TARGET_INTEGER_DFMODE_MOVES) || TARGET_64BIT) && ((!optimize_size && TARGET_INTEGER_DFMODE_MOVES) || TARGET_64BIT)
&& (reload_in_progress || reload_completed && (reload_in_progress || reload_completed
|| (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
|| (!(TARGET_SSE2 && TARGET_SSE_MATH) && optimize_size
&& standard_80387_constant_p (operands[1]))
|| GET_CODE (operands[1]) != CONST_DOUBLE || GET_CODE (operands[1]) != CONST_DOUBLE
|| memory_operand (operands[0], DFmode))" || memory_operand (operands[0], DFmode))"
{ {
...@@ -2804,7 +2810,7 @@ ...@@ -2804,7 +2810,7 @@
"optimize_size "optimize_size
&& (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM) && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
&& (reload_in_progress || reload_completed && (reload_in_progress || reload_completed
|| standard_80387_constant_p (operands[1]) || (optimize_size && standard_80387_constant_p (operands[1]))
|| GET_CODE (operands[1]) != CONST_DOUBLE || GET_CODE (operands[1]) != CONST_DOUBLE
|| memory_operand (operands[0], XFmode))" || memory_operand (operands[0], XFmode))"
{ {
...@@ -2839,7 +2845,7 @@ ...@@ -2839,7 +2845,7 @@
"!optimize_size "!optimize_size
&& (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM) && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
&& (reload_in_progress || reload_completed && (reload_in_progress || reload_completed
|| standard_80387_constant_p (operands[1]) || (optimize_size && standard_80387_constant_p (operands[1]))
|| GET_CODE (operands[1]) != CONST_DOUBLE || GET_CODE (operands[1]) != CONST_DOUBLE
|| memory_operand (operands[0], XFmode))" || memory_operand (operands[0], XFmode))"
{ {
...@@ -15480,7 +15486,8 @@ ...@@ -15480,7 +15486,8 @@
(define_insn "*fop_xf_4_i387" (define_insn "*fop_xf_4_i387"
[(set (match_operand:XF 0 "register_operand" "=f,f") [(set (match_operand:XF 0 "register_operand" "=f,f")
(match_operator:XF 3 "binary_fp_operator" (match_operator:XF 3 "binary_fp_operator"
[(float_extend:XF (match_operand 1 "nonimmediate_operand" "fm,0")) [(float_extend:XF
(match_operand:X87MODEF12 1 "nonimmediate_operand" "fm,0"))
(match_operand:XF 2 "register_operand" "0,f")]))] (match_operand:XF 2 "register_operand" "0,f")]))]
"TARGET_80387" "TARGET_80387"
"* return output_387_binary_op (insn, operands);" "* return output_387_binary_op (insn, operands);"
...@@ -15498,7 +15505,7 @@ ...@@ -15498,7 +15505,7 @@
(match_operator:XF 3 "binary_fp_operator" (match_operator:XF 3 "binary_fp_operator"
[(match_operand:XF 1 "register_operand" "0,f") [(match_operand:XF 1 "register_operand" "0,f")
(float_extend:XF (float_extend:XF
(match_operand 2 "nonimmediate_operand" "fm,0"))]))] (match_operand:X87MODEF12 2 "nonimmediate_operand" "fm,0"))]))]
"TARGET_80387" "TARGET_80387"
"* return output_387_binary_op (insn, operands);" "* return output_387_binary_op (insn, operands);"
[(set (attr "type") [(set (attr "type")
...@@ -15514,9 +15521,9 @@ ...@@ -15514,9 +15521,9 @@
[(set (match_operand:XF 0 "register_operand" "=f,f") [(set (match_operand:XF 0 "register_operand" "=f,f")
(match_operator:XF 3 "binary_fp_operator" (match_operator:XF 3 "binary_fp_operator"
[(float_extend:XF [(float_extend:XF
(match_operand 1 "register_operand" "0,f")) (match_operand:X87MODEF12 1 "register_operand" "0,f"))
(float_extend:XF (float_extend:XF
(match_operand 2 "nonimmediate_operand" "fm,0"))]))] (match_operand:X87MODEF12 2 "nonimmediate_operand" "fm,0"))]))]
"TARGET_80387" "TARGET_80387"
"* return output_387_binary_op (insn, operands);" "* return output_387_binary_op (insn, operands);"
[(set (attr "type") [(set (attr "type")
......
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