Dan Gohman
50a045363c
Add an explicit trap code for wasm unreachable.
2019-01-14 21:40:27 -08:00
bjorn3
2f0e0dd995
Really fix emit_small_memcpy this time!
2019-01-14 21:39:50 -08:00
bjorn3
3809e7252d
Remove outdated comment
...
cranelift-frontend now inserts libcalls for mem{cpy,set,move}
2019-01-14 21:39:00 -08: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
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
Dan Gohman
9fe08c9341
Tidy up pointer casting to avoid casts that change mutability.
2019-01-08 10:31:58 -08: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
Dan Gohman
a5bd3924e3
Add crate version identifiers.
2019-01-07 14:52:11 -08:00
Dan Gohman
9eba81a8d9
Update clippy settings and fix a few clippy warnings.
2019-01-07 14:48:02 -08:00
Dan Gohman
a7aee246e9
Pass declare_signature's argument by value.
...
`parse_type_section` doesn't need the value after passing it, and this
allows callees to avoid cloning if they need their own copy.
2019-01-07 13:42:00 -08:00
Dan Gohman
13138b65f7
Call the new ModuleEnvironment reserve functions.
2019-01-07 13:42:00 -08:00
Dan Gohman
6ec0b3c6bf
Add a comment.
2019-01-07 13:42:00 -08:00
Dan Gohman
7120633363
Change the elems parameter of declare_table_elements to a boxed slice.
...
Implementations that want a full `Vec` can use `into_vec` to convert it
back.
2019-01-07 13:42:00 -08:00
Dan Gohman
054e6fcf07
Add functions to ModuleEnvironment to support reserving buffers up front.
...
These default to doing nothing, but implementations can override them to
preallocate buffers.
Also, reorder the functions in `ModuleEnvironment` to more closely
reflect the sequence from the WebAssembly module layout.
2019-01-07 13:42:00 -08:00
Dan Gohman
7f250e340c
Simplify ModuleEnvironment.
...
Remove some unneeded functions, and remove the `GlobalInit` special case
for data and elem initializer offsets; implementations that want that
information can provide it for themselves.
2019-01-07 13:42:00 -08:00
Jef
fcd18746a7
Add 64-bit operations
2019-01-07 19:17:29 +01: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
e876f0fb1d
Add some Cargo.toml keywords.
2019-01-03 14:25:33 -08:00
Dan Gohman
35d7f78a11
Handle errors cleanly in the wast runner.
2019-01-03 14:16:48 -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
Benjamin Bouvier
03c22ed67a
Remove warnings in tests;
2019-01-03 12:14:39 -08:00
Benjamin Bouvier
c78a9a4a7c
Bump log and file-per-thread-logger;
2019-01-03 12:14:39 -08:00
Benjamin Bouvier
813810008b
Replace deprecated trim_left_matches by trim_start_matches;
2019-01-03 12:14:39 -08:00
Benjamin Bouvier
7e42966c68
Use snake case for magic numbers computation;
2019-01-03 12:13:25 -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
57e183f5f8
Use TablePlan::for_table and MemoryPlan::for_memory instead of manual code.
2019-01-03 12:05:07 -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
747dbb23e7
Add fuzz targets for module instantiation.
2019-01-03 12:04:48 -08:00
Dan Gohman
df7724ce2b
Update Cargo.toml authors fields.
2019-01-03 12:04:37 -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
3431122440
Update to bindgen 0.46.
2019-01-03 12:03:22 -08:00
Dan Gohman
1ae5c13b8c
Signature ID loads are readonly.
2019-01-03 12:03:14 -08:00