There are some functions that we never want to be (cross-language) inlined, and we expect to add more. Make it easier to add more, and make it easier to extend this capability to more C compilers.
Fiat Cryptography
The files in this directory are generated using Fiat Cryptography from the associated library of arithmetic-implementation templates. These files are included under the MIT license. (See LICENSE file.)
Some files are included directly from the fiat-c/src
directory of the Fiat
Cryptography repository. Their contents are #include
d into source files, so
we rename them to .h
. Implementations that use saturated arithmetic on 64-bit
words are further manually edited to use platform-appropriate incantations for
operations such as addition with carry; these changes are marked with "NOTE: edited after generation
".
CryptOpt
Files in the asm
directory are compiled from Fiat-Cryptography templates
using CryptOpt. These generated
assembly files have been edited to support call-stack unwinding. The modified
files have been checked for functional correctness using the CryptOpt
translation validator that is included in the Fiat-Cryptography repository.
Correct unwinding and manual assembler-directive changes related to object-file
conventions are validated using unit tests.