From 876d1fa3baa7094a5d2690c0d8d8580e9ea35aac Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Wed, 20 Jan 1999 12:52:32 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/config/arm/arm.md | 33 +++++++++++++-------------------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9da7c93e6ed..1c51e75e761 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Wed Jan 20 12:51:42 1999 Mark Mitchell + + * 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 * recog.c (pop_operand): New function. diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index 6f38a8073aa..1b6fa73120b 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 -- 2.30.2