mp fixed arith

R=r
DELTA=149  (80 added, 62 deleted, 7 changed)
OCL=14029
CL=14029
diff --git a/src/cmd/gc/go.h b/src/cmd/gc/go.h
index 636856e..af50d48 100644
--- a/src/cmd/gc/go.h
+++ b/src/cmd/gc/go.h
@@ -78,8 +78,6 @@
 struct	Mpflt
 {
 	double	val;
-	long	a[Mpprec];
-	uchar	neg;
 	uchar	ovf;
 };
 
@@ -471,46 +469,54 @@
 void	mkpackage(char*);
 
 /*
- *	mparith.c
+ *	mparith1.c
  */
-void	mpmovefixfix(Mpint *a, Mpint *b);
-void	mpmovefixflt(Mpflt *a, Mpint *b);
-void	mpmovefltfix(Mpint *a, Mpflt *b);
-void	mpmovefltflt(Mpflt *a, Mpflt *b);
-void	mpmovecfix(Mpint *a, vlong v);
-void	mpmovecflt(Mpflt *a, double f);
-
 int	mpcmpfixfix(Mpint *a, Mpint *b);
-int	mpcmpfltflt(Mpflt *a, Mpflt *b);
 int	mpcmpfixc(Mpint *b, vlong c);
-int	mpcmpfltc(Mpint *b, double c);
-int	mptestfixfix(Mpint *a);
-int	mptestfltflt(Mpflt *a);
-
-void	mpaddfixfix(Mpint *a, Mpint *b);
-void	mpaddfltflt(Mpflt *a, Mpflt *b);
+int	mpcmpfltflt(Mpflt *a, Mpflt *b);
+int	mpcmpfltc(Mpflt *b, double c);
 void	mpsubfixfix(Mpint *a, Mpint *b);
 void	mpsubfltflt(Mpflt *a, Mpflt *b);
-void	mpmulfixfix(Mpint *a, Mpint *b);
-void	mpmulfltflt(Mpflt *a, Mpflt *b);
+void	mpaddcfix(Mpint *a, vlong c);
+void	mpaddcflt(Mpflt *a, double c);
+void	mpmulcfix(Mpint *a, vlong c);
+void	mpmulcflt(Mpflt *a, double c);
 void	mpdivfixfix(Mpint *a, Mpint *b);
-void	mpdivfltflt(Mpflt *a, Mpflt *b);
-void	mpnegfix(Mpint *a);
-void	mpnegflt(Mpflt *a);
+void	mpmodfixfix(Mpint *a, Mpint *b);
+void	mpatofix(Mpint *a, char *s);
+void	mpatoflt(Mpflt *a, char *s);
+void	mpmovefltfix(Mpint *a, Mpflt *b);
+void	mpmovefixflt(Mpflt *a, Mpint *b);
 
+/*
+ *	mparith2.c
+ */
+void	mpmovefixfix(Mpint *a, Mpint *b);
+void	mpmovecfix(Mpint *a, vlong v);
+int	mptestfix(Mpint *a);
+void	mpaddfixfix(Mpint *a, Mpint *b);
+void	mpmulfixfix(Mpint *a, Mpint *b);
+void	mpdivmodfixfix(Mpint *q, Mpint *r, Mpint *n, Mpint *d);
+void	mpnegfix(Mpint *a);
 void	mpandfixfix(Mpint *a, Mpint *b);
 void	mplshfixfix(Mpint *a, Mpint *b);
-void	mpmodfixfix(Mpint *a, Mpint *b);
 void	mporfixfix(Mpint *a, Mpint *b);
 void	mprshfixfix(Mpint *a, Mpint *b);
 void	mpxorfixfix(Mpint *a, Mpint *b);
 void	mpcomfix(Mpint *a);
-
-double	mpgetflt(Mpflt *a);
 vlong	mpgetfix(Mpint *a);
 
-void	mpatofix(Mpint *a, char *s);
-void	mpatoflt(Mpflt *a, char *s);
+/*
+ *	mparith3.c
+ */
+void	mpmovefltflt(Mpflt *a, Mpflt *b);
+void	mpmovecflt(Mpflt *a, double f);
+int	mptestflt(Mpflt *a);
+void	mpaddfltflt(Mpflt *a, Mpflt *b);
+void	mpmulfltflt(Mpflt *a, Mpflt *b);
+void	mpdivfltflt(Mpflt *a, Mpflt *b);
+void	mpnegflt(Mpflt *a);
+double	mpgetflt(Mpflt *a);
 
 /*
  *	subr.c