From: Zhenhua Luo Date: Fri, 16 Mar 2012 17:02:31 +0000 (+0000) Subject: gcc: add gcc.fix_min_max.patch X-Git-Tag: 2.1~534^2~501 X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=75e97cb4b196dda7b3d941a9d38ed73e0d9fd02b;p=meta-freescale.git gcc: add gcc.fix_min_max.patch Signed-off-by: Zhenhua Luo --- diff --git a/meta-fsl-ppc/recipes-devtools/gcc/files/gcc.fix_min_max.patch b/meta-fsl-ppc/recipes-devtools/gcc/files/gcc.fix_min_max.patch new file mode 100644 index 00000000..81167bec --- /dev/null +++ b/meta-fsl-ppc/recipes-devtools/gcc/files/gcc.fix_min_max.patch @@ -0,0 +1,38 @@ +diff -Naur gcc-4.6.2/gcc/config/rs6000/rs6000.c gcc-4.6.2-modified-office2-gs8-ice-fix/gcc/config/rs6000/rs6000.c +--- gcc-4.6.2/gcc/config/rs6000/rs6000.c 2011-09-18 17:01:56.000000000 -0500 ++++ gcc-4.6.2-modified-office2-gs8-ice-fix/gcc/config/rs6000/rs6000.c 2012-01-13 07:07:31.702487887 -0600 +@@ -17727,11 +17727,34 @@ + c = GEU; + + if (code == SMAX || code == UMAX) ++ { + target = emit_conditional_move (dest, c, op0, op1, mode, + op0, op1, mode, 0); ++ if(!target) ++ { ++ rtx tem; ++ tem = simplify_const_relational_operation (c, mode, op0, op1); ++ if(rtx_equal_p(tem,const0_rtx)) ++ target = op1; ++ else if(rtx_equal_p(tem,const1_rtx)) ++ target = op0; ++ } ++ ++ } + else ++ { + target = emit_conditional_move (dest, c, op0, op1, mode, + op1, op0, mode, 0); ++ if(!target) ++ { ++ rtx tem; ++ tem = simplify_const_relational_operation (c, mode, op0, op1); ++ if(rtx_equal_p(tem,const0_rtx)) ++ target = op0; ++ else if(rtx_equal_p(tem,const1_rtx)) ++ target = op1; ++ } ++ } + gcc_assert (target); + if (target != dest) + emit_move_insn (dest, target); diff --git a/meta-fsl-ppc/recipes-devtools/gcc/gcc-fsl.inc b/meta-fsl-ppc/recipes-devtools/gcc/gcc-fsl.inc index 2e5be822..9e7c6155 100644 --- a/meta-fsl-ppc/recipes-devtools/gcc/gcc-fsl.inc +++ b/meta-fsl-ppc/recipes-devtools/gcc/gcc-fsl.inc @@ -38,8 +38,9 @@ SRC_URI_fsl = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH};proto=http \ file://gcc.fix_header_issue.patch \ file://gcc.fix_SSIZE_MAX_undefine_issue.patch \ file://GPLUSPLUS_INCLUDE_DIR_with_sysroot_fsl.patch \ + file://gcc.fix_min_max.patch \ " FILESEXTRAPATHS_prepend := "${THISDIR}/files:" -PR_fsl .= "+${DISTRO}.1" +PR_fsl .= "+${DISTRO}.2"