diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-11-13 16:45:18 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-11-13 16:45:18 +0000 |
commit | bf42c62d563e07d9742288cf34dd937591335103 (patch) | |
tree | d66cd731e9536db2b2295ea3338e767b3dac7a71 /gcc/expr.c | |
parent | bd276a5ad2656aa694e0e0161a2123cd37e7404b (diff) | |
download | gcc-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.c | 18 |
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); |