From 75e97cb4b196dda7b3d941a9d38ed73e0d9fd02b Mon Sep 17 00:00:00 2001 From: Zhenhua Luo Date: Fri, 16 Mar 2012 17:02:31 +0000 Subject: [PATCH] gcc: add gcc.fix_min_max.patch Signed-off-by: Zhenhua Luo --- .../gcc/files/gcc.fix_min_max.patch | 38 +++++++++++++++++++ meta-fsl-ppc/recipes-devtools/gcc/gcc-fsl.inc | 3 +- 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 meta-fsl-ppc/recipes-devtools/gcc/files/gcc.fix_min_max.patch 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" -- 2.40.1