aboutsummaryrefslogtreecommitdiff
path: root/4.3.2
diff options
context:
space:
mode:
authorMark Loeser <halcy0n@gentoo.org>2009-04-26 18:17:59 +0000
committerMark Loeser <halcy0n@gentoo.org>2009-04-26 18:17:59 +0000
commit90d424fae3ff814f3ebc1b409a9560cb36c8074b (patch)
tree21a384267145eb0b8ec449c54b3783821718615f /4.3.2
parentadd fix from upstream for arm softfloat bug PR39501 (diff)
downloadgcc-patches-90d424fae3ff814f3ebc1b409a9560cb36c8074b.tar.gz
gcc-patches-90d424fae3ff814f3ebc1b409a9560cb36c8074b.tar.bz2
gcc-patches-90d424fae3ff814f3ebc1b409a9560cb36c8074b.zip
Releasing patchset with fixes for arm; bug #265367 and bug #261111
Diffstat (limited to '4.3.2')
-rw-r--r--4.3.2/gentoo/78_all_arm-PR37436.patch81
-rw-r--r--4.3.2/gentoo/README.history4
2 files changed, 85 insertions, 0 deletions
diff --git a/4.3.2/gentoo/78_all_arm-PR37436.patch b/4.3.2/gentoo/78_all_arm-PR37436.patch
new file mode 100644
index 0000000..67cc50b
--- /dev/null
+++ b/4.3.2/gentoo/78_all_arm-PR37436.patch
@@ -0,0 +1,81 @@
+Backport from gcc-4.4 to fix bug #265367
+
+http://gcc.gnu.org/PR37436
+
+Index: gcc/config/arm/arm.c
+===================================================================
+--- gcc/config/arm/arm.c (revision 142777)
++++ gcc/config/arm/arm.c (revision 142778)
+@@ -3844,6 +3844,7 @@
+ rtx xop1 = XEXP (x, 1);
+
+ return ((arm_address_register_rtx_p (xop0, strict_p)
++ && GET_CODE(xop1) == CONST_INT
+ && arm_legitimate_index_p (mode, xop1, outer, strict_p))
+ || (arm_address_register_rtx_p (xop1, strict_p)
+ && arm_legitimate_index_p (mode, xop0, outer, strict_p)));
+Index: gcc/config/arm/predicates.md
+===================================================================
+--- gcc/config/arm/predicates.md (revision 142777)
++++ gcc/config/arm/predicates.md (revision 142778)
+@@ -234,6 +234,10 @@
+ (match_test "arm_legitimate_address_p (mode, XEXP (op, 0), SIGN_EXTEND,
+ 0)")))
+
++(define_special_predicate "arm_reg_or_extendqisi_mem_op"
++ (ior (match_operand 0 "arm_extendqisi_mem_op")
++ (match_operand 0 "s_register_operand")))
++
+ (define_predicate "power_of_two_operand"
+ (match_code "const_int")
+ {
+Index: gcc/config/arm/arm.md
+===================================================================
+--- gcc/config/arm/arm.md (revision 142777)
++++ gcc/config/arm/arm.md (revision 142778)
+@@ -4299,7 +4299,7 @@
+
+ (define_expand "extendqihi2"
+ [(set (match_dup 2)
+- (ashift:SI (match_operand:QI 1 "general_operand" "")
++ (ashift:SI (match_operand:QI 1 "arm_reg_or_extendqisi_mem_op" "")
+ (const_int 24)))
+ (set (match_operand:HI 0 "s_register_operand" "")
+ (ashiftrt:SI (match_dup 2)
+@@ -4324,7 +4324,7 @@
+
+ (define_insn "*arm_extendqihi_insn"
+ [(set (match_operand:HI 0 "s_register_operand" "=r")
+- (sign_extend:HI (match_operand:QI 1 "memory_operand" "Uq")))]
++ (sign_extend:HI (match_operand:QI 1 "arm_extendqisi_mem_op" "Uq")))]
+ "TARGET_ARM && arm_arch4"
+ "ldr%(sb%)\\t%0, %1"
+ [(set_attr "type" "load_byte")
+@@ -4335,7 +4335,7 @@
+
+ (define_expand "extendqisi2"
+ [(set (match_dup 2)
+- (ashift:SI (match_operand:QI 1 "general_operand" "")
++ (ashift:SI (match_operand:QI 1 "arm_reg_or_extendqisi_mem_op" "")
+ (const_int 24)))
+ (set (match_operand:SI 0 "s_register_operand" "")
+ (ashiftrt:SI (match_dup 2)
+@@ -4367,7 +4367,7 @@
+
+ (define_insn "*arm_extendqisi"
+ [(set (match_operand:SI 0 "s_register_operand" "=r")
+- (sign_extend:SI (match_operand:QI 1 "memory_operand" "Uq")))]
++ (sign_extend:SI (match_operand:QI 1 "arm_extendqisi_mem_op" "Uq")))]
+ "TARGET_ARM && arm_arch4 && !arm_arch6"
+ "ldr%(sb%)\\t%0, %1"
+ [(set_attr "type" "load_byte")
+@@ -4378,7 +4378,8 @@
+
+ (define_insn "*arm_extendqisi_v6"
+ [(set (match_operand:SI 0 "s_register_operand" "=r,r")
+- (sign_extend:SI (match_operand:QI 1 "nonimmediate_operand" "r,Uq")))]
++ (sign_extend:SI
++ (match_operand:QI 1 "arm_reg_or_extendqisi_mem_op" "r,Uq")))]
+ "TARGET_ARM && arm_arch6"
+ "@
+ sxtb%?\\t%0, %1
diff --git a/4.3.2/gentoo/README.history b/4.3.2/gentoo/README.history
index 8264c13..bd54801 100644
--- a/4.3.2/gentoo/README.history
+++ b/4.3.2/gentoo/README.history
@@ -1,3 +1,7 @@
+1.7 26.04.2009
+ + 67_all_gcc43-pr35964.patch
+ + 78_all_arm-PR37436.patch
+
1.6 27.01.2008
+ 46_all_armel-hilo-union-class.patch
+ 47_all_arm-unbreak-armv4t.patch