aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/gcc
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2010-09-28 12:15:15 -0700
committerKhem Raj <raj.khem@gmail.com>2010-09-30 13:15:06 -0700
commit3880477ea548817d64e826faec0aa6d0607a3264 (patch)
tree2c863738cdf5ae30707b6adb2e23b0147523a53d /recipes/gcc
parent7a92e52370342911a6632a28b5287ca762c00082 (diff)
downloadopenembedded-3880477ea548817d64e826faec0aa6d0607a3264.tar.gz
openembedded-3880477ea548817d64e826faec0aa6d0607a3264.tar.bz2
openembedded-3880477ea548817d64e826faec0aa6d0607a3264.zip
gcc-4.5: Fix wrong instruction generation for vmovl pattern
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'recipes/gcc')
-rw-r--r--recipes/gcc/gcc-4.5.inc1
-rw-r--r--recipes/gcc/gcc-4.5/gcc-vmovl-PR45805.patch27
2 files changed, 28 insertions, 0 deletions
diff --git a/recipes/gcc/gcc-4.5.inc b/recipes/gcc/gcc-4.5.inc
index 731ade341a..345e8c5514 100644
--- a/recipes/gcc/gcc-4.5.inc
+++ b/recipes/gcc/gcc-4.5.inc
@@ -117,6 +117,7 @@ SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH} \
file://linaro/gcc-4.5-linaro-r99396.patch \
file://linaro/gcc-4.5-linaro-r99397.patch \
file://linaro/gcc-4.5-linaro-r99398.patch \
+ file://gcc-vmovl-PR45805.patch \
"
SRC_URI_append_mips64 = " file://mips64-nomultilib.patch"
diff --git a/recipes/gcc/gcc-4.5/gcc-vmovl-PR45805.patch b/recipes/gcc/gcc-4.5/gcc-vmovl-PR45805.patch
new file mode 100644
index 0000000000..e228cb754c
--- /dev/null
+++ b/recipes/gcc/gcc-4.5/gcc-vmovl-PR45805.patch
@@ -0,0 +1,27 @@
+Source: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45805
+
+Index: gcc-4.5/gcc/config/arm/neon.md
+===================================================================
+--- gcc-4.5.orig/gcc/config/arm/neon.md 2010-09-28 12:04:38.000000000 -0700
++++ gcc-4.5/gcc/config/arm/neon.md 2010-09-28 12:07:28.026227000 -0700
+@@ -5682,9 +5682,9 @@
+ ;; Vectorize for non-neon-quad case
+ (define_insn "neon_unpack<US>_<mode>"
+ [(set (match_operand:<V_widen> 0 "register_operand" "=w")
+- (SE:<V_widen> (match_operand:VDI 1 "register_operand" "")))]
++ (SE:<V_widen> (match_operand:VDI 1 "register_operand" "w")))]
+ "TARGET_NEON"
+- "vmovl.<US><V_sz_elem> %q0, %1"
++ "vmovl.<US><V_sz_elem> %q0, %P1"
+ [(set_attr "neon_type" "neon_shift_1")]
+ )
+
+@@ -5721,7 +5721,7 @@
+ (SE:<V_widen>
+ (match_operand:VDI 2 "register_operand" "w"))))]
+ "TARGET_NEON"
+- "vmull.<US><V_sz_elem> %q0, %1, %2"
++ "vmull.<US><V_sz_elem> %q0, %P1, %P2"
+ [(set_attr "neon_type" "neon_shift_1")]
+ )
+