Remove redundant writeback test in previous delta.
authorNick Clifton <nickc@gcc.gnu.org>
Thu, 13 Mar 2003 13:27:17 +0000 (13:27 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Thu, 13 Mar 2003 13:27:17 +0000 (13:27 +0000)
From-SVN: r64307

gcc/config/arm/arm.c

index b7c85911ba85a62cc64e02433b8de4060aacb11c..79088e3d5b9e30c4db0afc986b63f411b7e014cc 100644 (file)
@@ -7207,11 +7207,14 @@ print_multi_reg (stream, instr, reg, mask)
   fprintf (stream, "}");
 
   /* Add a ^ character for the 26-bit ABI, but only if we were loading
-     the PC or not updating the stack pointer.  Otherwise we generate
-     an UNPREDICTABLE instruction.  */
+     the PC.  Otherwise we would generate an UNPREDICTABLE instruction.
+     Strictly speaking the instruction would be unpredicatble only if
+     we were writing back the base register as well, but since we never
+     want to generate an LDM type 2 instruction (register bank switching)
+     which is what you get if the PC is not being loaded, we do not need
+     to check for writeback.  */
   if (! TARGET_APCS_32
-      && (((mask & (1 << PC_REGNUM)) != 0)
-         || strchr (instr, '!') == NULL))
+      && ((mask & (1 << PC_REGNUM)) != 0))
     fprintf (stream, "^");
   
   fprintf (stream, "\n");