aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2000-03-28 17:41:40 +0200
committerJeff Law <law@gcc.gnu.org>2000-03-28 08:41:40 -0700
commit5a97f7c2d7fa5680ef0942f27ddb2d399dac2227 (patch)
tree32bd7ab15b48ee6c7209da64451293a7fcd591a9 /gcc
parent04e3ec78036a73b107ff87da6a9dafa91aa85bf3 (diff)
downloadgcc-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/ChangeLog8
-rw-r--r--gcc/regmove.c20
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;
}