diff options
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0266-config-i386-i386.md-movxf_internal-Disable-CONST_DOU.patch')
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0266-config-i386-i386.md-movxf_internal-Disable-CONST_DOU.patch | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0266-config-i386-i386.md-movxf_internal-Disable-CONST_DOU.patch b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0266-config-i386-i386.md-movxf_internal-Disable-CONST_DOU.patch new file mode 100644 index 0000000000..0318cf413e --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0266-config-i386-i386.md-movxf_internal-Disable-CONST_DOU.patch @@ -0,0 +1,127 @@ +From da3b2b8ec5f3057e53934d825ff46f5f20be7362 Mon Sep 17 00:00:00 2001 +From: uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> +Date: Mon, 16 May 2011 20:29:20 +0000 +Subject: [PATCH] * config/i386/i386.md (*movxf_internal): Disable CONST_DOUBLE + optimization for CM_MEDIUM and CM_LARGE code models. Fix usage + of standard_80387_constant_p. + (*movxf_internal_nointeger): Ditto. + (*movdf_internal): Remove dead code-size optimization. + (*movdf_internal_rex64): Fix usage of standard_80387_constant_p. + (*movdf_internal_nointeger): Ditto. + (*movsf_internal): Ditto. + (floating point move splitters): Ditto. + * config/i386/constraints.md (G): Ditto. + * config/i386/i386.c (ix86_preferred_reload_class): Ditto. + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@173803 138bc75d-0d04-0410-961f-82ee72b054a4 + +index 89722bb..4bc3ed6 100644 +--- a/gcc/config/i386/constraints.md ++++ b/gcc/config/i386/constraints.md +@@ -149,7 +149,7 @@ + (define_constraint "G" + "Standard 80387 floating point constant." + (and (match_code "const_double") +- (match_test "standard_80387_constant_p (op)"))) ++ (match_test "standard_80387_constant_p (op) > 0"))) + + ;; This can theoretically be any mode's CONST0_RTX. + (define_constraint "C" +diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c +index e8210c5..e8b9af5 100644 +--- a/gcc/config/i386/i386.c ++++ b/gcc/config/i386/i386.c +@@ -28252,7 +28252,7 @@ ix86_preferred_reload_class (rtx x, reg_class_t regclass) + zero above. We only want to wind up preferring 80387 registers if + we plan on doing computation with them. */ + if (TARGET_80387 +- && standard_80387_constant_p (x)) ++ && standard_80387_constant_p (x) > 0) + { + /* Limit class to non-sse. */ + if (regclass == FLOAT_SSE_REGS) +diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md +index 9db8a74..3bfa0b3 100644 +--- a/gcc/config/i386/i386.md ++++ b/gcc/config/i386/i386.md +@@ -2836,6 +2836,7 @@ + "optimize_function_for_speed_p (cfun) + && !(MEM_P (operands[0]) && MEM_P (operands[1])) + && (reload_in_progress || reload_completed ++ || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) + || GET_CODE (operands[1]) != CONST_DOUBLE + || memory_operand (operands[0], XFmode))" + { +@@ -2865,7 +2866,8 @@ + "optimize_function_for_size_p (cfun) + && !(MEM_P (operands[0]) && MEM_P (operands[1])) + && (reload_in_progress || reload_completed +- || standard_80387_constant_p (operands[1]) ++ || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) ++ || standard_80387_constant_p (operands[1]) > 0 + || GET_CODE (operands[1]) != CONST_DOUBLE + || memory_operand (operands[0], XFmode))" + { +@@ -2911,7 +2913,7 @@ + || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) + || (!(TARGET_SSE2 && TARGET_SSE_MATH) + && optimize_function_for_size_p (cfun) +- && standard_80387_constant_p (operands[1])) ++ && standard_80387_constant_p (operands[1]) > 0) + || GET_CODE (operands[1]) != CONST_DOUBLE + || memory_operand (operands[0], DFmode))" + { +@@ -3078,9 +3080,6 @@ + && TARGET_INTEGER_DFMODE_MOVES + && (reload_in_progress || reload_completed + || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) +- || (!(TARGET_SSE2 && TARGET_SSE_MATH) +- && optimize_function_for_size_p (cfun) +- && standard_80387_constant_p (operands[1])) + || GET_CODE (operands[1]) != CONST_DOUBLE + || memory_operand (operands[0], DFmode))" + { +@@ -3249,11 +3248,10 @@ + || (!(TARGET_SSE2 && TARGET_SSE_MATH) + && optimize_function_for_size_p (cfun) + && !memory_operand (operands[0], DFmode) +- && standard_80387_constant_p (operands[1])) ++ && standard_80387_constant_p (operands[1]) > 0) + || GET_CODE (operands[1]) != CONST_DOUBLE + || ((optimize_function_for_size_p (cfun) +- || !TARGET_MEMORY_MISMATCH_STALL +- || reload_in_progress || reload_completed) ++ || !TARGET_MEMORY_MISMATCH_STALL) + && memory_operand (operands[0], DFmode)))" + { + switch (which_alternative) +@@ -3427,7 +3425,7 @@ + && (reload_in_progress || reload_completed + || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) + || (!TARGET_SSE_MATH && optimize_function_for_size_p (cfun) +- && standard_80387_constant_p (operands[1])) ++ && standard_80387_constant_p (operands[1]) > 0) + || GET_CODE (operands[1]) != CONST_DOUBLE + || memory_operand (operands[0], SFmode))" + { +@@ -3540,7 +3538,7 @@ + } + else if (FP_REG_P (r)) + { +- if (!standard_80387_constant_p (c)) ++ if (standard_80387_constant_p (c) < 1) + FAIL; + } + else if (MMX_REG_P (r)) +@@ -3572,7 +3570,7 @@ + } + else if (FP_REG_P (r)) + { +- if (!standard_80387_constant_p (c)) ++ if (standard_80387_constant_p (c) < 1) + FAIL; + } + else if (MMX_REG_P (r)) +-- +1.7.0.4 + |