SOURCES: gcc-pr24055.patch (NEW) - fix "could not split insn" with...
pluto
pluto at pld-linux.org
Mon Sep 26 10:48:53 CEST 2005
Author: pluto Date: Mon Sep 26 08:48:53 2005 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- fix "could not split insn" with "-O1 -ffast-math".
---- Files affected:
SOURCES:
gcc-pr24055.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: SOURCES/gcc-pr24055.patch
diff -u /dev/null SOURCES/gcc-pr24055.patch:1.1
--- /dev/null Mon Sep 26 10:48:53 2005
+++ SOURCES/gcc-pr24055.patch Mon Sep 26 10:48:48 2005
@@ -0,0 +1,78 @@
+--- gcc-4.1/gcc/config/i386/i386.md 2005-09-06 10:53:06.000000000 +0200
++++ gcc-4.1/gcc/config/i386/i386.md 2005-09-26 10:42:34.581839750 +0200
+@@ -16475,9 +16475,9 @@
+ DONE;
+ })
+
+-(define_insn_and_split "*fist<mode>2_1"
+- [(set (match_operand:X87MODEI 0 "nonimmediate_operand" "=m,?r")
+- (unspec:X87MODEI [(match_operand:XF 1 "register_operand" "f,f")]
++(define_insn_and_split "*fistdi2_1"
++ [(set (match_operand:DI 0 "nonimmediate_operand" "=m,?r")
++ (unspec:DI [(match_operand:XF 1 "register_operand" "f,f")]
+ UNSPEC_FIST))]
+ "TARGET_USE_FANCY_MATH_387
+ && flag_unsafe_math_optimizations
+@@ -16487,17 +16487,17 @@
+ [(const_int 0)]
+ {
+ if (memory_operand (operands[0], VOIDmode))
+- emit_insn (gen_fist<mode>2 (operands[0], operands[1]));
++ emit_insn (gen_fistdi2 (operands[0], operands[1]));
+ else
+ {
+- operands[2] = assign_386_stack_local (<MODE>mode, SLOT_TEMP);
+- emit_insn (gen_fist<mode>2_with_temp (operands[0], operands[1],
+- operands[2]));
++ operands[2] = assign_386_stack_local (DImode, SLOT_TEMP);
++ emit_insn (gen_fistdi2_with_temp (operands[0], operands[1],
++ operands[2]));
+ }
+ DONE;
+ }
+ [(set_attr "type" "fpspc")
+- (set_attr "mode" "<MODE>")])
++ (set_attr "mode" "DI")])
+
+ (define_insn "fistdi2"
+ [(set (match_operand:DI 0 "memory_operand" "=m")
+@@ -16545,6 +16545,25 @@
+ (clobber (match_dup 3))])]
+ "")
+
++(define_insn_and_split "*fist<mode>2_1"
++ [(set (match_operand:X87MODEI12 0 "register_operand" "=r")
++ (unspec:X87MODEI12 [(match_operand:XF 1 "register_operand" "f")]
++ UNSPEC_FIST))]
++ "TARGET_USE_FANCY_MATH_387
++ && flag_unsafe_math_optimizations
++ && !(reload_completed || reload_in_progress)"
++ "#"
++ "&& 1"
++ [(const_int 0)]
++{
++ operands[2] = assign_386_stack_local (<MODE>mode, SLOT_TEMP);
++ emit_insn (gen_fist<mode>2_with_temp (operands[0], operands[1],
++ operands[2]));
++ DONE;
++}
++ [(set_attr "type" "fpspc")
++ (set_attr "mode" "<MODE>")])
++
+ (define_insn "fist<mode>2"
+ [(set (match_operand:X87MODEI12 0 "memory_operand" "=m")
+ (unspec:X87MODEI12 [(match_operand:XF 1 "register_operand" "f")]
+@@ -16556,10 +16575,10 @@
+ (set_attr "mode" "<MODE>")])
+
+ (define_insn "fist<mode>2_with_temp"
+- [(set (match_operand:X87MODEI12 0 "nonimmediate_operand" "=m,?r")
+- (unspec:X87MODEI12 [(match_operand:XF 1 "register_operand" "f,f")]
++ [(set (match_operand:X87MODEI12 0 "register_operand" "=r")
++ (unspec:X87MODEI12 [(match_operand:XF 1 "register_operand" "f")]
+ UNSPEC_FIST))
+- (clobber (match_operand:X87MODEI12 2 "memory_operand" "=m,m"))]
++ (clobber (match_operand:X87MODEI12 2 "memory_operand" "=m"))]
+ "TARGET_USE_FANCY_MATH_387
+ && flag_unsafe_math_optimizations"
+ "#"
================================================================
More information about the pld-cvs-commit
mailing list