1.1 --- a/patches/gcc/3.3.6/120-gcc-3.3.4-arm-pr22528.patch Mon Jul 28 20:17:48 2008 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,71 +0,0 @@
1.4 -From http://gcc.gnu.org/ml/gcc-patches/2003-11/msg00832.html, by
1.5 -Richard Earnshaw. Fixes http://gcc.gnu.org/PR22528
1.6 -
1.7 ---- gcc-3.3.4/gcc/config/arm/arm.md.orig 2004-03-30 22:43:44.000000000 +0200
1.8 -+++ gcc-3.3.4/gcc/config/arm/arm.md 2005-08-15 12:21:55.000000000 +0200
1.9 -@@ -4275,7 +4275,7 @@
1.10 - (set (match_dup 2)
1.11 - (ashiftrt:SI (match_operand 0 "" "") (const_int 8)))
1.12 - ;; store the high byte
1.13 -- (set (match_dup 4) (subreg:QI (match_dup 2) 0))] ;explicit subreg safe
1.14 -+ (set (match_dup 4) (match_dup 5))]
1.15 - "TARGET_ARM"
1.16 - "
1.17 - {
1.18 -@@ -4291,7 +4291,8 @@
1.19 - operands[1] = adjust_address (operands[1], QImode, 0);
1.20 - operands[3] = gen_lowpart (QImode, operands[0]);
1.21 - operands[0] = gen_lowpart (SImode, operands[0]);
1.22 -- operands[2] = gen_reg_rtx (SImode);
1.23 -+ operands[2] = gen_reg_rtx (SImode);
1.24 -+ operands[5] = gen_lowpart (QImode, operands[2]);
1.25 - }"
1.26 - )
1.27 -
1.28 -@@ -4299,7 +4300,7 @@
1.29 - [(set (match_dup 4) (match_dup 3))
1.30 - (set (match_dup 2)
1.31 - (ashiftrt:SI (match_operand 0 "" "") (const_int 8)))
1.32 -- (set (match_operand 1 "" "") (subreg:QI (match_dup 2) 3))]
1.33 -+ (set (match_operand 1 "" "") (match_dup 5))]
1.34 - "TARGET_ARM"
1.35 - "
1.36 - {
1.37 -@@ -4316,13 +4317,14 @@
1.38 - operands[3] = gen_lowpart (QImode, operands[0]);
1.39 - operands[0] = gen_lowpart (SImode, operands[0]);
1.40 - operands[2] = gen_reg_rtx (SImode);
1.41 -+ operands[5] = gen_lowpart (QImode, operands[2]);
1.42 - }"
1.43 - )
1.44 -
1.45 - ;; Subroutine to store a half word integer constant into memory.
1.46 - (define_expand "storeinthi"
1.47 - [(set (match_operand 0 "" "")
1.48 -- (subreg:QI (match_operand 1 "" "") 0))
1.49 -+ (match_operand 1 "" ""))
1.50 - (set (match_dup 3) (match_dup 2))]
1.51 - "TARGET_ARM"
1.52 - "
1.53 -@@ -4363,6 +4365,7 @@
1.54 - operands[3] = adjust_address (op0, QImode, 1);
1.55 - operands[0] = adjust_address (operands[0], QImode, 0);
1.56 - operands[2] = gen_lowpart (QImode, operands[2]);
1.57 -+ operands[1] = gen_lowpart (QImode, operands[1]);
1.58 - }"
1.59 - )
1.60 -
1.61 -@@ -4682,11 +4685,12 @@
1.62 - (set (match_dup 3)
1.63 - (ashiftrt:SI (match_dup 2) (const_int 16)))
1.64 - (set (match_operand:HI 0 "s_register_operand" "")
1.65 -- (subreg:HI (match_dup 3) 0))]
1.66 -+ (match_dup 4))]
1.67 - "TARGET_ARM"
1.68 - "
1.69 - operands[2] = gen_reg_rtx (SImode);
1.70 - operands[3] = gen_reg_rtx (SImode);
1.71 -+ operands[4] = gen_lowpart (HImode, operands[3]);
1.72 - "
1.73 - )
1.74 -