A minor simplification - as (opcode & MASK_ARITHMETIC_OPCODE) >> 20
is frequently used, compute that quantity once and store it.

PATCH FOLLOWS
KernelVersion: 2.4.19-rmk7

diff -uNr linux-2.4.19-rmk7-rfs2/arch/arm/nwfpe/ChangeLog linux-2.4.19-rmk7-rfs3/arch/arm/nwfpe/ChangeLog
--- linux-2.4.19-rmk7-rfs2/arch/arm/nwfpe/ChangeLog	2003-03-22 12:59:20.000000000 -0500
+++ linux-2.4.19-rmk7-rfs3/arch/arm/nwfpe/ChangeLog	2003-03-22 13:00:43.000000000 -0500
@@ -2,6 +2,7 @@
 	* Reformat all but softfloat files to get a consistent coding style.
 	  Used "indent -kr -i8 -ts8 -sob -l132 -ss" and a few manual fixups.
 	* Removed dead code and fixed function protypes to match definitions.
+	* Consolidated use of (opcode && MASK_ARITHMETIC_OPCODE) >> 20.
 
 2002-01-19  Russell King <rmk@arm.linux.org.uk>
 
diff -uNr linux-2.4.19-rmk7-rfs2/arch/arm/nwfpe/double_cpdo.c linux-2.4.19-rmk7-rfs3/arch/arm/nwfpe/double_cpdo.c
--- linux-2.4.19-rmk7-rfs2/arch/arm/nwfpe/double_cpdo.c	2003-03-22 12:56:13.000000000 -0500
+++ linux-2.4.19-rmk7-rfs3/arch/arm/nwfpe/double_cpdo.c	2003-03-22 13:00:09.000000000 -0500
@@ -104,9 +104,7 @@
 {
 	FPA11 *fpa11 = GET_FPA11();
 	float64 rFm;
-	unsigned int Fm, opc;
-
-	//printk("DoubleCPDO(0x%08x)\n",opcode);
+	unsigned int Fm, opc_mask_shift;
 
 	Fm = getFm(opcode);
 	if (CONSTANT_FM(opcode)) {
@@ -126,7 +124,7 @@
 		}
 	}
 
-	opc = opcode & MASK_ARITHMETIC_OPCODE;
+	opc_mask_shift = (opcode & MASK_ARITHMETIC_OPCODE) >> 20;
 	if (!MONADIC_INSTRUCTION(opcode)) {
 		unsigned int Fn = getFn(opcode);
 		float64 rFn;
@@ -144,14 +142,14 @@
 			return 0;
 		}
 
-		if (dyadic_double[opc >> 20]) {
-			rFd->fDouble = dyadic_double[opc >> 20](rFn, rFm);
+		if (dyadic_double[opc_mask_shift]) {
+			rFd->fDouble = dyadic_double[opc_mask_shift](rFn, rFm);
 		} else {
 			return 0;
 		}
 	} else {
-		if (monadic_double[opc >> 20]) {
-			rFd->fDouble = monadic_double[opc >> 20](rFm);
+		if (monadic_double[opc_mask_shift]) {
+			rFd->fDouble = monadic_double[opc_mask_shift](rFm);
 		} else {
 			return 0;
 		}
diff -uNr linux-2.4.19-rmk7-rfs2/arch/arm/nwfpe/extended_cpdo.c linux-2.4.19-rmk7-rfs3/arch/arm/nwfpe/extended_cpdo.c
--- linux-2.4.19-rmk7-rfs2/arch/arm/nwfpe/extended_cpdo.c	2003-03-22 12:56:13.000000000 -0500
+++ linux-2.4.19-rmk7-rfs3/arch/arm/nwfpe/extended_cpdo.c	2003-03-22 13:00:09.000000000 -0500
@@ -91,9 +91,7 @@
 {
 	FPA11 *fpa11 = GET_FPA11();
 	floatx80 rFm;
-	unsigned int Fm, opc;
-
-	//printk("ExtendedCPDO(0x%08x)\n",opcode);
+	unsigned int Fm, opc_mask_shift;
 
 	Fm = getFm(opcode);
 	if (CONSTANT_FM(opcode)) {
@@ -117,7 +115,7 @@
 		}
 	}
 
-	opc = opcode & MASK_ARITHMETIC_OPCODE;
+	opc_mask_shift = (opcode & MASK_ARITHMETIC_OPCODE) >> 20;
 	if (!MONADIC_INSTRUCTION(opcode)) {
 		unsigned int Fn = getFn(opcode);
 		floatx80 rFn;
@@ -139,14 +137,14 @@
 			return 0;
 		}
 
-		if (dyadic_extended[opc >> 20]) {
-			rFd->fExtended = dyadic_extended[opc >> 20](rFn, rFm);
+		if (dyadic_extended[opc_mask_shift]) {
+			rFd->fExtended = dyadic_extended[opc_mask_shift](rFn, rFm);
 		} else {
 			return 0;
 		}
 	} else {
-		if (monadic_extended[opc >> 20]) {
-			rFd->fExtended = monadic_extended[opc >> 20](rFm);
+		if (monadic_extended[opc_mask_shift]) {
+			rFd->fExtended = monadic_extended[opc_mask_shift](rFm);
 		} else {
 			return 0;
 		}
diff -uNr linux-2.4.19-rmk7-rfs2/arch/arm/nwfpe/single_cpdo.c linux-2.4.19-rmk7-rfs3/arch/arm/nwfpe/single_cpdo.c
--- linux-2.4.19-rmk7-rfs2/arch/arm/nwfpe/single_cpdo.c	2003-03-22 12:56:13.000000000 -0500
+++ linux-2.4.19-rmk7-rfs3/arch/arm/nwfpe/single_cpdo.c	2003-03-22 13:00:09.000000000 -0500
@@ -1,6 +1,7 @@
 /*
     NetWinder Floating Point Emulator
     (c) Rebel.COM, 1998,1999
+    (c) Philip Blundell, 2001
 
     Direct questions, comments to Scott Bambrough <scottb@netwinder.org>
 
@@ -88,7 +89,7 @@
 {
 	FPA11 *fpa11 = GET_FPA11();
 	float32 rFm;
-	unsigned int Fm, opc;
+	unsigned int Fm, opc_mask_shift;
 
 	Fm = getFm(opcode);
 	if (CONSTANT_FM(opcode)) {
@@ -99,20 +100,21 @@
 		return 0;
 	}
 
-	opc = opcode & MASK_ARITHMETIC_OPCODE;
+	opc_mask_shift = (opcode & MASK_ARITHMETIC_OPCODE) >> 20;
 	if (!MONADIC_INSTRUCTION(opcode)) {
 		unsigned int Fn = getFn(opcode);
 		float32 rFn;
 
-		if (fpa11->fType[Fn] == typeSingle && dyadic_single[opc >> 20]) {
+		if (fpa11->fType[Fn] == typeSingle &&
+		    dyadic_single[opc_mask_shift]) {
 			rFn = fpa11->fpreg[Fn].fSingle;
-			rFd->fSingle = dyadic_single[opc >> 20](rFn, rFm);
+			rFd->fSingle = dyadic_single[opc_mask_shift](rFn, rFm);
 		} else {
 			return 0;
 		}
 	} else {
-		if (monadic_single[opc >> 20]) {
-			rFd->fSingle = monadic_single[opc >> 20](rFm);
+		if (monadic_single[opc_mask_shift]) {
+			rFd->fSingle = monadic_single[opc_mask_shift](rFm);
 		} else {
 			return 0;
 		}
