diff options
author | Mark Loeser <halcy0n@gentoo.org> | 2009-04-26 18:17:59 +0000 |
---|---|---|
committer | Mark Loeser <halcy0n@gentoo.org> | 2009-04-26 18:17:59 +0000 |
commit | 90d424fae3ff814f3ebc1b409a9560cb36c8074b (patch) | |
tree | 21a384267145eb0b8ec449c54b3783821718615f /4.3.2 | |
parent | add fix from upstream for arm softfloat bug PR39501 (diff) | |
download | gcc-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.patch | 81 | ||||
-rw-r--r-- | 4.3.2/gentoo/README.history | 4 |
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 |