Index: c/src/exec/libnetworking/netinet/in_cksum_m68k.c
===================================================================
--- c/src/exec/libnetworking/netinet/in_cksum_m68k.c	(revision 97d7b068cb787cd2116813ee365cb5674be38afe)
+++ c/src/exec/libnetworking/netinet/in_cksum_m68k.c	(revision 7ddcfb8cd494b75ee061adcd423feaadef199721)
@@ -114,5 +114,5 @@
 		 */
 		{
-		unsigned long tcnt = mlen, t1, t2;
+		unsigned long tcnt = mlen, t1;
 		__asm__ volatile (
 		"movel   %2,%3\n\t"
@@ -121,7 +121,6 @@
 		"negl    %3\n\t      | Each long uses 4 instruction bytes\n\t"
 #if IS_COLDFIRE
-		"move    %%cc,%4     | Move the CC into a temp reg\n\t"
-		"andil   #0xf,%4     | Clear X (extended carry flag)\n\t"
-		"move    %4,%%cc     | Move the modified value back to the cc\n\t"
+		"addql   #1,%2       | Clear X (extended carry flag)\n\t"
+		"subql   #1,%2       | \n\t"
 #else
 		"andi    #0xf,%%cc   | Clear X (extended carry flag)\n\t"
@@ -170,10 +169,11 @@
 		"movel   %0,%3       | Fold 32 bit sum to 16 bits\n\t"
 		"swap    %3          |\n\t"
-		"andl    %2,%0       |\n\t"
-		"andl    %2,%3       |\n\t"
+		"andl    %2,%0       | Mask to 16-bit sum\n\t"
+		"andl    %2,%3       | Mask to 16-bit sum\n\t"
 		"addl    %3,%0       |\n\t"
 		"movel   %0,%3       | Add in last carry\n\t"
 		"swap    %3          |\n\t"
 		"addl    %3,%0       |\n\t"
+		"andl    %2,%0       | Mask to 16-bit sum\n\t"
 #else
 		"dbf     %2,lcsum1_lbl | (NB- dbf doesn't affect X)\n\t"
@@ -183,7 +183,8 @@
 		"moveq   #0,%3       | Add in last carry\n\t"
 		"addxw   %3,%0       |\n\t"
+		"andl    #0xffff,%0  | Mask to 16-bit sum\n"
 #endif
-		"andl    #0xffff,%0     | Mask to 16-bit sum\n" :
-			"=d" (sum), "=a" (w), "=d" (tcnt) , "=d" (t1), "=d" (t2) :
+			:
+			"=d" (sum), "=a" (w), "=d" (tcnt) , "=d" (t1) :
 			"0" (sum), "1" (w), "2" (tcnt) :
 			"cc", "memory");
Index: c/src/lib/libnetworking/netinet/in_cksum_m68k.c
===================================================================
--- c/src/lib/libnetworking/netinet/in_cksum_m68k.c	(revision 97d7b068cb787cd2116813ee365cb5674be38afe)
+++ c/src/lib/libnetworking/netinet/in_cksum_m68k.c	(revision 7ddcfb8cd494b75ee061adcd423feaadef199721)
@@ -114,5 +114,5 @@
 		 */
 		{
-		unsigned long tcnt = mlen, t1, t2;
+		unsigned long tcnt = mlen, t1;
 		__asm__ volatile (
 		"movel   %2,%3\n\t"
@@ -121,7 +121,6 @@
 		"negl    %3\n\t      | Each long uses 4 instruction bytes\n\t"
 #if IS_COLDFIRE
-		"move    %%cc,%4     | Move the CC into a temp reg\n\t"
-		"andil   #0xf,%4     | Clear X (extended carry flag)\n\t"
-		"move    %4,%%cc     | Move the modified value back to the cc\n\t"
+		"addql   #1,%2       | Clear X (extended carry flag)\n\t"
+		"subql   #1,%2       | \n\t"
 #else
 		"andi    #0xf,%%cc   | Clear X (extended carry flag)\n\t"
@@ -170,10 +169,11 @@
 		"movel   %0,%3       | Fold 32 bit sum to 16 bits\n\t"
 		"swap    %3          |\n\t"
-		"andl    %2,%0       |\n\t"
-		"andl    %2,%3       |\n\t"
+		"andl    %2,%0       | Mask to 16-bit sum\n\t"
+		"andl    %2,%3       | Mask to 16-bit sum\n\t"
 		"addl    %3,%0       |\n\t"
 		"movel   %0,%3       | Add in last carry\n\t"
 		"swap    %3          |\n\t"
 		"addl    %3,%0       |\n\t"
+		"andl    %2,%0       | Mask to 16-bit sum\n\t"
 #else
 		"dbf     %2,lcsum1_lbl | (NB- dbf doesn't affect X)\n\t"
@@ -183,7 +183,8 @@
 		"moveq   #0,%3       | Add in last carry\n\t"
 		"addxw   %3,%0       |\n\t"
+		"andl    #0xffff,%0  | Mask to 16-bit sum\n"
 #endif
-		"andl    #0xffff,%0     | Mask to 16-bit sum\n" :
-			"=d" (sum), "=a" (w), "=d" (tcnt) , "=d" (t1), "=d" (t2) :
+			:
+			"=d" (sum), "=a" (w), "=d" (tcnt) , "=d" (t1) :
 			"0" (sum), "1" (w), "2" (tcnt) :
 			"cc", "memory");
Index: c/src/libnetworking/netinet/in_cksum_m68k.c
===================================================================
--- c/src/libnetworking/netinet/in_cksum_m68k.c	(revision 97d7b068cb787cd2116813ee365cb5674be38afe)
+++ c/src/libnetworking/netinet/in_cksum_m68k.c	(revision 7ddcfb8cd494b75ee061adcd423feaadef199721)
@@ -114,5 +114,5 @@
 		 */
 		{
-		unsigned long tcnt = mlen, t1, t2;
+		unsigned long tcnt = mlen, t1;
 		__asm__ volatile (
 		"movel   %2,%3\n\t"
@@ -121,7 +121,6 @@
 		"negl    %3\n\t      | Each long uses 4 instruction bytes\n\t"
 #if IS_COLDFIRE
-		"move    %%cc,%4     | Move the CC into a temp reg\n\t"
-		"andil   #0xf,%4     | Clear X (extended carry flag)\n\t"
-		"move    %4,%%cc     | Move the modified value back to the cc\n\t"
+		"addql   #1,%2       | Clear X (extended carry flag)\n\t"
+		"subql   #1,%2       | \n\t"
 #else
 		"andi    #0xf,%%cc   | Clear X (extended carry flag)\n\t"
@@ -170,10 +169,11 @@
 		"movel   %0,%3       | Fold 32 bit sum to 16 bits\n\t"
 		"swap    %3          |\n\t"
-		"andl    %2,%0       |\n\t"
-		"andl    %2,%3       |\n\t"
+		"andl    %2,%0       | Mask to 16-bit sum\n\t"
+		"andl    %2,%3       | Mask to 16-bit sum\n\t"
 		"addl    %3,%0       |\n\t"
 		"movel   %0,%3       | Add in last carry\n\t"
 		"swap    %3          |\n\t"
 		"addl    %3,%0       |\n\t"
+		"andl    %2,%0       | Mask to 16-bit sum\n\t"
 #else
 		"dbf     %2,lcsum1_lbl | (NB- dbf doesn't affect X)\n\t"
@@ -183,7 +183,8 @@
 		"moveq   #0,%3       | Add in last carry\n\t"
 		"addxw   %3,%0       |\n\t"
+		"andl    #0xffff,%0  | Mask to 16-bit sum\n"
 #endif
-		"andl    #0xffff,%0     | Mask to 16-bit sum\n" :
-			"=d" (sum), "=a" (w), "=d" (tcnt) , "=d" (t1), "=d" (t2) :
+			:
+			"=d" (sum), "=a" (w), "=d" (tcnt) , "=d" (t1) :
 			"0" (sum), "1" (w), "2" (tcnt) :
 			"cc", "memory");
Index: cpukit/libnetworking/netinet/in_cksum_m68k.c
===================================================================
--- cpukit/libnetworking/netinet/in_cksum_m68k.c	(revision 97d7b068cb787cd2116813ee365cb5674be38afe)
+++ cpukit/libnetworking/netinet/in_cksum_m68k.c	(revision 7ddcfb8cd494b75ee061adcd423feaadef199721)
@@ -114,5 +114,5 @@
 		 */
 		{
-		unsigned long tcnt = mlen, t1, t2;
+		unsigned long tcnt = mlen, t1;
 		__asm__ volatile (
 		"movel   %2,%3\n\t"
@@ -121,7 +121,6 @@
 		"negl    %3\n\t      | Each long uses 4 instruction bytes\n\t"
 #if IS_COLDFIRE
-		"move    %%cc,%4     | Move the CC into a temp reg\n\t"
-		"andil   #0xf,%4     | Clear X (extended carry flag)\n\t"
-		"move    %4,%%cc     | Move the modified value back to the cc\n\t"
+		"addql   #1,%2       | Clear X (extended carry flag)\n\t"
+		"subql   #1,%2       | \n\t"
 #else
 		"andi    #0xf,%%cc   | Clear X (extended carry flag)\n\t"
@@ -170,10 +169,11 @@
 		"movel   %0,%3       | Fold 32 bit sum to 16 bits\n\t"
 		"swap    %3          |\n\t"
-		"andl    %2,%0       |\n\t"
-		"andl    %2,%3       |\n\t"
+		"andl    %2,%0       | Mask to 16-bit sum\n\t"
+		"andl    %2,%3       | Mask to 16-bit sum\n\t"
 		"addl    %3,%0       |\n\t"
 		"movel   %0,%3       | Add in last carry\n\t"
 		"swap    %3          |\n\t"
 		"addl    %3,%0       |\n\t"
+		"andl    %2,%0       | Mask to 16-bit sum\n\t"
 #else
 		"dbf     %2,lcsum1_lbl | (NB- dbf doesn't affect X)\n\t"
@@ -183,7 +183,8 @@
 		"moveq   #0,%3       | Add in last carry\n\t"
 		"addxw   %3,%0       |\n\t"
+		"andl    #0xffff,%0  | Mask to 16-bit sum\n"
 #endif
-		"andl    #0xffff,%0     | Mask to 16-bit sum\n" :
-			"=d" (sum), "=a" (w), "=d" (tcnt) , "=d" (t1), "=d" (t2) :
+			:
+			"=d" (sum), "=a" (w), "=d" (tcnt) , "=d" (t1) :
 			"0" (sum), "1" (w), "2" (tcnt) :
 			"cc", "memory");
Index: cpukit/libnetworking/netinet/in_cksum_m68k.h
===================================================================
--- cpukit/libnetworking/netinet/in_cksum_m68k.h	(revision 97d7b068cb787cd2116813ee365cb5674be38afe)
+++ cpukit/libnetworking/netinet/in_cksum_m68k.h	(revision 7ddcfb8cd494b75ee061adcd423feaadef199721)
@@ -114,5 +114,5 @@
 		 */
 		{
-		unsigned long tcnt = mlen, t1, t2;
+		unsigned long tcnt = mlen, t1;
 		__asm__ volatile (
 		"movel   %2,%3\n\t"
@@ -121,7 +121,6 @@
 		"negl    %3\n\t      | Each long uses 4 instruction bytes\n\t"
 #if IS_COLDFIRE
-		"move    %%cc,%4     | Move the CC into a temp reg\n\t"
-		"andil   #0xf,%4     | Clear X (extended carry flag)\n\t"
-		"move    %4,%%cc     | Move the modified value back to the cc\n\t"
+		"addql   #1,%2       | Clear X (extended carry flag)\n\t"
+		"subql   #1,%2       | \n\t"
 #else
 		"andi    #0xf,%%cc   | Clear X (extended carry flag)\n\t"
@@ -170,10 +169,11 @@
 		"movel   %0,%3       | Fold 32 bit sum to 16 bits\n\t"
 		"swap    %3          |\n\t"
-		"andl    %2,%0       |\n\t"
-		"andl    %2,%3       |\n\t"
+		"andl    %2,%0       | Mask to 16-bit sum\n\t"
+		"andl    %2,%3       | Mask to 16-bit sum\n\t"
 		"addl    %3,%0       |\n\t"
 		"movel   %0,%3       | Add in last carry\n\t"
 		"swap    %3          |\n\t"
 		"addl    %3,%0       |\n\t"
+		"andl    %2,%0       | Mask to 16-bit sum\n\t"
 #else
 		"dbf     %2,lcsum1_lbl | (NB- dbf doesn't affect X)\n\t"
@@ -183,7 +183,8 @@
 		"moveq   #0,%3       | Add in last carry\n\t"
 		"addxw   %3,%0       |\n\t"
+		"andl    #0xffff,%0  | Mask to 16-bit sum\n"
 #endif
-		"andl    #0xffff,%0     | Mask to 16-bit sum\n" :
-			"=d" (sum), "=a" (w), "=d" (tcnt) , "=d" (t1), "=d" (t2) :
+			:
+			"=d" (sum), "=a" (w), "=d" (tcnt) , "=d" (t1) :
 			"0" (sum), "1" (w), "2" (tcnt) :
 			"cc", "memory");
