Dan Gohman
3827bc7a04
Avoid struct name repetitions.
2019-02-26 08:54:36 -08:00
Dan Gohman
601057ec42
Tidy up a redundant field name.
2019-02-26 08:54:36 -08:00
Dan Gohman
d7dc36e752
Reorder the fields of Export::Function for consistency.
2019-02-26 08:54:36 -08:00
Dan Gohman
cadead6a86
Use code quotes around VMContext in comments.
2019-02-26 08:54:36 -08:00
Dan Gohman
3cc113482d
Rename InstanceContents to Instance.
2019-02-26 08:54:36 -08:00
Dan Gohman
5f201f6d73
Rename Instance to InstanceHandle.
2019-02-26 08:54:36 -08:00
Dan Gohman
21abecb158
Remove an unneeded mut.
2019-02-26 08:54:36 -08:00
Dan Gohman
077ee717a8
Make Instance a refcounting handle around InstanceContents.
2019-02-26 08:54:36 -08:00
Dan Gohman
a8cd5ef613
Refactor Instance's methods to just be wrappers around InstanceContents methods.
2019-02-26 08:54:36 -08:00
Dan Gohman
1ab9e17517
Move Instance's module field into InstanceContents.
2019-02-26 08:54:36 -08: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
Dan Gohman
c91ca1b10c
Reorganize ModuleEnvironment's contents to more closely reflect cranelift-wasm.
2019-02-21 20:41:36 -08:00
Dan Gohman
78f89f67a3
Update to Cranelift 0.28.0.
...
Also region 2.0.0 and bindgen 0.47.1.
2019-02-21 20:35:45 -08:00
Dan Gohman
2ac0ceda14
Update to faerie 0.7.1.
2019-02-21 20:28:15 -08:00
Dan Gohman
c7d0eb22d1
Update to wasmparser 0.29.2 and the latest spec_testsuite.
2019-02-21 20:25:00 -08: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
Dan Gohman
a94d3587e6
Add vmctx parameters to the spectest implementation functions.
...
This fixes a mismatch with the change to pass the VMContext parameter
as the first argument.
2019-02-06 06:12:53 -08:00
Dan Gohman
602e81a895
Minor code reorganization.
2019-02-01 18:20:59 -08:00
Dan Gohman
ddb8453b0d
Move wasmtime's instantiation test into a separate file.
2019-02-01 18:20:59 -08:00
Dan Gohman
72ee874986
Factor out a function for reading a wasm file.
2019-02-01 18:20:59 -08:00
Dan Gohman
8b140cc748
Create a Context class to group together various state objects.
2019-02-01 18:20:59 -08:00
Dan Gohman
4675948c2a
Switch to passing the vmctx hidden argument at the beginning.
...
This switches to passing the vmctx hidden argument at the beginning of
the argument list, rather than the end.
2019-02-01 18:20:28 -08:00
Jef
2fad984a0d
Shift and rotate
2019-01-30 11:06:32 +01:00
Yury Delendik
e66f01b923
Update cranelift libraries to 0.28.0
2019-01-29 16:45:41 -08:00
Joel Martin
fdcb2184a8
Support 32-bit build. ( #44 )
...
* Support 32-bit build.
Signatures/functions/imports/exports etc are defined as varuint32 in
the WebAssembly specification so use u32 rather than u64.
Decrease the static memory constants for 32-bit addressing mode so
that they fit within 32-bit memory constraints.
Conditionalize cmake compile of SignalHandlers.cpp so that -m32 is
passed when building 32-bit.
Add a no-op match for Reloc::X86CallPCRel4 during linking. This is
probably the wrong thing, but it allows the tests to pass. Using the
same logic from the Reloc::X86PCRel4 case did not work.
2019-01-24 13:40:25 -08:00
Dan Gohman
00a4e93bcd
Add a concept of "global exports".
...
This adds a feature which allows one to look up an export by name
without knowing what module it's in -- `lookup_global_export` on an
`InstanceContents`.
The main expected use for this is to support APIs where module A
imports a function from module B, and module B needs to access module
A's memory. B can't import it from A in the normal way, because that
would create a dependency cycle. So for now, allow B to look up A's
exported memory dynamically with `lookup_global_export`.
In the future, with reference types and possibly host bindings, we'll be
able to pass references to memory as arguments, which will obviate the
need for this mechanism.
2019-01-22 16:32:07 -08:00
Dan Gohman
dae04be948
Switch from hashmap_core to hashbrown.
...
As suggested
[here](https://github.com/Amanieu/hashmap_core/pull/10#issuecomment-455866083 ).
This also allows us to re-enable the basic compile fuzz target.
2019-01-22 13:41:04 -08:00
Dan Gohman
8769febdbd
Formest with latest stable rustfmt.
2019-01-20 10:42:50 -08: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
buckle2000
01ed463c7a
Change SignalHandlers.h to SignalHandlers.hpp
2019-01-14 21:30:25 -08:00
Jef
8312730377
Make calling functions safe
2019-01-14 18:45:14 +01:00