Chris Fallin
4b6ebc0c27
Merge pull request #1999 from bnjbvr/fix-aarch64-ishl-by-zero
machinst aarch64: fix encoding generation of left-shift by 0
4 years ago
Chris Fallin
f4f5eed254
Merge pull request #1977 from jgouly/simd_shift
arm64: Implement SIMD shift instructions
4 years ago
Peter Huene
f48f9eb4b3
Merge pull request #2010 from whitequark/fix-windows-creat_trunc
WASI: make O_CREAT|O_TRUNC actually truncate files on Windows
4 years ago
Peter Huene
41b4721512
Add a test case for WASI file truncation.
4 years ago
Yury Delendik
b2551bb4d0
Make wasmtime_environ::Module serializable ( #2005 )
* Define WasmType/WasmFuncType in the Cranelift
* Make `Module` serializable
4 years ago
whitequark
92f33284b6
WASI: make O_CREAT|O_TRUNC actually truncate files on Windows
Fixes #2009 .
4 years ago
Jakub Konka
c3d385e935
Add link to C API docs in the guide ( #2006 )
4 years ago
Rochet2
0387169934
Allow android compilation ( #2002 )
4 years ago
Yury Delendik
c53b253261
Fix debug information relocation (when imports present) ( #1997 )
4 years ago
Benjamin Bouvier
f316bef763
machinst aarch64: fix encoding generation of left-shift by 0;
The ARM book says that the immr field should contain (-count % 64); the
existing code was approximating this with (64 - count), which is not
correct for a zero count.
4 years ago
Andrew Brown
5c35a9631c
Enable more SIMD spec tests
4 years ago
Andrew Brown
af39692d66
Translate Wasm's i32x4.trunc_sat_f32x4_u to Cranelift's fcvt_to_uint_sat.i32x4
4 years ago
Andrew Brown
c5a69cee9f
Add x86 legalization for fcvt_to_uint_sat.i32x4
This converts an `f32x4` into an `i32x4` (unsigned) with rounding by using a long sequence of SSE4.1 compatible instructions.
4 years ago
Yury Delendik
091373f9b8
Removes duplicate code in src/obj.rs, crates/obj and crates/jit/object.rs ( #1993 )
Changes:
- Moves object creation code from crates/jit/object.rs to the creates/obj (as ObjectBuilder)
- Removes legacy crates/obj/function.rs
- Removes write_debugsections
4 years ago
Nick Fitzgerald
2a4f72aeb7
Merge pull request #1991 from fitzgen/func-wrap-and-ref-types
Support reference types in `Func::wrap`
4 years ago
Nick Fitzgerald
62655cdbe7
wasmtime: Document support for `{extern,func}ref` in `Func::wrap`
4 years ago
Nick Fitzgerald
392bbadac7
wasmtime: Ensure that `Func::wrap`'d return values are compatible with the current store
4 years ago
Nick Fitzgerald
c2fc371e58
wasmtime: Expand `Func::{wrap,get}` tests to cover `{func,extern}ref` args/returns
4 years ago
Nick Fitzgerald
3e63774e99
wasmtime: Add support for `Option<Func>` args and returns in `Func::wrap`
4 years ago
Nick Fitzgerald
46ef80bf2f
wasmtime: Support `ExternRef`s in `Func::wrap`'d functions
Fixes #1868
4 years ago
Nick Fitzgerald
44e6fae29c
wasmtime: Modify `WasmTy` and `WasmRet` for future `{extern,func}ref` support
4 years ago
Yury Delendik
bef1b87be0
Write ELF image and instantiate code_memory from it ( #1931 )
- Create the ELF image from Compilation
- Create CodeMemory from the ELF image
- Link using ELF image
- Remove creation of GDB JIT images from crates/debug
- Move make_trampoline from compiler.rs
4 years ago
Gabor Greif
79f054f77f
Correct the files' directory index when downgrading DWARF5 -> 4 ( #1989 )
* correct the files' directory index when downgrading DWARF5 -> 4
4 years ago
Yury Delendik
9900641674
Support reference types in the DWARF transform ( #1986 )
4 years ago
Nick Fitzgerald
70cef0a433
fuzzing: Enforce a maximum input length for `peepmatic_compile` target ( #1985 )
This avoids timeouts from large inputs, like
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=23906
4 years ago
Peter Huene
d6ae72abe6
Merge pull request #1983 from peterhuene/fix-unwind-info
Remove 'set frame pointer' unwind code from Windows x64 unwind.
4 years ago
Peter Huene
92864baa1f
Fix module doc comment.
4 years ago
Peter Huene
b1c7c1401e
Fix incorrect scaling for SaveXmm128Far.
The `SaveXmm128Far` unwind op should have a 32-bit unscaled value.
The value was accidentally scaled down by 16 while calculating whether or not
the `SaveXmm128` or `SaveXmm128Far` unwind op should be used.
4 years ago
Nick Fitzgerald
62530e4d23
Merge pull request #1975 from MaxGraey/more-peephole-opts
peepmatic: add reminder by a power of two rule
4 years ago
MaxGraey
305659427d
changes according review
4 years ago
Nick Fitzgerald
22865769cb
Merge pull request #1984 from fitzgen/ref-types-in-rust-api
wasmtime: Support reference types in the Rust API
4 years ago
Peter Huene
b391817c0f
Add a test case for unwind with saved FPRs on Windows.
This commit adds a simple test case that reproduces the problem in
4 years ago
Peter Huene
3a33749404
Remove 'set frame pointer' unwind code from Windows x64 unwind.
This commit removes the "set frame pointer" unwind code and frame
pointer information from Windows x64 unwind information.
In Windows x64 unwind information, a "frame pointer" is actually the
*base address* of the static part of the local frame and would be at some
negative offset to RSP upon establishing the frame pointer.
Currently Cranelift uses a "traditional" notion of a frame pointer, one
that is the highest address in the local frame (i.e. pointing at the
previous frame pointer on the stack).
Windows x64 unwind doesn't describe such frame pointers and only needs
one described if the frame contains a dynamic stack allocation.
Fixes #1967 .
4 years ago
Nick Fitzgerald
a7c6433773
wasmtime: Support reference types in the Rust API
This is a mix of exposing new things (e.g. a `Table::fill` method) and extending
existing support to `externref`s (e.g. `Table::new`).
Part of #929
4 years ago
Dan Gohman
cf5289c553
Begin porting yanix to WASI.
This isn't complete yet, but subsequent steps will depend on Rust libstd
and libc bindings changes that are in flight.
4 years ago
Nick Fitzgerald
25397d0c15
Merge pull request #1982 from fitzgen/fuzz-reference-types
fuzzing: Enable reference types by default
4 years ago
Daiki Ueno
2ce2dd0203
wasmtime: add build-time option for parallel compilation ( #1903 )
When running in embedded environments, threads creation is sometimes
undesirable. This adds a feature to toggle wasmtime's internal thread
creation for parallel compilation.
4 years ago
Nick Fitzgerald
9b56203732
fuzzing: Enable reference types by default
Part of #929
4 years ago
Nick Fitzgerald
80ff22fd18
Merge pull request #1973 from fitzgen/table-fill
wasmtime: Implement `table.fill`
4 years ago
Graham Scheaffer
ef8fe18262
Updated region versions ( #1978 )
4 years ago
MaxGraey
2048278d2a
typo
4 years ago
Joey Gouly
3a67d25ed6
arm64: Implement SIMD shift instructions
Copyright (c) 2020, Arm Limited.
4 years ago
Davy Duperron
8d7ba0ad76
wasmtime: fix typo in summary
4 years ago
Benjamin Bouvier
9d5be00de4
Address review comments
- put the division in the synthetic instruction as well,
- put the branch table check in the inst's emission code,
- replace OneWayCondJmp by TrapIf vcode instruction,
- add comments describing code generated by the synthetic instructions
4 years ago
Benjamin Bouvier
2115e70acb
machinst x64: implement enough to support branch tables;
4 years ago
Benjamin Bouvier
f86ecdcb86
machinst x64: lower and implement div/idiv; ADD TESTS
4 years ago
Benjamin Bouvier
da30527368
machinst x64: implement one way conditional jmp
4 years ago
Benjamin Bouvier
9d1bcfb2e8
machinst x64: implement cmov
4 years ago
Benjamin Bouvier
bd88065571
machinst x64: lower binary ALU operators;
4 years ago
Benjamin Bouvier
faeed3c7a4
machinst x64: implement spills and reloads
4 years ago