summaryrefslogtreecommitdiffstats
path: root/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99489.patch
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99489.patch')
-rw-r--r--toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99489.patch61
1 files changed, 0 insertions, 61 deletions
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99489.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99489.patch
deleted file mode 100644
index 12fb56ad02..0000000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99489.patch
+++ /dev/null
@@ -1,61 +0,0 @@
12011-03-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2
3 LP:730440
4 PR target/47668
5 gcc/
6 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'.
7 gcc/testsuite/
8 * gcc.target/arm/pr47688.c: New.
9
10=== modified file 'gcc/config/arm/arm.md'
11--- old/gcc/config/arm/arm.md 2011-03-01 14:32:39 +0000
12+++ new/gcc/config/arm/arm.md 2011-03-11 14:26:34 +0000
13@@ -11133,13 +11133,15 @@
14 [(set_attr "conds" "clob")]
15 )
16
17+;; We only care about the lower 16 bits of the constant
18+;; being inserted into the upper 16 bits of the register.
19 (define_insn "*arm_movtas_ze"
20 [(set (zero_extract:SI (match_operand:SI 0 "s_register_operand" "+r")
21 (const_int 16)
22 (const_int 16))
23 (match_operand:SI 1 "const_int_operand" ""))]
24 "arm_arch_thumb2"
25- "movt%?\t%0, %c1"
26+ "movt%?\t%0, %L1"
27 [(set_attr "predicable" "yes")
28 (set_attr "length" "4")]
29 )
30
31=== added file 'gcc/testsuite/gcc.target/arm/pr47688.c'
32--- old/gcc/testsuite/gcc.target/arm/pr47688.c 1970-01-01 00:00:00 +0000
33+++ new/gcc/testsuite/gcc.target/arm/pr47688.c 2011-03-11 14:26:34 +0000
34@@ -0,0 +1,26 @@
35+/* { dg-options "-mthumb -O2" } */
36+/* { dg-require-effective-target arm_thumb2_ok } */
37+/* { dg-final { scan-assembler-not "-32768" } } */
38+
39+typedef union
40+{
41+ unsigned long int u_32_value;
42+ struct
43+ {
44+ unsigned short int u_16_value_0;
45+ unsigned short int u_16_value_1;
46+ } u_16_values;
47+} my_union;
48+
49+
50+unsigned long int Test(const unsigned short int wXe)
51+{
52+ my_union dwCalcVal;
53+
54+ dwCalcVal.u_16_values.u_16_value_0=wXe;
55+ dwCalcVal.u_16_values.u_16_value_1=0x8000u;
56+
57+ dwCalcVal.u_32_value /=3;
58+
59+ return (dwCalcVal.u_32_value);
60+}
61