Commit Graph

12 Commits

Author SHA1 Message Date
Lachlan Sneff
51cf9dde05 Move SSA value caches to the entry block.
The supporting framework around LLVM will make sure to only compute values once if they
are known to never change. Previously, these values were attempted to be reused from places where
the users may not dominate the creation of the value. To avoid that, they are always created
in the entry block now.
2019-03-03 21:13:37 -08:00
Lachlan Sneff
57bfa9b0a4 Remove multiple throwing functions, just use one. 2019-03-02 14:16:02 -08:00
Lachlan Sneff
9a90689b93 Add preliminary support for throwing and catching uncatchable exceptions.
Additional info:
- WebAssembly "traps" are uncatchable, but are still caught by the trampoline caller.
2019-03-02 12:57:35 -08:00
Lachlan Sneff
f0ac76517a Start running spectests
Additional info:
- Execution is turned off, this is just to make sure the backend can compile the entire specsuite.
- That being said, trampolines are implemented and protected call works (just doesn't protect).
2019-03-01 17:11:20 -08:00
Lachlan Sneff
3717c5720d Get control flow (at least according to the llvm verifier) working.
Next up:
- Importing vm intrinsics.
2019-03-01 15:48:43 -08:00
Lachlan Sneff
4f833876e0 Start work on object loader using llvm's RuntimeDyld api. 2019-02-25 18:08:06 -08:00
Lachlan Sneff
2a913f5663 Implement table, partial call_indirect 2019-02-22 17:34:55 -08:00
Lachlan Sneff
73b4f7d337 Implement memory and global operations 2019-02-14 18:08:20 -08:00
Lachlan Sneff
8827830aba implement load* and store* instructions 2019-02-14 15:13:58 -08:00
Lachlan Sneff
2572a0259b Get control flow working (fingers crossed) 2019-02-12 18:02:00 -08:00
Lachlan Sneff
5ee19e55a5 Add some branching instructions 2019-02-11 19:34:04 -08:00
Lachlan Sneff
327e3a4a1a Implement many wasm instructions 2019-02-09 15:53:40 -08:00