diff options
-rw-r--r-- | 4.9/0028-fix-bug-176.patch | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/4.9/0028-fix-bug-176.patch b/4.9/0028-fix-bug-176.patch new file mode 100644 index 0000000..b4e3581 --- /dev/null +++ b/4.9/0028-fix-bug-176.patch @@ -0,0 +1,24 @@ +--- gcc-4_9-branch/gcc/config/arm/neon.md 2014/07/17 05:51:44 212714 ++++ gcc-4_9-branch/gcc/config/arm/neon.md 2014/08/10 22:59:19 213800 +@@ -1041,7 +1041,9 @@ + } + else + { +- if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) == 1) ++ if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) == 1 ++ && (!reg_overlap_mentioned_p (operands[0], operands[1]) ++ || REGNO (operands[0]) == REGNO (operands[1]))) + /* This clobbers CC. */ + emit_insn (gen_arm_ashldi3_1bit (operands[0], operands[1])); + else +@@ -1141,7 +1143,9 @@ + } + else + { +- if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) == 1) ++ if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) == 1 ++ && (!reg_overlap_mentioned_p (operands[0], operands[1]) ++ || REGNO (operands[0]) == REGNO (operands[1]))) + /* This clobbers CC. */ + emit_insn (gen_arm_<shift>di3_1bit (operands[0], operands[1])); + else |