gcc-4.5: Fix wrong instruction generation for vmovl pattern
authorKhem Raj <raj.khem@gmail.com>
Tue, 28 Sep 2010 19:15:15 +0000 (12:15 -0700)
committerKhem Raj <raj.khem@gmail.com>
Thu, 30 Sep 2010 20:15:06 +0000 (13:15 -0700)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
recipes/gcc/gcc-4.5.inc
recipes/gcc/gcc-4.5/gcc-vmovl-PR45805.patch [new file with mode: 0644]

index 731ade3..345e8c5 100644 (file)
@@ -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 (file)
index 0000000..e228cb7
--- /dev/null
@@ -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")]
+ )