mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-06 07:36:44 +08:00
arm.md: Use MEM_COPY_ATTRIBUTES where appropriate throughout.
* arm.md: Use MEM_COPY_ATTRIBUTES where appropriate throughout. Pass MEM_SCALAR_P to arm_gen_store_multiple where appropriate. From-SVN: r24787
This commit is contained in:
parent
d2551ee467
commit
876d1fa3ba
@ -1,3 +1,8 @@
|
||||
Wed Jan 20 12:51:42 1999 Mark Mitchell <mark@markmitchell.com>
|
||||
|
||||
* arm.md: Use MEM_COPY_ATTRIBUTES where appropriate throughout.
|
||||
Pass MEM_SCALAR_P to arm_gen_store_multiple where appropriate.
|
||||
|
||||
Tue Jan 19 21:20:52 1999 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* recog.c (pop_operand): New function.
|
||||
|
@ -2286,12 +2286,10 @@
|
||||
rtx addr = copy_to_mode_reg (SImode, XEXP (operands[1], 0));
|
||||
|
||||
mem1 = gen_rtx (MEM, QImode, addr);
|
||||
MEM_VOLATILE_P (mem1) = MEM_VOLATILE_P (operands[1]);
|
||||
MEM_IN_STRUCT_P (mem1) = MEM_IN_STRUCT_P (operands[1]);
|
||||
MEM_COPY_ATTRIBUTES (mem1, operands[1]);
|
||||
RTX_UNCHANGING_P (mem1) = RTX_UNCHANGING_P (operands[1]);
|
||||
mem2 = gen_rtx (MEM, QImode, plus_constant (addr, 1));
|
||||
MEM_VOLATILE_P (mem2) = MEM_VOLATILE_P (operands[1]);
|
||||
MEM_IN_STRUCT_P (mem2) = MEM_IN_STRUCT_P (operands[1]);
|
||||
MEM_COPY_ATTRIBUTES (mem2, operands[1]);
|
||||
RTX_UNCHANGING_P (mem2) = RTX_UNCHANGING_P (operands[1]);
|
||||
operands[0] = gen_lowpart (SImode, operands[0]);
|
||||
operands[1] = mem1;
|
||||
@ -2400,8 +2398,7 @@
|
||||
|
||||
operands[3] = gen_rtx (REG, SImode, REGNO (operands[0]));
|
||||
operands[2] = gen_rtx (MEM, QImode, operands[3]);
|
||||
MEM_VOLATILE_P (operands[2]) = MEM_VOLATILE_P (operands[1]);
|
||||
MEM_IN_STRUCT_P (operands[2]) = MEM_IN_STRUCT_P (operands[1]);
|
||||
MEM_COPY_ATTRIBUTES (operands[2], operands[1]);
|
||||
RTX_UNCHANGING_P (operands[2]) = RTX_UNCHANGING_P (operands[1]);
|
||||
operands[1] = XEXP (operands[1], 0);
|
||||
if (GET_CODE (operands[1]) == PLUS
|
||||
@ -2471,8 +2468,7 @@
|
||||
HOST_WIDE_INT offset;
|
||||
|
||||
operands[2] = gen_rtx (MEM, QImode, operands[0]);
|
||||
MEM_VOLATILE_P (operands[2]) = MEM_VOLATILE_P (operands[1]);
|
||||
MEM_IN_STRUCT_P (operands[2]) = MEM_IN_STRUCT_P (operands[1]);
|
||||
MEM_COPY_ATTRIBUTES (operands[2], operands[1]);
|
||||
RTX_UNCHANGING_P (operands[2]) = RTX_UNCHANGING_P (operands[1]);
|
||||
operands[1] = XEXP (operands[1], 0);
|
||||
if (GET_CODE (operands[1]) == PLUS
|
||||
@ -2892,8 +2888,7 @@
|
||||
|
||||
new = gen_rtx (MEM, SImode,
|
||||
plus_constant (base, new_offset));
|
||||
MEM_VOLATILE_P (new) = MEM_VOLATILE_P (operands[1]);
|
||||
MEM_IN_STRUCT_P (new) = MEM_IN_STRUCT_P (operands[1]);
|
||||
MEM_COPY_ATTRIBUTES (new, operands[1]);
|
||||
RTX_UNCHANGING_P (new) = RTX_UNCHANGING_P (operands[1]);
|
||||
emit_insn (gen_movsi (reg, new));
|
||||
if (((INTVAL (offset) & 2) != 0)
|
||||
@ -2929,16 +2924,14 @@
|
||||
HOST_WIDE_INT new_offset = INTVAL (offset) ^ 2;
|
||||
new = gen_rtx (MEM, SImode,
|
||||
plus_constant (base, new_offset));
|
||||
MEM_VOLATILE_P (new) = MEM_VOLATILE_P (operands[1]);
|
||||
MEM_IN_STRUCT_P (new) = MEM_IN_STRUCT_P (operands[1]);
|
||||
MEM_COPY_ATTRIBUTES (new, operands[1]);
|
||||
RTX_UNCHANGING_P (new) = RTX_UNCHANGING_P (operands[1]);
|
||||
emit_insn (gen_movsi (reg, new));
|
||||
}
|
||||
else
|
||||
{
|
||||
new = gen_rtx (MEM, SImode, XEXP (operands[1], 0));
|
||||
MEM_VOLATILE_P (new) = MEM_VOLATILE_P (operands[1]);
|
||||
MEM_IN_STRUCT_P (new) = MEM_IN_STRUCT_P (operands[1]);
|
||||
MEM_COPY_ATTRIBUTES (new, operands[1]);
|
||||
RTX_UNCHANGING_P (new) = RTX_UNCHANGING_P (operands[1]);
|
||||
emit_insn (gen_rotated_loadsi (reg, new));
|
||||
}
|
||||
@ -3000,12 +2993,10 @@
|
||||
rtx addr = copy_to_mode_reg (SImode, XEXP (operands[1], 0));
|
||||
|
||||
mem1 = gen_rtx (MEM, QImode, addr);
|
||||
MEM_VOLATILE_P (mem1) = MEM_VOLATILE_P (operands[1]);
|
||||
MEM_IN_STRUCT_P (mem1) = MEM_IN_STRUCT_P (operands[1]);
|
||||
MEM_COPY_ATTRIBUTES (mem1, operands[1]);
|
||||
RTX_UNCHANGING_P (mem1) = RTX_UNCHANGING_P (operands[1]);
|
||||
mem2 = gen_rtx (MEM, QImode, plus_constant (addr, 1));
|
||||
MEM_VOLATILE_P (mem2) = MEM_VOLATILE_P (operands[1]);
|
||||
MEM_IN_STRUCT_P (mem2) = MEM_IN_STRUCT_P (operands[1]);
|
||||
MEM_COPY_ATTRIBUTES (mem2, operands[1]);
|
||||
RTX_UNCHANGING_P (mem2) = RTX_UNCHANGING_P (operands[1]);
|
||||
operands[0] = gen_lowpart (SImode, operands[0]);
|
||||
operands[1] = mem1;
|
||||
@ -3347,7 +3338,8 @@
|
||||
= arm_gen_load_multiple (REGNO (operands[0]), INTVAL (operands[2]),
|
||||
force_reg (SImode, XEXP (operands[1], 0)),
|
||||
TRUE, FALSE, RTX_UNCHANGING_P(operands[1]),
|
||||
MEM_IN_STRUCT_P(operands[1]));
|
||||
MEM_IN_STRUCT_P(operands[1]),
|
||||
MEM_SCALAR_P (operands[1]));
|
||||
")
|
||||
|
||||
;; Load multiple with write-back
|
||||
@ -3417,7 +3409,8 @@
|
||||
= arm_gen_store_multiple (REGNO (operands[1]), INTVAL (operands[2]),
|
||||
force_reg (SImode, XEXP (operands[0], 0)),
|
||||
TRUE, FALSE, RTX_UNCHANGING_P (operands[0]),
|
||||
MEM_IN_STRUCT_P(operands[0]));
|
||||
MEM_IN_STRUCT_P(operands[0]),
|
||||
MEM_SCALAR_P (operands[0]));
|
||||
")
|
||||
|
||||
;; Store multiple with write-back
|
||||
|
Loading…
Reference in New Issue
Block a user