summaryrefslogtreecommitdiff
path: root/gcc/recog.c
diff options
context:
space:
mode:
authoraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>2000-07-23 17:17:37 +0000
committeraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>2000-07-23 17:17:37 +0000
commita1824e2fe8841516286cd20d8b749ebdf68479cb (patch)
tree7f739c578525de33f6befba2b5036ac64875f77d /gcc/recog.c
parentbf6a742f4f717434ee922b64a5de6e0e4f50ec4e (diff)
downloadgcc-a1824e2fe8841516286cd20d8b749ebdf68479cb.tar.gz
unuglyfying code
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35206 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/recog.c')
-rw-r--r--gcc/recog.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/recog.c b/gcc/recog.c
index 3b7dab35ff2..a8d06bb5981 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -934,10 +934,13 @@ general_operand (op, mode)
if (code == MEM)
{
register rtx y = XEXP (op, 0);
+
if (! volatile_ok && MEM_VOLATILE_P (op))
return 0;
+
if (GET_CODE (y) == ADDRESSOF)
return 1;
+
/* Use the mem's mode, since it will be reloaded thus. */
mode = GET_MODE (op);
GO_IF_LEGITIMATE_ADDRESS (mode, y, win);