gcc-4.5: Fix asm out of range errors seen on thumb when using -O1
authorKhem Raj <raj.khem@gmail.com>
Thu, 7 Oct 2010 19:45:36 +0000 (12:45 -0700)
committerKhem Raj <raj.khem@gmail.com>
Thu, 7 Oct 2010 19:45:36 +0000 (12:45 -0700)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
recipes/gcc/gcc-4.5.inc
recipes/gcc/gcc-4.5/thumb-asm-out-of-range-pr43961.patch [new file with mode: 0644]

index 36d12ec..0fe53b4 100644 (file)
@@ -8,7 +8,7 @@ DEPENDS = "mpfr gmp libmpc libelf"
 NATIVEDEPS = "mpfr-native gmp-native libmpc-native"
 
 
-INC_PR = "r12"
+INC_PR = "r13"
 
 SRCREV = "164562"
 PV = "4.5"
@@ -119,6 +119,7 @@ SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH} \
           file://linaro/gcc-4.5-linaro-r99398.patch \
           file://gcc-vmovl-PR45805.patch \
           file://gcc-scalar-widening-pr45847.patch \
+          file://thumb-asm-out-of-range-pr43961.patch \
          "
 
 SRC_URI_append_mips64 = " file://mips64-nomultilib.patch"
diff --git a/recipes/gcc/gcc-4.5/thumb-asm-out-of-range-pr43961.patch b/recipes/gcc/gcc-4.5/thumb-asm-out-of-range-pr43961.patch
new file mode 100644 (file)
index 0000000..ec7e823
--- /dev/null
@@ -0,0 +1,21 @@
+gcc/
+
+2010-06-22  Mikael Pettersson  <mikpe@it.uu.se>
+
+       PR target/43961
+       * config/arm/arm.h (ADDR_VEC_ALIGN): Describe added
+       alignment for Thumb-1 compressed switch tables.
+
+--- gcc-4.6-20100619/gcc/config/arm/arm.h.~1~  2010-06-16 20:02:58.000000000 +0200
++++ gcc-4.6-20100619/gcc/config/arm/arm.h      2010-06-22 14:03:52.000000000 +0200
+@@ -2320,7 +2320,8 @@ extern int making_const_table;
+     } while (0)
+ /* Jump table alignment is explicit in ASM_OUTPUT_CASE_LABEL.  */
+-#define ADDR_VEC_ALIGN(JUMPTABLE) 0
++#define ADDR_VEC_ALIGN(JUMPTABLE)     \
++  ((TARGET_THUMB && GET_MODE (PATTERN (JUMPTABLE)) == SImode) ? 2 : 0)
+ /* This is how to output a label which precedes a jumptable.  Since
+    Thumb instructions are 2 bytes, we may need explicit alignment here.  */
+