These steps are critical for completion in order to have wasm a full scope CPU target for FPC compiler
|Assembly (textual wasm)||working||Pick an assembler utility that's sequence instruction (FPC) friendly
FPC should produce a textual assembly file
|Linking||in progress||Pick an linker utility that's sequence instruction (FPC) friendly.
Linker is a moving target. As a new feature is added, the linking needs to be re-verified.
|Basic function calls and local variables||working||Implement direct function calls, with passing basic parameters (that don't require any memory. I.e. int and floats)|
|Verify float-point values||As the float points are being converted from the textual format. it's necessary to make sure that the proper values are generated|
|Global variables||working||Implement symbol reference to global variables (basic or complex)
Consider linking - as the index of symbols can change. (Wasm binaries are index based )
|Stack/Call frame support||working||WebAssembly doesn't have any native stack and/or frame support.
It has to be emulated using global and local variables.
Blocking issue: https://github.com/WebAssembly/wabt/issues/1199
|Indirect function calls||in progress||WebAssembly has a specific way of indirect calls
Needed for vmt and procedure variables (callback) calls
|VMT||Support for calls via virtual method table|
|RTL.(Ansi/Wide) String Manager||Not in scope|
Future improvements for wasm target. Those a nice to have, but not critical.
|Debug Info||There's very little debugging support in Wasm target at this point.
There's no defined debug info format available.
|Internal Writer||The binary wasm format is well defined and could be implemented within FPC|