summaryrefslogtreecommitdiffstats
path: root/gcc/expmed.c
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-05 11:10:43 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-05 11:10:43 +0000
commitde2dd2b0d4cb7f770df5840804e1ee304b6546f4 (patch)
tree7772b963c58a18a40588c6a82caf04b916db9551 /gcc/expmed.c
parent301d4551399c22150701923f9664d1b19b96e703 (diff)
downloadppe42-gcc-de2dd2b0d4cb7f770df5840804e1ee304b6546f4.tar.gz
ppe42-gcc-de2dd2b0d4cb7f770df5840804e1ee304b6546f4.zip
* expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
wide volatile memory by parts. * gcc.c-torture/compile/20020304-2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50314 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expmed.c')
-rw-r--r--gcc/expmed.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/expmed.c b/gcc/expmed.c
index 6f9a939ed01..6d58ea9957e 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -4278,7 +4278,8 @@ emit_store_flag (target, code, op0, op1, mode, unsignedp, normalizep)
the comparison into one involving a single word. */
if (GET_MODE_BITSIZE (mode) == BITS_PER_WORD * 2
&& GET_MODE_CLASS (mode) == MODE_INT
- && op1 == const0_rtx)
+ && op1 == const0_rtx
+ && (GET_CODE (op0) != MEM || ! MEM_VOLATILE_P (op0)))
{
if (code == EQ || code == NE)
{
OpenPOWER on IntegriCloud