diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-07-22 18:13:47 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-07-22 18:13:47 +0000 |
commit | f7db692b6e1ed2d26a2d7842a1c26357b76cb8d0 (patch) | |
tree | 1a475406c5d203858de9159b601f45c99291ef48 /gcc/expr.c | |
parent | 92ae9a5b7bf7ac8a4301a35f7ed18dbfdbaecae5 (diff) | |
download | gcc-f7db692b6e1ed2d26a2d7842a1c26357b76cb8d0.tar.gz |
* expr.c (emit_push_insn): Don't use set_mem_attributes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@85054 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 33 |
1 files changed, 14 insertions, 19 deletions
diff --git a/gcc/expr.c b/gcc/expr.c index 348d286c97e..d8ab443e913 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -3250,16 +3250,11 @@ emit_push_insn (rtx x, enum machine_mode mode, tree type, rtx size, target = gen_rtx_MEM (BLKmode, temp); - if (type != 0) - { - set_mem_attributes (target, type, 1); - /* Function incoming arguments may overlap with sibling call - outgoing arguments and we cannot allow reordering of reads - from function arguments with stores to outgoing arguments - of sibling calls. */ - set_mem_alias_set (target, 0); - } - + /* We do *not* set_mem_attributes here, because incoming arguments + may overlap with sibling call outgoing arguments and we cannot + allow reordering of reads from function arguments with stores + to outgoing arguments of sibling calls. We do, however, want + to record the alignment of the stack slot. */ /* ALIGN may well be better aligned than TYPE, e.g. due to PARM_BOUNDARY. Assume the caller isn't lying. */ set_mem_align (target, align); @@ -3355,15 +3350,15 @@ emit_push_insn (rtx x, enum machine_mode mode, tree type, rtx size, addr = memory_address (mode, gen_rtx_PLUS (Pmode, args_addr, args_so_far)); dest = gen_rtx_MEM (mode, addr); - if (type != 0) - { - set_mem_attributes (dest, type, 1); - /* Function incoming arguments may overlap with sibling call - outgoing arguments and we cannot allow reordering of reads - from function arguments with stores to outgoing arguments - of sibling calls. */ - set_mem_alias_set (dest, 0); - } + + /* We do *not* set_mem_attributes here, because incoming arguments + may overlap with sibling call outgoing arguments and we cannot + allow reordering of reads from function arguments with stores + to outgoing arguments of sibling calls. We do, however, want + to record the alignment of the stack slot. */ + /* ALIGN may well be better aligned than TYPE, e.g. due to + PARM_BOUNDARY. Assume the caller isn't lying. */ + set_mem_align (dest, align); emit_move_insn (dest, x); } |