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
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
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
9fe08c9341
Tidy up pointer casting to avoid casts that change mutability.
2019-01-08 10:31:58 -08:00
Dan Gohman
0a2b0ee9b0
Mmap API tidying.
...
Establish more clear expectations for who is expected to page-align what
and when.
2019-01-06 10:08:40 -08:00
Dan Gohman
0826e32c9a
Tidy up unnecessary return statements.
2019-01-05 16:23:04 -08:00
Dan Gohman
3143e22566
Move the creation of linear-memory guard pages into the mmap module.
...
Create linear-memory pages as PROT_NONE and then make them accessible on
demand.
2019-01-05 16:23:04 -08:00
Dan Gohman
3ac4269dc5
Add host_state() accessors to InstanceContents and VMContext too.
2019-01-04 17:24:14 -08:00
Dan Gohman
73b2c45313
Add a host_state field to Instance.
...
This allows hosts to embed arbitrary state along with instances.
2019-01-04 17:15:22 -08:00
Dan Gohman
3aef763046
Delete an unneeded comment.
2019-01-03 15:50:04 -08:00
Dan Gohman
6661228c86
Tidy up whitespace.
2019-01-03 14:44:30 -08:00
Dan Gohman
40acc1f340
Add crate version identifiers.
2019-01-03 14:16:48 -08:00
Dan Gohman
585bdac91e
Use vec![0; size] instead of creating an empty Vec and resizing.
2019-01-03 14:16:48 -08:00
Dan Gohman
a41bc1fe1e
Fix unused use warnings.
2019-01-03 14:16:48 -08:00
Dan Gohman
ca2fdc5ccb
Update no_std support.
...
This `no_std` support isn't complete though, as some dependencies
don't support it.
2019-01-03 14:16:48 -08:00
Dan Gohman
f6c2fe7d2d
Update to Rust 2018 Edition.
2019-01-03 12:58:11 -08:00
Dan Gohman
00a84672f7
Use Vec::with_capacity.
2019-01-03 12:37:14 -08:00
Dan Gohman
fdc66e130f
Eliminate unneeded casts.
2019-01-03 12:05:32 -08:00
Dan Gohman
39770ec72c
Minor code tidying.
2019-01-03 12:05:26 -08:00
Dan Gohman
701b1998e9
Avoid creating slices with null pointers.
2019-01-03 12:05:17 -08:00
Dan Gohman
8a5429ce74
Factor out functions for working with table and memory initializers.
2019-01-03 12:04:58 -08:00
Dan Gohman
2f04b78ecf
Use cast::usize rather than as usize to avoid silent overflow.
2019-01-03 12:04:24 -08:00
Dan Gohman
529de7ca60
Tidy up unneeded '&'s.
2019-01-03 12:03:52 -08:00
Dan Gohman
c66a3c23f3
Tidy up some documentation comments.
2019-01-03 12:03:43 -08:00
Dan Gohman
3ce2127bfa
Eliminate the intermediate "base" global variables.
2019-01-03 12:03:33 -08:00
Dan Gohman
3270369a69
Restructure VMContext to eliminate a level of indirection.
2019-01-03 12:02:35 -08:00
Dan Gohman
ff6776fe10
Refactor instance accessor routines.
...
This helps localize the unsafe code needed to access these fields.
2019-01-03 11:49:25 -08:00
Dan Gohman
482a054c75
Move the signature_ids field first.
2019-01-03 11:49:15 -08:00
Dan Gohman
087b5b4dff
Implement cross-instance indirect calls.
2019-01-03 11:48:53 -08:00
Dan Gohman
9d73123e3e
Reformat a comment to fit within 100 columns.
2019-01-03 11:48:34 -08:00
Dan Gohman
bec724b501
Whitespace tidying.
2019-01-03 11:48:26 -08:00
Dan Gohman
7592c99f3b
Refactor the compilation and instantiation pipeline.
...
wasmtime-execute is now wasmtime-jit. Move `JITCode` and the TargetIsa
into a new `Compiler` type. `InstancePlus` is no more, with trampoline
functionality now handled by `Compiler`.
2019-01-03 11:47:55 -08:00
Dan Gohman
71c0142cd4
Rename the address field of Table/Memory/Global exports to definition.
...
For functions, `address` makes sense because it's the address of the
function. Bt for Table/Memory/Global, it points to a `VM*Definition` field.
2018-12-24 18:20:15 -08:00
Dan Gohman
8f74c7f3d5
Add derive(Debug) to Export.
2018-12-24 18:14:00 -08:00
Dan Gohman
c4e10227de
Tidy up trap-handling code.
2018-12-19 15:14:30 -08:00
Dan Gohman
0c0ccc5d09
Add unsigned access methods to VMGlobalDefinition.
2018-12-13 15:50:58 -08:00
Dan Gohman
717f60bda1
Misc cleanups in the trap handling code.
2018-12-13 13:14:08 -08:00
Dan Gohman
26eb8131da
Avoid unnecessary clone() calls.
2018-12-13 09:13:04 -08:00
Dan Gohman
3f24098edc
Implement the remaining valid spec tests.
...
And lots of other miscellaneous changes. Rename InstanceWorld to
InstancePlus and reorganize its contents. This still isn't a great name,
but at least now it has a clear purpose.
2018-12-12 11:49:02 -08:00
Dan Gohman
56850d481d
Initial support for function, table, memory, and global imports.
2018-12-11 12:49:14 -08:00
Dan Gohman
548c45c604
Rename wasmtime-runtime to wasmtime-environ.
...
This mirrors changes in cranelift.
2018-08-03 15:20:19 -07:00
Dan Gohman
ef5254c0da
More code reorganization and cleanups.
2018-08-03 15:06:59 -07:00
Dan Gohman
33b7dfac00
Rename ptr_size.
2018-08-03 14:20:15 -07:00
Dan Gohman
831b481f13
More code reorganization.
2018-08-03 14:18:23 -07:00
Dan Gohman
6659ef7018
More code reorganization.
2018-08-03 13:35:25 -07:00
Dan Gohman
fdd3600f1b
Delete a redundant function.
2018-08-03 13:19:21 -07:00
Dan Gohman
0d8a69189c
Remove unused TableElement struct.
2018-08-03 13:15:31 -07:00