forked from ibphoenix/tomsfastmath
Realign mult generators with existing files in repo.
NB: fp_mul_comba32() is hand-optimized and has to be hand-crafted after re-generation
This commit is contained in:
parent
39b18f774c
commit
540e3ecbc1
6
src/generators/.gitignore
vendored
6
src/generators/.gitignore
vendored
@ -1,2 +1,8 @@
|
|||||||
|
comba_mult_gen
|
||||||
|
comba_mult_smallgen
|
||||||
comba_sqr_gen
|
comba_sqr_gen
|
||||||
comba_sqr_smallgen
|
comba_sqr_smallgen
|
||||||
|
comba_mult_gen.exe
|
||||||
|
comba_mult_smallgen.exe
|
||||||
|
comba_sqr_gen.exe
|
||||||
|
comba_sqr_smallgen.exe
|
||||||
|
@ -18,6 +18,10 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
/* print out preamble */
|
/* print out preamble */
|
||||||
printf(
|
printf(
|
||||||
|
"#define TFM_DEFINES\n"
|
||||||
|
"#include \"fp_mul_comba.c\"\n"
|
||||||
|
"\n"
|
||||||
|
"#ifdef TFM_MUL%d\n"
|
||||||
"void fp_mul_comba%d(fp_int *A, fp_int *B, fp_int *C)\n"
|
"void fp_mul_comba%d(fp_int *A, fp_int *B, fp_int *C)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" fp_digit c0, c1, c2, at[%d];\n"
|
" fp_digit c0, c1, c2, at[%d];\n"
|
||||||
@ -26,7 +30,7 @@ printf(
|
|||||||
" memcpy(at+%d, B->dp, %d * sizeof(fp_digit));\n"
|
" memcpy(at+%d, B->dp, %d * sizeof(fp_digit));\n"
|
||||||
" COMBA_START;\n"
|
" COMBA_START;\n"
|
||||||
"\n"
|
"\n"
|
||||||
" COMBA_CLEAR;\n", N, N+N, N, N, N);
|
" COMBA_CLEAR;\n", N, N, N+N, N, N, N);
|
||||||
|
|
||||||
/* now do the rows */
|
/* now do the rows */
|
||||||
for (x = 0; x < (N+N-1); x++) {
|
for (x = 0; x < (N+N-1); x++) {
|
||||||
@ -53,7 +57,11 @@ printf(
|
|||||||
" C->sign = A->sign ^ B->sign;\n"
|
" C->sign = A->sign ^ B->sign;\n"
|
||||||
" fp_clamp(C);\n"
|
" fp_clamp(C);\n"
|
||||||
" COMBA_FINI;\n"
|
" COMBA_FINI;\n"
|
||||||
"}\n\n\n", N+N-1, N+N);
|
"}\n#endif\n\n\n"
|
||||||
|
"/* $Source$ */\n"
|
||||||
|
"/* $Revision$ */\n"
|
||||||
|
"/* $Date$ */\n"
|
||||||
|
, N+N-1, N+N);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,10 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
/* print out preamble */
|
/* print out preamble */
|
||||||
printf(
|
printf(
|
||||||
|
"#define TFM_DEFINES\n"
|
||||||
|
"#include \"fp_mul_comba.c\"\n"
|
||||||
|
"\n"
|
||||||
|
"#if defined(TFM_SMALL_SET)\n"
|
||||||
"void fp_mul_comba_small(fp_int *A, fp_int *B, fp_int *C)\n"
|
"void fp_mul_comba_small(fp_int *A, fp_int *B, fp_int *C)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" fp_digit c0, c1, c2, at[32];\n"
|
" fp_digit c0, c1, c2, at[32];\n"
|
||||||
@ -51,7 +55,10 @@ printf(
|
|||||||
" COMBA_FINI;\n"
|
" COMBA_FINI;\n"
|
||||||
" break;\n", N+N-1, N+N);
|
" break;\n", N+N-1, N+N);
|
||||||
}
|
}
|
||||||
printf(" }\n}\n\n");
|
printf(" }\n}\n\n#endif\n\n\n"
|
||||||
|
"/* $Source$ */\n"
|
||||||
|
"/* $Revision$ */\n"
|
||||||
|
"/* $Date$ */\n");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1,15 +1,29 @@
|
|||||||
all: comba_sqr_gen comba_sqr_smallgen
|
all: comba_sqr_gen comba_sqr_smallgen
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
rm -f comba_mult_gen
|
||||||
|
rm -f comba_mult_gen.exe
|
||||||
|
rm -f comba_mult_smallgen
|
||||||
|
rm -f comba_mult_smallgen.exe
|
||||||
rm -f comba_sqr_gen
|
rm -f comba_sqr_gen
|
||||||
|
rm -f comba_sqr_gen.exe
|
||||||
rm -f comba_sqr_smallgen
|
rm -f comba_sqr_smallgen
|
||||||
|
rm -f comba_sqr_smallgen.exe
|
||||||
|
|
||||||
|
comba_mult_gen: comba_mult_gen.c
|
||||||
|
gcc -o comba_mult_gen comba_mult_gen.c
|
||||||
|
comba_mult_smallgen: comba_mult_smallgen.c
|
||||||
|
gcc -o comba_mult_smallgen comba_mult_smallgen.c
|
||||||
comba_sqr_gen: comba_sqr_gen.c
|
comba_sqr_gen: comba_sqr_gen.c
|
||||||
gcc -o comba_sqr_gen comba_sqr_gen.c
|
gcc -o comba_sqr_gen comba_sqr_gen.c
|
||||||
comba_sqr_smallgen: comba_sqr_smallgen.c
|
comba_sqr_smallgen: comba_sqr_smallgen.c
|
||||||
gcc -o comba_sqr_smallgen comba_sqr_smallgen.c
|
gcc -o comba_sqr_smallgen comba_sqr_smallgen.c
|
||||||
|
|
||||||
regen: comba_sqr_gen comba_sqr_smallgen
|
regen: comba_mult_gen comba_mult_smallgen comba_sqr_gen comba_sqr_smallgen
|
||||||
|
for i in 3 4 6 7 8 9 12 17 20 24 28 32 48 64; do \
|
||||||
|
./comba_mult_gen $$i | sed -e 's/ *$$//' > ../mul/fp_mul_comba_$$i.c; \
|
||||||
|
done
|
||||||
|
./comba_mult_smallgen > ../mul/fp_mul_comba_small_set.c
|
||||||
for i in 3 4 6 7 8 9 12 17 20 24 28 32 48 64; do \
|
for i in 3 4 6 7 8 9 12 17 20 24 28 32 48 64; do \
|
||||||
./comba_sqr_gen $$i | sed -e 's/ *$$//' > ../sqr/fp_sqr_comba_$$i.c; \
|
./comba_sqr_gen $$i | sed -e 's/ *$$//' > ../sqr/fp_sqr_comba_$$i.c; \
|
||||||
done
|
done
|
||||||
|
Loading…
Reference in New Issue
Block a user