diff options
author | Mark Mitchell <mark@markmitchell.com> | 1999-01-20 12:52:32 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 1999-01-20 12:52:32 +0000 |
commit | 876d1fa3baa7094a5d2690c0d8d8580e9ea35aac (patch) | |
tree | ecd91bdd9ae57c6b92707276ca6d0c662ff43111 /gcc | |
parent | d2551ee46710613062a5c03030c7f96dbc758af0 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/arm/arm.md | 33 |
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 |