fizzy
fizzy copied to clipboard
Fizzy aims to be a fast, deterministic, and pedantic WebAssembly interpreter written in C++.
While due to Rosetta fizzy will just work on macOS, it would make sense considering supporting dual-binary builds with Apple Silicon. From https://developer.apple.com/documentation/apple_silicon/addressing_architectural_differences_in_your_macos_code:  But probably stdc++ hides this difference...
Public C API
- [x] Validate #530 - [x] returning error code/message #772 - [x] Parse #576 - [x] returning error code/message #772 - [x] Instantiate #576 - [x] Providing imports - [x]...
This is a PoC to get rid of extra dynamic allocation in C API for imported/exported functions at the expense of - some changes/complications in API (members added to `FizzyExternalFunction`,...
Instead of passing the reference to the call arguments (a span on the top of the stack) just pass the pointer to the stack end. Also, don't get the result...
With this change the `sp` is kept in a register, instead on the stack as previously. The code gets ~25% smaller. But still execution time is the same.