Add features packet and fixes MIPS3.
authorWerner Koch <wk@gnupg.org>
Wed, 11 Oct 2000 17:26:49 +0000 (17:26 +0000)
committerWerner Koch <wk@gnupg.org>
Wed, 11 Oct 2000 17:26:49 +0000 (17:26 +0000)
mpi/ChangeLog
mpi/config.links
mpi/generic/distfiles
mpi/generic/mpi-asm-defs.h [new file with mode: 0644]
mpi/mips3/distfiles
mpi/mips3/mpi-asm-defs.h [new file with mode: 0644]
src/ChangeLog
src/mpi.h

index 97ae3cd..64b0b38 100644 (file)
@@ -1,3 +1,9 @@
+2000-10-11  Werner Koch  <wk@gnupg.org>
+
+       * generic/mpi-asm-defs.h: New.
+       * mips3/mpi-asm-defs.h: New.
+       * config.links: Create a link to one of the above files.
+
 Fri Jul 28 18:19:11 CEST 2000  Werner Koch  <wk@openit.de>
 
   * mpicoder.c (gcry_mpi_scan): Normalize the returned MPI.
index 6f6b276..2a261ed 100644 (file)
@@ -278,3 +278,14 @@ for fn in $mpi_ln_modules ; do
     done
 done
 
+# Same thing for the file which defines the limb size
+path="$path generic"
+for dir in $path ; do
+       rm -f $srcdir/mpi/mpi-asm-defs.h
+       if test -f $srcdir/mpi/$dir/mpi-asm-defs.h ; then
+           mpi_ln_src="$mpi_ln_src mpi/$dir/mpi-asm-defs.h"
+           mpi_ln_dst="$mpi_ln_dst mpi/mpi-asm-defs.h"
+           break;
+       fi
+done
+
index 0bf4600..649e829 100644 (file)
@@ -6,4 +6,5 @@ mpih-lshift.c
 mpih-rshift.c
 mpih-sub1.c
 udiv-w-sdiv.c
+mpi-asm-defs.h
 
diff --git a/mpi/generic/mpi-asm-defs.h b/mpi/generic/mpi-asm-defs.h
new file mode 100644 (file)
index 0000000..c25f966
--- /dev/null
@@ -0,0 +1,9 @@
+/* This file defines some basic constants for the MPI machinery.  We
+ * need to define the types on a per-CPU basis, so it is done with
+ * this file here.  */
+#define BYTES_PER_MPI_LIMB  (sizeof unsigned long)
+
+
+
+
+
index b88f4f8..85260fc 100644 (file)
@@ -6,4 +6,5 @@ mpih-mul2.S
 mpih-mul3.S
 mpih-lshift.S
 mpih-rshift.S
+mpi-asm-defs.h
 
diff --git a/mpi/mips3/mpi-asm-defs.h b/mpi/mips3/mpi-asm-defs.h
new file mode 100644 (file)
index 0000000..2d9a9c1
--- /dev/null
@@ -0,0 +1,10 @@
+/* This file defines some basic constants for the MPI machinery.  We
+ * need to define the types on a per-CPU basis, so it is done with
+ * this file here.  */
+#define BYTES_PER_MPI_LIMB  8
+
+
+
+
+
+
index 7534f55..870db51 100644 (file)
@@ -1,3 +1,7 @@
+2000-10-11  Werner Koch  <wk@gnupg.org>
+
+       * mpi.h: Changed the way mpi_limb_t is defined.
+
 2000-10-10  Werner Koch  <wk@gnupg.org>
 
        * Makefile.am: Take version-info from configure.
index e139288..8680cf9 100644 (file)
--- a/src/mpi.h
+++ b/src/mpi.h
 #ifndef G10_MPI_H
 #define G10_MPI_H
 
+#include <config.h>
 #include <stdio.h>
 #include "types.h"
 #include "memory.h"
-
+#include "../mpi/mpi-asm-defs.h"
+
+#if BYTES_PER_MPI_LIMB == SIZEOF_UNSIGNED_INT
+  typedef unsigned int mpi_limb_t;
+  typedef   signed int mpi_limb_signed_t;
+#elif BYTES_PER_MPI_LIMB == SIZEOF_UNSIGNED_LONG
+  typedef unsigned long int mpi_limb_t;
+  typedef   signed long int mpi_limb_signed_t;
+#elif BYTES_PER_MPI_LIMB == SIZEOF_UNSIGNED_LONG_LONG
+  typedef unsigned long long int mpi_limb_t;
+  typedef   signed long long int mpi_limb_signed_t;
+#elif BYTES_PER_MPI_LIMB == SIZEOF_UNSIGNED_SHORT
+  typedef unsigned short int mpi_limb_t;
+  typedef   signed short int mpi_limb_signed_t;
+#else
+  #error BYTES_PER_MPI_LIMB does not match any C type
+#endif
+#define BITS_PER_MPI_LIMB    (8*BYTES_PER_MPI_LIMB)
 
 #define DBG_MPI     g10_get_debug_flag( 2 );
 
-#define BITS_PER_MPI_LIMB    (8*SIZEOF_UNSIGNED_LONG)
-#define BYTES_PER_MPI_LIMB   SIZEOF_UNSIGNED_LONG
-typedef unsigned long int mpi_limb_t;
-typedef   signed long int mpi_limb_signed_t;
-
 struct gcry_mpi {
     int alloced;    /* array size (# of allocated limbs) */
     int nlimbs;     /* number of valid limbs */