gcc: fix incorrect handling of the comparison arguments
PATCH 1/1 gcc: fix incorrect handling of the comparison arguments
This patch fixes compiler error during libbroadvoice build. The comparison arguments where not correctly handled. The fix is done in development tree:
https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/commit/b4035128ba8f8bbbf9527f54f261a87b304ca4c5
and will be a part of the next release of ARC GNU tools. Once that new release happens this patch must be removed.
Fixes:
http://autobuild.buildroot.net/results/bea/beace68a19382b43370c798dcf7d2ef412f9d75e/
--- .../0001-Handle-correctly-compare-arguments.patch | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 package/gcc/arc-2015.06/0001-Handle-correctly-compare-arguments.patch
package/gcc/arc-2015.06/0001-Handle-correctly-compare-arguments.patch new file +71 -0
@@ -0,0 +1,71 @@ +From b4035128ba8f8bbbf9527f54f261a87b304ca4c5 Mon Sep 17 00:00:00 2001 +From: Claudiu Zissulescu <[email protected]> +Date: Mon, 9 Nov 2015 15:23:39 +0100 +Subject: [PATCH] Handle correctly compare arguments + +--- + gcc/config/arc/arc.c | 24 ++++++++++++++++++------ + 1 files changed, 18 insertions(+), 6 deletions(-) + +diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c +index bd53525..caf483b 100644 +--- a/gcc/config/arc/arc.c ++++ b/gcc/config/arc/arc.c +@@ -1998,7 +1998,7 @@ gen_compare_reg (rtx comparison, enum machine_mode omode) + rtx y = XEXP (comparison, 1); + rtx tmp, cc_reg; + enum machine_mode mode, cmode; +- ++ bool swap = false; + + cmode = GET_MODE (x); + if (cmode == VOIDmode) +@@ -2073,6 +2073,7 @@ gen_compare_reg (rtx comparison, enum machine_mode omode) + rtx op0 = gen_rtx_REG (cmode, 0); + rtx op1 = gen_rtx_REG (cmode, GET_MODE_SIZE (cmode) / UNITS_PER_WORD); + ++ swap = false; + switch (code) + { + case NE: case EQ: case GT: case UNLE: case GE: case UNLT: +@@ -2080,22 +2081,33 @@ gen_compare_reg (rtx comparison, enum machine_mode omode) + break; + case LT: case UNGE: case LE: case UNGT: + code = swap_condition (code); +- tmp = x; +- x = y; +- y = tmp; ++ swap = true; + break; + default: + gcc_unreachable (); + } + if (currently_expanding_to_rtl) + { +- emit_move_insn (op0, x); +- emit_move_insn (op1, y); ++ if (swap) ++ { ++ emit_move_insn (op0, y); ++ emit_move_insn (op1, x); ++ } ++ else ++ { ++ emit_move_insn (op0, x); ++ emit_move_insn (op1, y); ++ } + } + else + { + gcc_assert (rtx_equal_p (op0, x)); + gcc_assert (rtx_equal_p (op1, y)); ++ if (swap) ++ { ++ op0 = y; ++ op1 = x; ++ } + } + emit_insn (gen_cmp_float (cc_reg, gen_rtx_COMPARE (mode, op0, op1))); + } +-- +2.5.0
Signature · 1 line
2.5.0
PATCH 1/1 gcc: fix incorrect handling of the comparison arguments
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Lada" == Lada Trimasova <[email protected]> writes:
Hi,
Quoted 7 lines
This patch fixes compiler error during libbroadvoice build. The comparison arguments where not correctly handled. The fix is done in development tree:
https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/commit/b4035128ba8f8bbbf9527f54f261a87b304ca4c5
and will be a part of the next release of ARC GNU tools. Once that new release happens this patch must be removed.
Quoted 8 lines
Fixes:
http://autobuild.buildroot.net/results/bea/beace68a19382b43370c798dcf7d2ef412f9d75e/Signed-off-by Lada Trimasova <[email protected]>Cc Alexey Brodkin <[email protected]>Cc Anton Kolesov <[email protected]>Cc Thomas Petazzoni <[email protected]>Cc Peter Korsgaard <[email protected]>
Alex/Anton, an acked-by would be good. Should this go into the 2015.11 release?
Signature · 2 lines
Venlig hilsen, Peter Korsgaard
PATCH 1/1 gcc: fix incorrect handling of the comparison arguments
Hi Peter,
Quoted 14 lines · Peter Korsgaard
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Lada" == Lada Trimasova <[email protected]> writes:
Hi,
Quoted 9 lines
This patch fixes compiler error during libbroadvoice build. The comparison arguments where not correctly handled. The fix is done in development tree:
https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/commit/b4035128ba8f8bbbf9527f54f261a87b304ca4c5
and will be a part of the next release of ARC GNU tools. Once that new release happens this patch must be removed.Fixes:
http://autobuild.buildroot.net/results/bea/beace68a19382b43370c798dcf7d2ef412f9d75e/
Quoted 8 lines
Quoted 5 lines
Signed-off-by Lada Trimasova <[email protected]>Cc Alexey Brodkin <[email protected]>Cc Anton Kolesov <[email protected]>Cc Thomas Petazzoni <[email protected]>Cc Peter Korsgaard <[email protected]>Alex/Anton, an acked-by would be good. Should this go into the 2015.11 release?
I think it worth applying onto 2015.11 because this is a bugfix but not new feature.
-Alexey
PATCH 1/1 gcc: fix incorrect handling of the comparison arguments
Quoted 9 lines
Quoted 4 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Alexey" == Alexey Brodkin <[email protected]> writes:
Alex/Anton, an acked-by would be good. Should this go into the 2015.11 release?
I think it worth applying onto 2015.11 because this is a bugfix but not new feature.
Acked-by Alexey Brodkin <[email protected]>
Ok - Committed, thanks.
Signature · 2 lines
Venlig hilsen, Peter Korsgaard