diff options
author | Jan Hubicka <jh@suse.cz> | 2000-03-28 17:41:40 +0200 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2000-03-28 08:41:40 -0700 |
commit | 5a97f7c2d7fa5680ef0942f27ddb2d399dac2227 (patch) | |
tree | 32bd7ab15b48ee6c7209da64451293a7fcd591a9 /gcc | |
parent | 04e3ec78036a73b107ff87da6a9dafa91aa85bf3 (diff) | |
download | gcc-5a97f7c2d7fa5680ef0942f27ddb2d399dac2227.zip gcc-5a97f7c2d7fa5680ef0942f27ddb2d399dac2227.tar.gz gcc-5a97f7c2d7fa5680ef0942f27ddb2d399dac2227.tar.bz2 |
regmove.c (struct csa_memlist): Make mem field rtx *.
* regmove.c (struct csa_memlist): Make mem field rtx *.
(record_one_stack_ref): Accept rtx * instead of rtx as parameter.
(try_apply_stack_adjustment): Replace whole MEM rtx.
(combine_stack_adjustments_for_block): Update calls
to record_one_stack_ref.
From-SVN: r32782
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/regmove.c | 20 |
2 files changed, 19 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8c5d6e9..e69124b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +Tue Mar 28 08:29:46 2000 Jan Hubicka <jh@suse.cz> + + * regmove.c (struct csa_memlist): Make mem field rtx *. + (record_one_stack_ref): Accept rtx * instead of rtx as parameter. + (try_apply_stack_adjustment): Replace whole MEM rtx. + (combine_stack_adjustments_for_block): Update calls + to record_one_stack_ref. + 2000-03-28 Neil Booth <NeilB@earthling.net> * (cpplex.c) _cpp_read_and_prescan. Mark end of input buffer with diff --git a/gcc/regmove.c b/gcc/regmove.c index 932e850..3b4a7e6 100644 --- a/gcc/regmove.c +++ b/gcc/regmove.c @@ -2088,7 +2088,7 @@ stable_and_no_regs_but_for_p (x, src, dst) struct csa_memlist { HOST_WIDE_INT sp_offset; - rtx insn, mem; + rtx insn, *mem; struct csa_memlist *next; }; @@ -2096,7 +2096,7 @@ static int stack_memref_p PARAMS ((rtx)); static rtx single_set_for_csa PARAMS ((rtx)); static void free_csa_memlist PARAMS ((struct csa_memlist *)); static struct csa_memlist *record_one_stack_memref - PARAMS ((rtx, rtx, struct csa_memlist *)); + PARAMS ((rtx, rtx *, struct csa_memlist *)); static int try_apply_stack_adjustment PARAMS ((rtx, struct csa_memlist *, HOST_WIDE_INT, HOST_WIDE_INT)); static void combine_stack_adjustments_for_block PARAMS ((basic_block)); @@ -2188,17 +2188,17 @@ free_csa_memlist (memlist) static struct csa_memlist * record_one_stack_memref (insn, mem, next_memlist) - rtx insn, mem; + rtx insn, *mem; struct csa_memlist *next_memlist; { struct csa_memlist *ml; ml = (struct csa_memlist *) xmalloc (sizeof (*ml)); - if (XEXP (mem, 0) == stack_pointer_rtx) + if (XEXP (*mem, 0) == stack_pointer_rtx) ml->sp_offset = 0; else - ml->sp_offset = INTVAL (XEXP (XEXP (mem, 0), 1)); + ml->sp_offset = INTVAL (XEXP (XEXP (*mem, 0), 1)); ml->insn = insn; ml->mem = mem; @@ -2241,8 +2241,9 @@ try_apply_stack_adjustment (insn, memlist, new_adjust, delta) return 0; } - validate_change (ml->insn, &XEXP (ml->mem, 0), - plus_constant (stack_pointer_rtx, c), 1); + validate_change (ml->insn, ml->mem, + gen_rtx_MEM (GET_MODE (*ml->mem), + plus_constant (stack_pointer_rtx, c)), 1); } if (apply_change_group ()) @@ -2340,7 +2341,7 @@ combine_stack_adjustments_for_block (bb) if (last_sp_set && stack_memref_p (src) && ! reg_mentioned_p (stack_pointer_rtx, dest)) { - memlist = record_one_stack_memref (insn, src, memlist); + memlist = record_one_stack_memref (insn, &SET_SRC (set), memlist); goto processed; } @@ -2348,7 +2349,8 @@ combine_stack_adjustments_for_block (bb) if (last_sp_set && stack_memref_p (dest) && ! reg_mentioned_p (stack_pointer_rtx, src)) { - memlist = record_one_stack_memref (insn, dest, memlist); + memlist = record_one_stack_memref (insn, &SET_DEST (set), + memlist); goto processed; } |