summaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2001-11-13 16:45:18 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2001-11-13 16:45:18 +0000
commitbf42c62d563e07d9742288cf34dd937591335103 (patch)
treed66cd731e9536db2b2295ea3338e767b3dac7a71 /gcc/expr.c
parentbd276a5ad2656aa694e0e0161a2123cd37e7404b (diff)
downloadgcc-bf42c62d563e07d9742288cf34dd937591335103.tar.gz
* emit-rtl.c (adjust_address_1): Add ADJUST argument.
(adjust_automodify_address_1): New. * expr.h (adjust_address, adjust_address_nv): Adjust. (adjust_automodify_address, adjust_automodify_address_nv): Define. (adjust_address_1): Update prototype. (adjust_automodify_address_1): Add prototype. * expr.c (move_by_pieces_1): Use adjust_automodify_address. (store_by_pieces_2): Likewise. * gcc.c-torture/execute/20011113-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46988 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 42372b1aa72..d48227a0bb2 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -1577,19 +1577,15 @@ move_by_pieces_1 (genfun, mode, data)
if (data->to)
{
if (data->autinc_to)
- {
- to1 = replace_equiv_address (data->to, data->to_addr);
- to1 = adjust_address (to1, mode, 0);
- }
+ to1 = adjust_automodify_address (data->to, mode, data->to_addr,
+ data->offset);
else
to1 = adjust_address (data->to, mode, data->offset);
}
if (data->autinc_from)
- {
- from1 = replace_equiv_address (data->from, data->from_addr);
- from1 = adjust_address (from1, mode, 0);
- }
+ from1 = adjust_automodify_address (data->from, mode, data->from_addr,
+ data->offset);
else
from1 = adjust_address (data->from, mode, data->offset);
@@ -2525,10 +2521,8 @@ store_by_pieces_2 (genfun, mode, data)
data->offset -= size;
if (data->autinc_to)
- {
- to1 = replace_equiv_address (data->to, data->to_addr);
- to1 = adjust_address (to1, mode, 0);
- }
+ to1 = adjust_automodify_address (data->to, mode, data->to_addr,
+ data->offset);
else
to1 = adjust_address (data->to, mode, data->offset);