summaryrefslogtreecommitdiffstats
path: root/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99455.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99455.patch')
-rw-r--r--recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99455.patch65
1 files changed, 65 insertions, 0 deletions
diff --git a/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99455.patch b/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99455.patch
new file mode 100644
index 0000000000..5e8383a7d9
--- /dev/null
+++ b/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99455.patch
@@ -0,0 +1,65 @@
12010-12-21 Chung-Lin Tang <cltang@codesourcery.com>
2
3 Issue #10201
4
5 Backport from mainline:
6
7 2010-12-16 Chung-Lin Tang <cltang@codesourcery.com>
8
9 PR target/46883
10 gcc/
11 * config/arm/arm.md
12 (zero_extendhisi2 for register input splitter): Change
13 "register_operand" to "s_register_operand".
14 (zero_extendqisi2 for register input splitter): Same.
15
16 gcc/testsuite/
17 * gcc.target/arm/pr46883.c: New testcase.
18
19=== modified file 'gcc/config/arm/arm.md'
20--- old/gcc/config/arm/arm.md 2011-01-05 11:42:19 +0000
21+++ new/gcc/config/arm/arm.md 2011-01-05 11:52:16 +0000
22@@ -4114,8 +4114,8 @@
23 })
24
25 (define_split
26- [(set (match_operand:SI 0 "register_operand" "")
27- (zero_extend:SI (match_operand:HI 1 "register_operand" "")))]
28+ [(set (match_operand:SI 0 "s_register_operand" "")
29+ (zero_extend:SI (match_operand:HI 1 "s_register_operand" "")))]
30 "!TARGET_THUMB2 && !arm_arch6"
31 [(set (match_dup 0) (ashift:SI (match_dup 2) (const_int 16)))
32 (set (match_dup 0) (lshiftrt:SI (match_dup 0) (const_int 16)))]
33@@ -4234,8 +4234,8 @@
34 })
35
36 (define_split
37- [(set (match_operand:SI 0 "register_operand" "")
38- (zero_extend:SI (match_operand:QI 1 "register_operand" "")))]
39+ [(set (match_operand:SI 0 "s_register_operand" "")
40+ (zero_extend:SI (match_operand:QI 1 "s_register_operand" "")))]
41 "!arm_arch6"
42 [(set (match_dup 0) (ashift:SI (match_dup 2) (const_int 24)))
43 (set (match_dup 0) (lshiftrt:SI (match_dup 0) (const_int 24)))]
44
45=== added file 'gcc/testsuite/gcc.target/arm/pr46883.c'
46--- old/gcc/testsuite/gcc.target/arm/pr46883.c 1970-01-01 00:00:00 +0000
47+++ new/gcc/testsuite/gcc.target/arm/pr46883.c 2011-01-05 11:52:16 +0000
48@@ -0,0 +1,16 @@
49+/* { dg-do compile } */
50+/* { dg-options "-O1 -march=armv5te" } */
51+
52+void bar (unsigned char *q, unsigned short *data16s, int len)
53+{
54+ int i;
55+
56+ for (i = 0; i < len; i++)
57+ {
58+ q[2 * i] =
59+ (((data16s[i] & 0xFF) << 8) | ((data16s[i] >> 8) & 0xFF)) & 0xFF;
60+ q[2 * i + 1] =
61+ ((unsigned short)
62+ (((data16s[i] & 0xFF) << 8) | ((data16s[i] >> 8) & 0xFF))) >> 8;
63+ }
64+}
65