aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Mitchell <mark@markmitchell.com>1999-01-20 12:52:32 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>1999-01-20 12:52:32 +0000
commit876d1fa3baa7094a5d2690c0d8d8580e9ea35aac (patch)
treeecd91bdd9ae57c6b92707276ca6d0c662ff43111 /gcc
parentd2551ee46710613062a5c03030c7f96dbc758af0 (diff)
downloadgcc-876d1fa3baa7094a5d2690c0d8d8580e9ea35aac.zip
gcc-876d1fa3baa7094a5d2690c0d8d8580e9ea35aac.tar.gz
gcc-876d1fa3baa7094a5d2690c0d8d8580e9ea35aac.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arm/arm.md33
2 files changed, 18 insertions, 20 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9da7c93..1c51e75 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index 6f38a80..1b6fa73 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -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