constantine/bindings_generators
Mamy Ratsimbazafy c6d9a213f2
Rework assembly to be compatible with LTO (#231)
* rework assembler register/mem and constraint declarations

* Introduce constraint UnmutatedPointerToWriteMem

* Create invidual memory cell operands

* [Assembly] fully support indirect memory addressing

* fix calling convention for exported procs

* Prepare for switch to intel syntax to avoid clang constant propagation asm symbol name interfering OR pointer+offset addressing

* use modifiers to prevent bad string mixin fo assembler to linker of propagated consts

* Assembly: switch to intel syntax

* with working memory operand - now works with LTO on both GCC and clang and constant folding

* use memory operand in more places

* remove some inline now that we have lto

* cleanup compiler config and benches

* tracer shouldn't force dependencies when unused

* fix cc on linux

* nimble fixes

* update README [skip CI]

* update MacOS CI with Homebrew Clang

* oops nimble bindings disappeared

* more nimble fixes

* fix sha256 exported symbol

* improve constraints on modular addition

* Add extra constraint to force reloading of pointer in reg inputs

* Fix LLVM gold linker running out of registers

* workaround MinGW64 GCC 12.2 bad codegen in t_pairing_cyclotomic_subgroup with LTO
2023-04-26 06:58:31 +02:00
..
README.md C API for Ethereum BLS signatures (#228) 2023-04-18 22:02:23 +02:00
constantine_bls12_381.nim C API for Ethereum BLS signatures (#228) 2023-04-18 22:02:23 +02:00
constantine_pasta.nim C API for Ethereum BLS signatures (#228) 2023-04-18 22:02:23 +02:00
gen_bindings.nim Rework assembly to be compatible with LTO (#231) 2023-04-26 06:58:31 +02:00
gen_header.nim C API for Ethereum BLS signatures (#228) 2023-04-18 22:02:23 +02:00

README.md

Bindings generator

This folder holds the bindings generators for Constantine.

To create a new build, download install the Nim programming language, navigate to Constantine's root folder and call nimble bindings.

Headers will be placed in "include" folder and static and dynamic libraries in "lib"