* config/i386/i386.md (movsf_1): Enable pattern for standard
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 30 Nov 2006 06:47:24 +0000 (06:47 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 30 Nov 2006 06:47:24 +0000 (06:47 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119355 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.md

index 9db977e..19e340d 100644 (file)
@@ -1,3 +1,14 @@
+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>
 
        * config/spu/crt0.c (__dso_handle): Define.
 
 2006-11-27  Roger Sayle  <roger@eyesopen.com>
            Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-           
+
        * c-common.c (constant_fits_type_p): Delete.
        (unsigned_conversion_warning): Delete.
        (conversion_warning): Integrate Wconversion warning from
        * doc/invoke.texi: Fixed typo.
 
 2006-11-27  Michael Matz  <matz@suse.de>
-            Andreas Krebbel  <krebbel1@de.ibm.com>
+           Andreas Krebbel  <krebbel1@de.ibm.com>
 
        PR target/29319
        * config/s390/predicates.md (larl_operand): Check addend of larl
        NOTE_FUNCTION_END.
 
 2006-11-27  Richard Guenther  <rguenther@suse.de>
-       Zdenek Dvorak <dvorakz@suse.cz>
+           Zdenek Dvorak <dvorakz@suse.cz>
 
        * target.h (struct gcc_target): Add builtin_vectorized_function
        target hook.
index f237abe..227a1cc 100644 (file)
   "!(MEM_P (operands[0]) && MEM_P (operands[1]))
    && (reload_in_progress || reload_completed
        || (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
        || memory_operand (operands[0], SFmode))"
 {
    && ((optimize_size || !TARGET_INTEGER_DFMODE_MOVES) && !TARGET_64BIT)
    && (reload_in_progress || reload_completed
        || (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
        || memory_operand (operands[0], DFmode))"
 {
    && ((!optimize_size && TARGET_INTEGER_DFMODE_MOVES) || TARGET_64BIT)
    && (reload_in_progress || reload_completed
        || (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
        || memory_operand (operands[0], DFmode))"
 {
   "optimize_size
    && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
    && (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
        || memory_operand (operands[0], XFmode))"
 {
   "!optimize_size
    && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
    && (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
        || memory_operand (operands[0], XFmode))"
 {
 (define_insn "*fop_xf_4_i387"
   [(set (match_operand:XF 0 "register_operand" "=f,f")
        (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")]))]
   "TARGET_80387"
   "* return output_387_binary_op (insn, operands);"
        (match_operator:XF 3 "binary_fp_operator"
          [(match_operand:XF 1 "register_operand" "0,f")
           (float_extend:XF
-           (match_operand 2 "nonimmediate_operand" "fm,0"))]))]
+            (match_operand:X87MODEF12 2 "nonimmediate_operand" "fm,0"))]))]
   "TARGET_80387"
   "* return output_387_binary_op (insn, operands);"
   [(set (attr "type")
   [(set (match_operand:XF 0 "register_operand" "=f,f")
        (match_operator:XF 3 "binary_fp_operator"
          [(float_extend:XF
-           (match_operand 1 "register_operand" "0,f"))
+            (match_operand:X87MODEF12 1 "register_operand" "0,f"))
           (float_extend:XF
-           (match_operand 2 "nonimmediate_operand" "fm,0"))]))]
+            (match_operand:X87MODEF12 2 "nonimmediate_operand" "fm,0"))]))]
   "TARGET_80387"
   "* return output_387_binary_op (insn, operands);"
   [(set (attr "type")