In order to support more elaborate optimizations for the underlying multi-precision arithmetic, it might help to introduce a simpler "generic assembly" precisely for this purpose. Rather than manipulating avo functions, this would instead be a small RTL (Register Transfer Language) with the smallest instruction set possible to implement routines like Montgomery Multiplication. Benefits:
Simpler to manipulate and analyze than avo.
Close to the machine, but still possible to generate other languages from, for example pure Go with math/bits intrinsics or even assembly for other architectures. #103
Consider applying SMT techniques and z3 to verify correctness. #99 #101
In order to support more elaborate optimizations for the underlying multi-precision arithmetic, it might help to introduce a simpler "generic assembly" precisely for this purpose. Rather than manipulating
avo
functions, this would instead be a small RTL (Register Transfer Language) with the smallest instruction set possible to implement routines like Montgomery Multiplication. Benefits:avo
.math/bits
intrinsics or even assembly for other architectures. #103z3
to verify correctness. #99 #101Related #46 #95 #49