summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2001-02-18 07:25:25 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2001-02-18 07:25:25 +0000
commitf2ebcf32567fe5431b48758f70d9deda72f4336f (patch)
tree958d43dbdc15413eaad077451de9e6bea1b81c2d
parent47cbd05d29467bf69f6d45fcf29cf8ce54bc469d (diff)
downloadppe42-gcc-f2ebcf32567fe5431b48758f70d9deda72f4336f.tar.gz
ppe42-gcc-f2ebcf32567fe5431b48758f70d9deda72f4336f.zip
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39825 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/pa/pa.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8b52a3d4259..aab26f60784 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 a7a0b9ec002..07c0ad60fbe 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
OpenPOWER on IntegriCloud