gcc: add ARM codegen fix from PR 65932
[openwrt.git] / toolchain / gcc / patches / 5.2.0 / 030-fix-arm-codegen-PR-65932.patch
diff --git a/toolchain/gcc/patches/5.2.0/030-fix-arm-codegen-PR-65932.patch b/toolchain/gcc/patches/5.2.0/030-fix-arm-codegen-PR-65932.patch
new file mode 100644 (file)
index 0000000..7f0b43c
--- /dev/null
@@ -0,0 +1,21 @@
+Fix from https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65932
+
+--- a/gcc/config/arm/arm.h
++++ b/gcc/config/arm/arm.h
+@@ -628,16 +628,10 @@ extern int arm_arch_crc;
+    type, but kept valid in the wider mode.  The signedness of the
+    extension may differ from that of the type.  */
+-/* It is far faster to zero extend chars than to sign extend them */
+-
+ #define PROMOTE_MODE(MODE, UNSIGNEDP, TYPE)   \
+   if (GET_MODE_CLASS (MODE) == MODE_INT               \
+       && GET_MODE_SIZE (MODE) < 4)            \
+     {                                         \
+-      if (MODE == QImode)                     \
+-      UNSIGNEDP = 1;                          \
+-      else if (MODE == HImode)                        \
+-      UNSIGNEDP = 1;                          \
+       (MODE) = SImode;                                \
+     }