gcc-4.5: Fix the bswapsi libgcc infinite loop at -Os
authorKhem Raj <raj.khem@gmail.com>
Tue, 22 Jun 2010 15:43:28 +0000 (08:43 -0700)
committerKhem Raj <raj.khem@gmail.com>
Tue, 22 Jun 2010 15:43:28 +0000 (08:43 -0700)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
recipes/gcc/gcc-4.5.inc
recipes/gcc/gcc-4.5/arm-bswapsi2.patch [new file with mode: 0644]

index cb41e7e..181db33 100644 (file)
@@ -8,7 +8,7 @@ DEPENDS = "mpfr gmp libmpc libelf"
 NATIVEDEPS = "mpfr-native gmp-native libmpc-native"
 
 
-INC_PR = "r3"
+INC_PR = "r4"
 
 SRCREV = "160764"
 PV = "4.5"
@@ -29,6 +29,7 @@ SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH} \
           file://cache-amnesia.patch \
           file://gcc-flags-for-build.patch \
           file://libstdc++-emit-__cxa_end_cleanup-in-text.patch \
+          file://arm-bswapsi2.patch \
          "
 
 # Language Overrides
diff --git a/recipes/gcc/gcc-4.5/arm-bswapsi2.patch b/recipes/gcc/gcc-4.5/arm-bswapsi2.patch
new file mode 100644 (file)
index 0000000..7ac61a6
--- /dev/null
@@ -0,0 +1,13 @@
+Index: gcc-4.5/gcc/config/arm/arm.md
+===================================================================
+--- gcc-4.5.orig/gcc/config/arm/arm.md 2010-06-17 09:13:07.000000000 -0700
++++ gcc-4.5/gcc/config/arm/arm.md      2010-06-22 08:08:45.397212002 -0700
+@@ -11267,7 +11267,7 @@
+ (define_expand "bswapsi2"
+   [(set (match_operand:SI 0 "s_register_operand" "=r")
+       (bswap:SI (match_operand:SI 1 "s_register_operand" "r")))]
+-"TARGET_EITHER"
++"TARGET_EITHER && (arm_arch6 && !optimize_size)"
+ "
+   if (!arm_arch6)
+     {