diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1995-04-28 10:38:02 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1995-04-28 10:38:02 -0400 |
commit | 7ac18cf65b8a345802235e788c1e7cd1297a7e27 (patch) | |
tree | 18c546b854f90b29d2e7b33c48bdcfa5f4d6c763 /gcc | |
parent | c8e9adecbb12197ab8758bccf11e078ae51f2a1a (diff) | |
download | gcc-7ac18cf65b8a345802235e788c1e7cd1297a7e27.zip gcc-7ac18cf65b8a345802235e788c1e7cd1297a7e27.tar.gz gcc-7ac18cf65b8a345802235e788c1e7cd1297a7e27.tar.bz2 |
(mov[sd]i and splits): Change call to alpha_emit_set_const.
From-SVN: r9533
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/alpha/alpha.md | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md index 350d32b..4f46a13 100644 --- a/gcc/config/alpha/alpha.md +++ b/gcc/config/alpha/alpha.md @@ -3071,10 +3071,10 @@ ; else if (GET_CODE (operands[1]) == CONST_INT) { - if (alpha_emit_set_const (operands[0], INTVAL (operands[1]), 3)) + operands[1] + = alpha_emit_set_const (operands[0], SImode, INTVAL (operands[1]), 3); + if (rtx_equal_p (operands[0], operands[1])) DONE; - else - abort (); } }") @@ -3088,7 +3088,10 @@ [(set (match_dup 0) (match_dup 2)) (set (match_dup 0) (plus:SI (match_dup 0) (match_dup 3)))] " -{ if (alpha_emit_set_const (operands[0], INTVAL (operands[1]), 2)) +{ rtx tem + = alpha_emit_set_const (operands[0], SImode, INTVAL (operands[1]), 2); + + if (tem == operands[0]) DONE; else FAIL; @@ -3123,6 +3126,8 @@ "" " { + rtx tem; + if (GET_CODE (operands[0]) == MEM && ! reg_or_0_operand (operands[1], DImode)) operands[1] = force_reg (DImode, operands[1]); @@ -3130,8 +3135,14 @@ if (! CONSTANT_P (operands[1]) || input_operand (operands[1], DImode)) ; else if (GET_CODE (operands[1]) == CONST_INT - && alpha_emit_set_const (operands[0], INTVAL (operands[1]), 3)) - DONE; + && (tem = alpha_emit_set_const (operands[0], DImode, + INTVAL (operands[1]), 3)) != 0) + { + if (rtx_equal_p (tem, operands[0])) + DONE; + else + operands[1] = tem; + } else if (CONSTANT_P (operands[1])) { operands[1] = force_const_mem (DImode, operands[1]); @@ -3157,7 +3168,10 @@ [(set (match_dup 0) (match_dup 2)) (set (match_dup 0) (plus:DI (match_dup 0) (match_dup 3)))] " -{ if (alpha_emit_set_const (operands[0], INTVAL (operands[1]), 2)) +{ rtx tem + = alpha_emit_set_const (operands[0], DImode, INTVAL (operands[1]), 2); + + if (tem == operands[0]) DONE; else FAIL; |