Jef
a50f008f69
Remove misc tests from readme
2019-03-18 19:43:27 +01:00
Jef
d69bf1ac17
Remove misc tests from readme
2019-03-18 19:42:36 +01:00
Jef
4e48dad9b6
Add host calls
2019-03-18 19:41:36 +01:00
Jef
dc42a58277
Fix double-free'd registers in call_direct
2019-03-18 11:16:32 +01:00
Jef
a8a26b5948
Fix some float issues
2019-03-16 13:04:49 +01:00
Jef
4d537f703d
Fix copysign
2019-03-15 15:15:40 +01:00
Jef
e4260d1f6e
Add more float ops
2019-03-15 13:13:34 +01:00
Jef
938d7701d9
Add float equality
2019-03-15 12:23:12 +01:00
Jef
1eb419cdda
Implement memory.size/memory.grow, globals, call_indirect
2019-03-15 11:51:11 +01:00
Jef
a9ab1a1467
Add conversions, update tests in readme
2019-03-12 18:29:01 +01:00
Jef
cd85e867fe
Update README
2019-03-12 16:29:00 +01:00
Jef
2a8ca372e3
Update README
2019-03-12 16:28:25 +01:00
Jef
5ae789ab7b
Fix div and rem
2019-03-12 16:26:58 +01:00
Jef
e5852ea7ba
Update README
2019-03-07 14:04:03 +01:00
Jef
3f3de16bc4
Update README
2019-03-07 14:00:42 +01:00
Jef
45ccc591cd
Fix br_if and br_table
2019-03-07 13:21:04 +01:00
Jef
a4e878da75
Add more store instructions
2019-03-06 14:03:40 +01:00
Jef
e99417fb1c
Update readme
2019-03-04 14:29:34 +01:00
Jef
74d0e41762
Merge pull request #18 from Vurich/microwasm
...
Microwasm
2019-03-01 08:23:21 +00:00
Jef
0cfc917c97
Fix some ugliness
2019-03-01 08:15:42 +01:00
Jef
71662af0fa
Integer division
2019-02-28 18:09:22 +01:00
Jef
677d54e46d
Experimental br_table support
2019-02-27 17:59:27 +01:00
Jef
15bf933be7
Add more float operations
2019-02-27 11:29:23 +01:00
Jef
f726a8f36d
Add float operations
2019-02-25 15:35:45 +01:00
Jef
ab6b8e983a
Add floats
2019-02-25 11:17:21 +01:00
Jef
830644e7d0
Remove printlns, make pushing stack arguments work properly
2019-02-19 15:44:04 +01:00
Jef
f1d9ccb9e8
Implement Microwasm
2019-02-19 14:51:30 +01:00
Jef
680a8ed585
Add select
2019-02-08 13:24:59 +01:00
Jef
7788e6cb6b
Change wasmparser.rs upstream
2019-02-08 11:53:31 +01:00
Jef
7e5c3c567f
Signature checking for call_indirect, integrate with wasmtime
2019-02-08 11:46:25 +01:00
Jef
2fad984a0d
Shift and rotate
2019-01-30 11:06:32 +01:00
Jef
26cb8de303
Only generate a single trap to reduce code size and complexity in call_indirect
2019-01-18 16:59:29 +01:00
Jef
2c8efa32b8
Unnecessarily optimise asm_println
2019-01-18 14:03:23 +01:00
Jef
c7956dbdb2
Fail if we try to call past the end of the table
2019-01-18 14:01:12 +01:00
Jef
b6e29a899e
Add todo comments
2019-01-18 13:07:41 +01:00
Jef
b23e00893c
Fix saving volatile registers now that we use unused args as scratch
2019-01-18 13:04:53 +01:00
Jef
e57cec3b3f
Do call_indirect properly, by accessing the table section
2019-01-18 13:01:42 +01:00
Jef
d06be92a4e
Don't allocate context if it's unused
2019-01-17 14:34:34 +01:00
Jef
e0f032a0e5
clz/ctz/popcnt
2019-01-17 13:51:18 +01:00
Jef
74d168ec4b
Merge ends, store locals in registers where possible
2019-01-17 11:07:51 +01:00
Jef
a7fa7da7d4
Support a proper vmctx that contains more than just memory offset
2019-01-16 16:34:24 +01:00
Jef
d7434fe5d2
Have vmctx be the first argument so we (almost) never have to shuffle it around
2019-01-16 09:33:46 +01:00
Jef
b86d11e4ad
Avoid unnecessary work when passing arguments on
2019-01-15 17:24:30 +01:00
Jef
62fe065e85
Fix miscompilation for maliciously-crafted use of locals
2019-01-15 14:00:43 +01:00
Jef
45b2a5dae2
Merge remote-tracking branch 'forked/master' into loops
2019-01-15 12:59:55 +01:00
Jef
1b6952bb99
Implement vmctx as a hidden argument for cranelift compat
2019-01-15 12:27:55 +01:00
Jef
8312730377
Make calling functions safe
2019-01-14 18:45:14 +01:00
Jef
1eebc65c9e
First baby steps to supporting memory accesses
...
Currently we don't actually sandbox the memory at all, so you can do evil things
like read and write the host's memory. We also don't support growing memory or
cranelift-compatible ABI that passes the memory offset as an argument.
We also always immediately allocate the buffer when encountering a memory section,
there is preliminary support for translating a buffer which can then have the real
offset replaced using relocations (and returning a different type when doing so)
but I haven't written the code that actually does relocation so it doesn't work yet.
2019-01-11 15:20:32 +01:00
Jef
ddb4c0fd19
x64 sign-extends imm32 arguments, so don't truncate them in an unsigned way
2019-01-08 11:10:59 +01:00
Jef
010f2d8569
Fix comparisons, add more tests for binops
2019-01-08 09:45:39 +01:00