97 lines
2.7 KiB
Plaintext
97 lines
2.7 KiB
Plaintext
|
|
Itanium processor now fully supported using Intel C/C++ Compiler
|
|
|
|
Use a header file like
|
|
|
|
#define MR_LITTLE_ENDIAN
|
|
#define MIRACL 64
|
|
#define mr_utype long
|
|
#define MR_IBITS 32
|
|
#define MR_LBITS 64
|
|
#define mr_unsign32 unsigned int
|
|
#define mr_unsign64 unsigned long
|
|
#define MR_FLASH 52
|
|
#define MAXBASE ((mr_small)1<<(MIRACL-1))
|
|
#define BITSINCHAR 8
|
|
|
|
and create file mrmuldv.c from Itanium source code in mrmuldv.any
|
|
|
|
Note that this mrmuldv.c file only implements muldiv(.) and muldvm(.)
|
|
The other two functions - the time critical ones - muldvd(.) and muldvd2(.)
|
|
are inlined - see miracl.h
|
|
|
|
Note that the above header file assumes an LP64-compatible compiler.
|
|
For an LLP64 compiler, change mr_utype to a 64-bit "long long" or __int64
|
|
|
|
There is also a macro file itanium.mcs - see kcmcomba.txt and makemcs.txt
|
|
|
|
|
|
To build the miracl library, extract below into a file "itanium" and execute
|
|
|
|
bash itanium
|
|
|
|
|
|
-------------------------------
|
|
|
|
rm miracl.a
|
|
icc -I. -c -O3 mrcore.c
|
|
icc -I. -c -O3 mrarth0.c
|
|
icc -I. -c -O3 mrarth1.c
|
|
icc -I. -c -O3 mrarth2.c
|
|
icc -I. -c -O3 mralloc.c
|
|
icc -I. -c -O3 mrsmall.c
|
|
icc -I. -c -O3 mrio1.c
|
|
icc -I. -c -O3 mrio2.c
|
|
icc -I. -c -O3 mrgcd.c
|
|
icc -I. -c -O3 mrjack.c
|
|
icc -I. -c -O3 mrxgcd.c
|
|
icc -I. -c -O3 mrarth3.c
|
|
icc -I. -c -O3 mrbits.c
|
|
icc -I. -c -O3 mrrand.c
|
|
icc -I. -c -O3 mrprime.c
|
|
icc -I. -c -O3 mrcrt.c
|
|
icc -I. -c -O3 mrscrt.c
|
|
icc -I. -c -O3 mrmonty.c
|
|
icc -I. -c -O3 mrpower.c
|
|
icc -I. -c -O3 mrcurve.c
|
|
icc -I. -c -O3 mrfast.c
|
|
icc -I. -c -O3 mrzzn2.c
|
|
icc -I. -c -O3 mrzzn2b.c
|
|
icc -I. -c -O3 mrzzn3.c
|
|
icc -I. -c -O3 mrecn2.c
|
|
icc -I. -c -O3 mrshs.c
|
|
icc -I. -c -O3 mrshs256.c
|
|
icc -I. -c -O3 mrshs512.c
|
|
icc -I. -c -O3 mraes.c
|
|
icc -I. -c -O3 mrgcm.c
|
|
icc -I. -c -O3 mrlucas.c
|
|
icc -I. -c -O3 mrstrong.c
|
|
icc -I. -c -O3 mrbrick.c
|
|
icc -I. -c -O3 mrebrick.c
|
|
icc -I. -c -O3 mrec2m.c
|
|
icc -I. -c -O3 mrgf2m.c
|
|
icc -I. -c -O3 mrflash.c
|
|
icc -I. -c -O3 mrfrnd.c
|
|
icc -I. -c -O3 mrdouble.c
|
|
icc -I. -c -O3 mrround.c
|
|
icc -I. -c -O3 mrbuild.c
|
|
icc -I. -c -O3 mrflsh1.c
|
|
icc -I. -c -O3 mrpi.c
|
|
icc -I. -c -O3 mrflsh2.c
|
|
icc -I. -c -O3 mrflsh3.c
|
|
icc -I. -c -O3 mrflsh4.c
|
|
icc -I. -c -O3 mrmuldv.c
|
|
ar rc miracl.a mrcore.o mrarth0.o mrarth1.o mrarth2.o mralloc.o mrsmall.o mrgcm.o
|
|
ar r miracl.a mrio1.o mrio2.o mrjack.o mrgcd.o mrxgcd.o mrarth3.o mrbits.o mrzzn2b.o
|
|
ar r miracl.a mrrand.o mrprime.o mrcrt.o mrscrt.o mrmonty.o mrcurve.o mrzzn2.o mrzzn3.o
|
|
ar r miracl.a mrpower.o mrfast.o mrshs.o mrshs256.o mraes.o mrlucas.o mrstrong.o mrecn2.o
|
|
ar r miracl.a mrflash.o mrfrnd.o mrdouble.o mrround.o mrbuild.o
|
|
ar r miracl.a mrflsh1.o mrpi.o mrflsh2.o mrflsh3.o mrflsh4.o
|
|
ar r miracl.a mrbrick.o mrebrick.o mrgf2m.o mrec2m.o mrshs512.o mrmuldv.o
|
|
icc -I. -O3 factor.c miracl.a -lm -o factor
|
|
rm mr*.o
|
|
|
|
----------------------------------------------------
|
|
|
|
|