Commit graph

149 commits

Author SHA1 Message Date
Brian Carroll
2abae1b5e1
wasm_interp: Don't panic while pushing a stack frame 2022-12-06 20:31:50 +00:00
Brian Carroll
4cf5d19ace
wasm_interp: Fix bug where all arguments were being set as I32 2022-12-06 20:23:34 +00:00
Brian Carroll
1b126d3b58
wasm_interp: Don't panic when setting a local variable 2022-12-06 20:22:05 +00:00
Brian Carroll
9d912a6cc7
wasm_interp: don't panic when unwrapping Value 2022-12-06 20:19:25 +00:00
Brian Carroll
c7a75bf770
wasm_interp: comment to clarify the two CLI systems 2022-12-06 09:38:08 +00:00
Brian Carroll
df5baf4211
clippy 2022-12-06 09:02:59 +00:00
Brian Carroll
2dac57c2bb
wasm_interp: self-review fixes 2022-12-06 08:59:17 +00:00
Brian Carroll
dfbee7b916
wasm_interp: ensure WASI argv[0] is the .wasm executable 2022-12-06 08:59:17 +00:00
Brian Carroll
aa76634751
wasm_interp: implement WASI proc_exit 2022-12-06 08:59:17 +00:00
Brian Carroll
6820278672
wasm_interp: fix memory instructions (immediate arg for memory index) 2022-12-06 08:59:17 +00:00
Brian Carroll
b938e546b2
wasm_interp: In stack trace, last frame shouldn't show previous CALL address 2022-12-06 08:59:17 +00:00
Brian Carroll
0f5b7be945
wasm_interp: dump stack trace on unreachable instruction 2022-12-06 08:59:17 +00:00
Brian Carroll
513a346fe1
wasm_interp: end all function blocks on RETURN op 2022-12-06 08:59:08 +00:00
Brian Carroll
ad2973cd8d
wasm_interp: fix call_indirect immediates order 2022-12-06 08:59:08 +00:00
Brian Carroll
6d43763ab7
wasm_interp: dump a stack trace on error 2022-12-06 08:59:08 +00:00
Brian Carroll
5bdd1b5628
wasm_interp: use Result instead of panic. Focus debug info on *Wasm app*, not interp. 2022-12-06 08:59:08 +00:00
Brian Carroll
284dc6fa51
wasm_interp: support WASI argc/argv, and writing to stdout/stderr 2022-12-05 22:16:27 +00:00
Brian Carroll
736630b53f
wasm_interp: don't require -- before app arguments 2022-12-05 22:16:27 +00:00
Brian Carroll
c6e446da8d
wasm_interp: don't expose internal types 2022-12-02 08:02:27 +00:00
Brian Carroll
4714b4599a
wasm_interp: move test_utils into tests/mod.rs 2022-12-02 08:02:23 +00:00
Brian Carroll
ffd35f5884
wasm_interp: move tests inside the crate 2022-12-02 07:54:13 +00:00
Brian Carroll
42a15d07b3
wasm_interp: Just don't support non-function imports! I've never seen them anyway. 2022-12-02 07:47:49 +00:00
Brian Carroll
c38164ce8a
wasm_interp: cache import indices instead of signatures 2022-12-02 07:47:49 +00:00
Brian Carroll
0cf2f4f9e4
clippy 2022-12-01 21:56:59 +00:00
Brian Carroll
c866ce6b09
wasm_interp: Handle calls to imports 2022-12-01 20:41:38 +00:00
Brian Carroll
b10ac827f1
wasm_interp: simplified ImportDispatcher
We don't really need a trait for the 'import module' concept.
2022-12-01 08:47:32 +00:00
Brian Carroll
ec8950816a
wasm_interp: expose both call_export_from_cli and call_export (for library usage) 2022-11-30 23:20:58 +00:00
Brian Carroll
7ddff49691
wasm_interp: possible design for imports, using enum dispatch 2022-11-30 07:25:38 +00:00
Brian Carroll
d29ea7fedf
wasm_interp: last few instructions! 2022-11-29 08:59:37 +00:00
Brian Carroll
17810d5134
wasm_interp: float rounding ops 2022-11-29 08:43:56 +00:00
Brian Carroll
714586fac1
wasm_interp: f32 convert instructions 2022-11-29 08:06:18 +00:00
Brian Carroll
029f0d00c1
wasm_interp: truncate instructions 2022-11-29 08:06:18 +00:00
Brian Carroll
afa57a027b
wasm_interp: implement some number conversion ops 2022-11-28 23:28:08 +00:00
Brian Carroll
94ca352ed7
wasm_interp: 'reinterpret' instructions 2022-11-28 23:28:08 +00:00
Brian Carroll
f798f47edd
wasm_interp: move load and store tests to test_mem 2022-11-28 23:28:08 +00:00
Brian Carroll
1e114d6eef
wasm_interp: implement float neg and abs 2022-11-28 23:28:08 +00:00
Brian Carroll
284eeb5537
wasm_interp: Implement float ops that have int equivalents 2022-11-28 23:28:08 +00:00
Brian Carroll
fc10c520b1
wasm_interp: fix return type for i64 comparison ops 2022-11-28 23:28:08 +00:00
Brian Carroll
c2bf7d68fc
wasm_interp: rename ExecutionState -> Instance to match standard Wasm terminology 2022-11-28 23:28:08 +00:00
Brian Carroll
0dc3441301
wasm_interp: even more copy-and-pasting 2022-11-28 17:35:51 +00:00
Brian Carroll
ea9b53aff3
wasm_interp: more copy-and-pasting of i64 from i32 2022-11-28 17:17:25 +00:00
Brian Carroll
31a4ad62a7
wasm_interp: implement modulo for rotr and rotl 2022-11-28 17:15:56 +00:00
Brian Carroll
3881296fb4
wasm_interp: Implement lots of i64 ops by copy-pasting from i32 2022-11-28 17:10:28 +00:00
Brian Carroll
56ddd1f29b
wasm_interp: Add a comment and tests for modulo in shift ops 2022-11-28 17:04:45 +00:00
Brian Carroll
2e0dd18b82
wasm_interp: make test_op_example generate a valid wasm file and dump it 2022-11-28 08:58:09 +00:00
Brian Carroll
eeca876421
wasm_interp: create a test_utils module 2022-11-27 22:10:12 +00:00
Brian Carroll
e3df393a22
wasm_interp: use wrapping arithmetic 2022-11-27 22:07:31 +00:00
Brian Carroll
8e15d49720
wasm_interp: use Value::from in more places 2022-11-27 21:00:52 +00:00
Brian Carroll
78fbc75249
wasm_interp: neater creation of Value from unsigned integers 2022-11-27 20:53:12 +00:00
Brian Carroll
f7dcd8f421
wasm_interp: implement remaining i32 ops 2022-11-27 20:47:21 +00:00