diff options
author | Alan Modra <alan@linuxcare.com.au> | 2001-02-18 07:25:25 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2001-02-18 00:25:25 -0700 |
commit | 4096479e2edd3cc908b5d97caedfa8de4f3b4853 (patch) | |
tree | 958d43dbdc15413eaad077451de9e6bea1b81c2d /gcc | |
parent | 68626d4f0ec86b2d7941be9d99c1a8b9ac8cb440 (diff) | |
download | gcc-4096479e2edd3cc908b5d97caedfa8de4f3b4853.zip gcc-4096479e2edd3cc908b5d97caedfa8de4f3b4853.tar.gz gcc-4096479e2edd3cc908b5d97caedfa8de4f3b4853.tar.bz2 |
pa.c (pa_adjust_insn_length): Check that block move pattern is a set before looking at operands.
2001-02-18 Alan Modra <alan@linuxcare.com.au>
* config/pa/pa.c (pa_adjust_insn_length): Check that block move
pattern is a set before looking at operands.
From-SVN: r39825
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/pa/pa.c | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8b52a3d..aab26f6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-02-18 Alan Modra <alan@linuxcare.com.au> + + * pa.c (pa_adjust_insn_length): Check that block move + pattern is a set before looking at operands. + 2001-02-17 Mark Mitchell <mark@codesourcery.com> * fold-const.c (fold_binary_op_with_conditional_arg): New diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index a7a0b9e..07c0ad6 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -382,8 +382,9 @@ move_operand (op, mode) if (GET_CODE (op) == LO_SUM && GET_CODE (XEXP (op, 0)) == REG && REG_OK_FOR_BASE_P (XEXP (op, 0)) - && GET_CODE (XEXP (op, 1)) == UNSPEC) - return 0; + && GET_CODE (XEXP (op, 1)) == UNSPEC + && GET_MODE (op) == Pmode) + return 1; /* Since move_operand is only used for source operands, we can always allow scaled indexing! */ @@ -3816,6 +3817,7 @@ pa_adjust_insn_length (insn, length) /* Block move pattern. */ else if (GET_CODE (insn) == INSN && GET_CODE (pat) == PARALLEL + && GET_CODE (XVECEXP (pat, 0, 0)) == SET && GET_CODE (XEXP (XVECEXP (pat, 0, 0), 0)) == MEM && GET_CODE (XEXP (XVECEXP (pat, 0, 0), 1)) == MEM && GET_MODE (XEXP (XVECEXP (pat, 0, 0), 0)) == BLKmode |