1162417Simp$FreeBSD$
2162417SimpIndex: arm.md
3162417Simp===================================================================
4162417SimpRCS file: /cognet/ncvs/src/contrib/gcc/config/arm/arm.md,v
5162417Simpretrieving revision 1.1.1.7
6162417Simpdiff -u -p -r1.1.1.7 arm.md
7162417Simp--- arm.md	3 Jun 2005 03:28:42 -0000	1.1.1.7
8164019Sobrien+++ arm.md	6 Nov 2006 02:44:36 -0000
9164019Sobrien@@ -8840,7 +8840,7 @@
10164019Sobrien       val2 = INTVAL (XEXP (XEXP (operands[3], 0), 1));
11162417Simp     arith[0] = operands[0];
12162417Simp     arith[3] = operands[1];
13162417Simp-    if (val1 < val2)
14162417Simp+    if (val1 <= val2)
15162417Simp       {
16162417Simp 	arith[1] = ldm[1];
17162417Simp 	arith[2] = ldm[2];
18164019Sobrien@@ -8870,7 +8870,7 @@
19162417Simp 	else
20162417Simp 	  output_asm_insn (\"ldm%?ia\\t%0, {%1, %2}\", ldm);
21162417Simp       }
22162417Simp-    else
23162417Simp+    else if (val2)
24162417Simp       {
25162417Simp 	ldm[0] = XEXP (operands[2], 0);
26162417Simp 	if (val1 < val2)
27164019Sobrien@@ -8878,6 +8878,14 @@
28162417Simp 	else
29162417Simp 	  output_asm_insn (\"ldm%?da\\t%0, {%1, %2}\", ldm);
30162417Simp       }
31162417Simp+   else {
32162417Simp+	ldm[0] = operands[0];
33162417Simp+	ldm[1] = XEXP(operands[2], 0);
34162417Simp+	output_asm_insn(\"ldr\\t%0, [%1]\", ldm);
35162417Simp+	ldm[0] = operands[4];
36162417Simp+	ldm[1] = XEXP(operands[3], 0);
37162417Simp+	output_asm_insn(\"ldr\\t%0, [%1]\", ldm);
38162417Simp+   }
39162417Simp     output_asm_insn (\"%I3%?\\t%0, %1, %2\", arith);
40162417Simp     return \"\";
41162417Simp   }"
42