diff options
author | Richard Henderson <rth@redhat.com> | 2004-08-26 03:02:22 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2004-08-26 03:02:22 -0700 |
commit | 294c96a6338d8e65e5b83e1d3d17ec3c240b6e3b (patch) | |
tree | 70eecae0811773fa936e2b3124d299abdae7a123 | |
parent | 746650b59eaae70de2a6e4daadeabbb40dec2f55 (diff) | |
download | gcc-294c96a6338d8e65e5b83e1d3d17ec3c240b6e3b.tar.gz |
re PR target/16974 (could not split insn (ice in final_scan_insn, final.c))
PR target/16974
* config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
if the constant satisfies add_operand.
From-SVN: r86612
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/alpha/alpha.md | 11 |
2 files changed, 13 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2f76c2f5cda..24825c36138 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2004-08-25 Richard Henderson <rth@redhat.com> + PR target/16974 + * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting + if the constant satisfies add_operand. + +2004-08-25 Richard Henderson <rth@redhat.com> + PR debug/10695 * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New. (alpha_expand_prologue): Handle >32-bit frames. Generate proper diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md index 998e30055ae..d2b41fb0e53 100644 --- a/gcc/config/alpha/alpha.md +++ b/gcc/config/alpha/alpha.md @@ -438,9 +438,9 @@ ;; and if we split before reload, we will require additional instructions. (define_insn "*adddi_fp_hack" - [(set (match_operand:DI 0 "register_operand" "=r") - (plus:DI (match_operand:DI 1 "reg_no_subreg_operand" "r") - (match_operand:DI 2 "const_int_operand" "n")))] + [(set (match_operand:DI 0 "register_operand" "=r,r,r") + (plus:DI (match_operand:DI 1 "reg_no_subreg_operand" "r,r,r") + (match_operand:DI 2 "const_int_operand" "K,L,n")))] "NONSTRICT_REG_OK_FP_BASE_P (operands[1]) && INTVAL (operands[2]) >= 0 /* This is the largest constant an lda+ldah pair can add, minus @@ -454,7 +454,10 @@ + max_reg_num () * UNITS_PER_WORD + current_function_pretend_args_size) - current_function_pretend_args_size))" - "#") + "@ + lda %0,%2(%1) + ldah %0,%h2(%1) + #") ;; Don't do this if we are adjusting SP since we don't want to do it ;; in two steps. Don't split FP sources for the reason listed above. |