This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: 3.3.4-prerelease fails to build on alphaev6-dec-osf5.1
Richard Henderson <rth@redhat.com> writes:
| On Sun, May 23, 2004 at 10:48:16PM -0600, Roger Sayle wrote:
| > Almost prophetically Eric's comment #22 on bugzilla PR 11864 reads
| > "Beware, however, that other 64-bit ports might be affected by the
| > same problem." It's getting late, so I haven't yet checked if there's
| > a CANNOT_CHANGE_MODE_CLASS patch for alpha on mainline, which might
| > resolve this failure if backported.
|
| I suspect this patch would fix the problem:
|
| 2004-01-19 Richard Henderson <rth@redhat.com>
I did not find a specifc message of yours posted to gcc-patches
regarding this patch. So, I went to
http://gcc.gnu.org/ml/gcc-cvs/2004-01/msg00822.html
which is the patch you applied to gcc-3_4-branch. The reconstructed
patch against alpha.md did not cleanly apply. Here is the list of
hunks that failed:
Hunk #5 FAILED at 2293.
Hunk #6 FAILED at 2316.
Hunk #7 FAILED at 2368.
Hunk #8 FAILED at 2392.
and the corresponding alpha.md.rej is appendend below. I'm not
familiar with this part of the compiler
Thanks,
-- Gaby
@@ -2320,14 +2293,16 @@
(match_operator:DI 4 "fix_operator"
[(match_operand:DF 1 "reg_or_0_operand" "fG")]) 0))
(clobber (match_scratch:DI 2 "=&f"))
- (clobber (match_scratch:SI 3 "=&f"))]
+ (clobber (match_scratch:SF 3 "=&f"))]
"TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
"#"
"&& reload_completed"
[(set (match_dup 2) (match_op_dup 4 [(match_dup 1)]))
- (set (match_dup 3) (unspec:SI [(match_dup 2)] UNSPEC_CVTQL))
- (set (match_dup 0) (match_dup 3))]
- ""
+ (set (match_dup 3) (unspec:SF [(match_dup 2)] UNSPEC_CVTQL))
+ (set (match_dup 5) (match_dup 3))]
+{
+ operands[5] = adjust_address (operands[0], SFmode, 0);
+}
[(set_attr "type" "fadd")
(set_attr "trap" "yes")])
@@ -2341,10 +2316,12 @@
"#"
"&& reload_completed"
[(set (match_dup 2) (match_op_dup 3 [(match_dup 1)]))
- (set (match_dup 4) (unspec:SI [(match_dup 2)] UNSPEC_CVTQL))
- (set (match_dup 0) (match_dup 4))]
- ;; Due to REG_CANNOT_CHANGE_SIZE issues, we cannot simply use SUBREG.
- "operands[4] = gen_rtx_REG (SImode, REGNO (operands[2]));"
+ (set (match_dup 4) (unspec:SF [(match_dup 2)] UNSPEC_CVTQL))
+ (set (match_dup 5) (match_dup 4))]
+{
+ operands[4] = gen_rtx_REG (SFmode, REGNO (operands[2]));
+ operands[5] = adjust_address (operands[0], SFmode, 0);
+}
[(set_attr "type" "fadd")
(set_attr "trap" "yes")])
@@ -2391,14 +2368,16 @@
[(float_extend:DF
(match_operand:SF 1 "reg_or_0_operand" "fG"))]) 0))
(clobber (match_scratch:DI 2 "=&f"))
- (clobber (match_scratch:SI 3 "=&f"))]
+ (clobber (match_scratch:SF 3 "=&f"))]
"TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
"#"
"&& reload_completed"
[(set (match_dup 2) (match_op_dup 4 [(float_extend:DF (match_dup 1))]))
- (set (match_dup 3) (unspec:SI [(match_dup 2)] UNSPEC_CVTQL))
- (set (match_dup 0) (match_dup 3))]
- ""
+ (set (match_dup 3) (unspec:SF [(match_dup 2)] UNSPEC_CVTQL))
+ (set (match_dup 4) (match_dup 3))]
+{
+ operands[4] = adjust_address (operands[0], SFmode, 0);
+}
[(set_attr "type" "fadd")
(set_attr "trap" "yes")])
@@ -2413,10 +2392,12 @@
"#"
"&& reload_completed"
[(set (match_dup 2) (match_op_dup 3 [(float_extend:DF (match_dup 1))]))
- (set (match_dup 4) (unspec:SI [(match_dup 2)] UNSPEC_CVTQL))
- (set (match_dup 0) (match_dup 4))]
- ;; Due to REG_CANNOT_CHANGE_SIZE issues, we cannot simply use SUBREG.
- "operands[4] = gen_rtx_REG (SImode, REGNO (operands[2]));"
+ (set (match_dup 4) (unspec:SF [(match_dup 2)] UNSPEC_CVTQL))
+ (set (match_dup 5) (match_dup 4))]
+{
+ operands[4] = gen_rtx_REG (SFmode, REGNO (operands[2]));
+ operands[5] = adjust_address (operands[0], SFmode, 0);
+}
[(set_attr "type" "fadd")
(set_attr "trap" "yes")])