losfair
001213716e
Add fneg.
2019-11-07 01:30:27 +08:00
losfair
6135a004a4
Add itruncf/fconverti fast path.
2019-11-07 01:11:25 +08:00
Ivan Enderlin
a4ba429ed0
feat(singlepass-backend) Inject FuncCtx
to the function pointer of an host function.
2019-11-06 14:48:46 +01:00
losfair
015491ea77
Add floating point instructions.
2019-11-06 01:43:41 +08:00
Ivan Enderlin
edb6cbefca
fix(runtime-core) Share the definition of Trampoline
across all the backends.
...
This patch updates all the backends to use the definition of
`Trampoline` as defined in the `wasmer_runtime_core::typed_func`
module. That way, there is no copy of that type, and as such, it is
easier to avoid regression (a simple `cargo check` does the job).
This patch also formats the `use` statements in the updated files.
2019-10-30 13:10:34 +01:00
Mark McCaskey
82f258b888
Prepare for 0.9.0 release
2019-10-23 13:40:35 -07:00
bors[bot]
77527c23ce
Merge #877
...
877: Reimplement F32Min, F32Max, F64Min and F64Max. r=nlewycky a=nlewycky
# Description
Reimplement F32Min, F32Max, F64Min and F64Max.
Adds XMM8--15 registers. Adds VMOVA, VBLEND and VXORP, and the VCMPUNORD and VCMPORD comparisons.
Fixes 419 test failures.
Co-authored-by: Nick Lewycky <nick@wasmer.io>
2019-10-22 17:33:44 +00:00
Ivan Enderlin
e559b54309
fix(singlepass-backend) Use wasmparser from runtime-core
.
...
The `wasmer-runtime-core` crate re-exports the `wasmparser`
crate. This patch updates the `singlepass-backend` crate to use
`wasmparser` through the `wasmer-runtime-core` crate, which removes a
direct dependency for this crate.
2019-10-18 11:22:40 +02:00
losfair
cd0b49e661
popcnt for aarch64.
2019-10-18 00:18:15 +08:00
losfair
a057296618
(S32, Imm64, GPR)
2019-10-17 23:45:58 +08:00
losfair
3f35a74b84
Two more mov variants.
2019-10-17 23:40:44 +08:00
losfair
4df7973639
Add mov variants.
2019-10-17 23:34:24 +08:00
losfair
00242cdd7f
Fix LEA simulation on aarch64.
2019-10-17 23:00:50 +08:00
losfair
d325635629
Increment aarch64 virtual stack size to 1MB.
2019-10-17 23:00:32 +08:00
Nick Lewycky
4e5d559ab5
Remove dead functions LZCNT and TZCNT.
2019-10-15 13:44:18 -07:00
Nick Lewycky
99f7499a05
Reimplement I32Ctz, I64Clz and I64Ctz without LZCNT or TZCNT.
2019-10-15 13:42:05 -07:00
Nick Lewycky
cafcfd3b50
cargo fmt
2019-10-15 13:07:44 -07:00
Nick Lewycky
cf3d2a830d
Reimplement I32Clz without relying on LZCNT.
2019-10-15 12:50:59 -07:00
losfair
3de0c7763f
Skip inline non-instruction data.
2019-10-15 22:12:08 +08:00
losfair
81d538ade2
Fix disp < 0 case.
2019-10-15 22:00:33 +08:00
losfair
ee88c459e5
Allow arbitrary size of disp
.
2019-10-15 21:55:04 +08:00
Nick Lewycky
26a4f073f0
Implement F64Min and F64Max.
2019-10-14 14:15:18 -07:00
Nick Lewycky
06ffb00deb
Reimplement F32Max.
2019-10-14 14:07:30 -07:00
Nick Lewycky
b886a41a85
Use temp_gprs instead of hard-coding RAX/RDX.
2019-10-14 13:53:30 -07:00
Nick Lewycky
5cee23455d
Release the registers we acquire. Reformat.
2019-10-14 13:51:03 -07:00
Nick Lewycky
336dab7fd9
Don't use utility functions in F32Min implementation.
2019-10-14 13:46:55 -07:00
Nick Lewycky
765e1d3b9e
Add XMM8--XMM15. These were added in x64.
2019-10-14 13:46:55 -07:00
Nick Lewycky
4b89e01806
Remove commented-out code that I added so as to not lose its history in git. Apply trivial cleanups and reformat.
...
Remove expected test failure entries that are fixed so far.
2019-10-14 13:46:55 -07:00
Nick Lewycky
963148fdce
Fix F32Min for all cases including NaNs.
2019-10-14 13:46:55 -07:00
Nick Lewycky
8b937afc1f
Add comments to indicate the implemention we'd like to have, but can't right now.
2019-10-14 13:46:55 -07:00
Nick Lewycky
0f712c90ab
Don't allocate another register when it's safe to reuse dst.
2019-10-14 13:46:55 -07:00
Nick Lewycky
b75e5c0c7c
When we know RDX is unavailable, use RAX instead. Should be fine here.
2019-10-14 13:46:55 -07:00
Nick Lewycky
d6eba03a2f
Remove loc1/loc2. That intended refactoring didn't work out.
2019-10-14 13:46:55 -07:00
Nick Lewycky
555d933057
Initial commit, reimplementation of F32Min. Fixes F32Min(negative_zero, zero) issue.
...
Also removes some previously-fixed i32 and i64 exclusions from the tests.
2019-10-14 13:46:55 -07:00
losfair
a525907c60
Emit state information for internal breakpoints.
2019-10-14 20:23:10 +08:00
losfair
5499a69ddc
Run cargo fmt on everything.
2019-10-13 20:02:47 +08:00
losfair
36f95fc660
Support emitting inline breakpoints in singlepass.
2019-10-11 21:05:42 +08:00
losfair
8ee4b7f7b0
Replace brk with undefined instruction.
2019-10-10 22:08:52 +08:00
nlewycky
f63c706abc
Merge branch 'master' into feature/singlepass-atomicops
2019-10-02 16:46:59 -07:00
Nick Lewycky
ab76c2357f
Delete dead (commented out) code. NFC.
2019-10-02 16:31:11 -07:00
Nick Lewycky
8e63d54fdb
cargo fmt
2019-10-02 16:31:11 -07:00
Nick Lewycky
83b678bc36
Give this function a better name.
2019-10-02 16:31:11 -07:00
Nick Lewycky
11c5e0d71d
Make the panics a bit more descriptive.
2019-10-02 16:31:11 -07:00
Nick Lewycky
ba68cfc2c6
Finish atomic operations for singlepass, excluding wait and notify.
2019-10-02 16:31:11 -07:00
Nick Lewycky
bc7e017188
Add atomic.rmw operations, excluding xchg and cmpxchg.
...
Sizes are now ordered, to facilitate an assertion that one size is less (smaller) than another.
panic! error messages are provided for remaining emitter functions.
2019-10-02 16:31:11 -07:00
Nick Lewycky
f021d59a0b
Refactor out a compare-and-swap loop function.
2019-10-02 16:31:11 -07:00
Nick Lewycky
cd1d06f5a5
Initial working implementation of I32AtomicRmwAnd!
...
Adds the ability to reserve a specific temp-gpr register. Needed for CMPXCHG which always uses RAX.
2019-10-02 16:31:11 -07:00
Nick Lewycky
6937019b65
Use a compare-and-swap loop for AND.
...
BUG: This might allocate RAX twice.
2019-10-02 16:31:10 -07:00
Nick Lewycky
81895830f0
Add emitter for LOCK CMPXCHG so that we can emit compare-and-swap loops.
2019-10-02 16:31:10 -07:00
Nick Lewycky
efc89e829d
Add i32 rmw add and sub.
2019-10-02 16:31:10 -07:00
Nick Lewycky
98f35ef84a
Initial implementation of atomic load/store and i32 atomic rmw add.
2019-10-02 16:31:10 -07:00
Mark McCaskey
c77cbc1f40
Prepare for 0.8.0 release
2019-10-02 15:40:35 -07:00
Jordan Danford
9be72e6808
Fix some other files too
2019-09-30 22:50:04 -07:00
losfair
b304317682
More mov variants.
2019-09-30 01:01:15 +08:00
Heyang Zhou
dfb8989280
Merge branch 'master' into nlewycky/singlepass-add-zero
2019-09-29 12:52:26 +08:00
losfair
89d8b5a41c
Fixes for aarch64.
2019-09-28 17:31:10 +08:00
Brandon Fish
c69cdeca9b
Update cranelift backend to fork version 0.44.0
2019-09-25 23:37:39 -05:00
nlewycky
392a61ff12
Merge branch 'master' into nlewycky/singlepass-add-zero
2019-09-24 13:58:27 -07:00
Syrus
7bf306eb27
Use flat-square style in downloads button
2019-09-24 13:42:17 -07:00
Syrus
621ef56ab6
lmproved READMEs to use Azure Pipelines badges and better lgo
2019-09-24 13:36:31 -07:00
Nick Lewycky
be181f9119
Correct this test and simplify.
2019-09-24 10:54:23 -07:00
Nick Lewycky
07b5991080
No need to emit add of constant zero.
2019-09-23 15:01:19 -07:00
losfair
3dadbc15c9
Integer subset done.
2019-09-23 22:30:08 +08:00
Brandon Fish
a1a88c6eb8
Use the default features for wasmparser
2019-09-21 13:59:08 -05:00
Brandon Fish
f48d6f6690
Cranelift backend update to fork of clif version 0.43.1
2019-09-21 13:06:54 -05:00
Mark McCaskey
bf396ec76d
Remove patch version in deps when not necessary
2019-09-20 16:11:09 -07:00
losfair
a124d87d0f
Fix Operator::MemorySize.
2019-09-19 01:10:23 +08:00
losfair
5f8b289751
movzx/movsx
2019-09-19 01:04:20 +08:00
losfair
8a91f801b9
Fix return from homomorphic host redirection trampoline.
2019-09-18 21:47:31 +08:00
losfair
72b6123def
Fix memory grow
2019-09-18 02:38:35 +08:00
losfair
e40600533e
Add missing emit_mov
variants.
2019-09-18 02:30:45 +08:00
losfair
97b75d0124
Ensure callee-saved registers are properly preserved.
2019-09-18 02:21:35 +08:00
losfair
b57aba4ae7
Add homomorphic host redirection abstraction for vm->host calls.
2019-09-18 02:14:13 +08:00
Johan Andersson
ba488adb8f
Merge branch 'master' into remove-colored
2019-09-16 22:17:34 +02:00
losfair
d8b313e3fd
Fix emit_lea.
2019-09-17 00:49:21 +08:00
losfair
05557fc9ad
Bump dynasm to v0.5.1
2019-09-16 23:46:10 +08:00
Patrick Ventuzelo
00c2e09f43
fix CodeGen message type
2019-09-16 11:00:03 +02:00
Patrick Ventuzelo
33ba6768bc
replace panics by CodeGen Error in codegen_x64
2019-09-16 09:56:41 +02:00
losfair
9b77677e4b
Relax constraints a bit to compile on aarch64.
2019-09-15 18:23:42 +08:00
losfair
d3227f830c
More instructions & aarch64 trampolines.
2019-09-15 17:57:40 +08:00
Johan Andersson
ad70caff83
Remove colored CLI output from runtime-core lib.
...
When the colored output was originally added in https://github.com/wasmerio/wasmer/pull/489 and there was a discussion then about that it should ideally be in a higher-level crate rather than in the runtime-core library crate.
I agree with that, users of the library shouldn't be required to bring in the colored crate dependency and ideally also not have stdout/stderr output either, that should be controlled by the application that uses wasmer-runtime-core, not the library.
Disabling stdout/stderr output would be more intrusive but I wanted to at least not have colored output and another crate dependency so this change removes the colored output and the "colored" crate.
2019-09-15 03:21:04 +02:00
Nick Lewycky
0387c3ff93
Turn this unreachable into a panic with an error message.
2019-09-13 14:44:54 -07:00
Mark McCaskey
0f4d266e4e
Prepare for 0.7.0 release
2019-09-12 12:44:38 -07:00
losfair
ce7c903c23
Add impl for more instructions for aarch64 translator.
2019-09-11 01:13:52 +08:00
dependabot-preview[bot]
009bb67686
Bump lazy_static from 1.3.0 to 1.4.0
...
Bumps [lazy_static](https://github.com/rust-lang-nursery/lazy-static.rs ) from 1.3.0 to 1.4.0.
- [Release notes](https://github.com/rust-lang-nursery/lazy-static.rs/releases )
- [Commits](https://github.com/rust-lang-nursery/lazy-static.rs/compare/1.3.0...1.4.0 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-09 23:02:16 +00:00
losfair
4210715070
AArch64 translation module.
2019-09-07 01:32:21 +08:00
Syrus
d8471e2b6a
Improved docs with custom logo and favicon
2019-09-03 17:06:31 -07:00
losfair
9015b79091
Cargo fmt
2019-09-01 18:17:47 +08:00
losfair
45040650dd
Fix the missing Copy trait error
2019-09-01 18:17:31 +08:00
losfair
86814a1920
Merge remote-tracking branch 'origin/master' into feature/llvm-osr
2019-08-22 10:47:39 -07:00
dependabot-preview[bot]
5d4b78e880
Bump nix from 0.14.1 to 0.15.0
...
Bumps [nix](https://github.com/nix-rust/nix ) from 0.14.1 to 0.15.0.
- [Release notes](https://github.com/nix-rust/nix/releases )
- [Changelog](https://github.com/nix-rust/nix/blob/master/CHANGELOG.md )
- [Commits](https://github.com/nix-rust/nix/commits )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-21 22:36:56 +00:00
losfair
bf9d915635
Fix a few issues from PR comments.
2019-08-21 14:53:33 -07:00
losfair
124ad73e8a
Merge remote-tracking branch 'origin/master' into feature/llvm-osr
2019-08-19 13:06:59 -07:00
Brandon Fish
7b7f55306c
Merge branch 'master' into feature/fix-singlepass-panic-no-functions
2019-08-17 00:34:06 -06:00
Brandon Fish
bccbbb3d8b
Add deny nonstandard-style and unused-mut lints
2019-08-15 20:18:29 -06:00
losfair
afa0600701
Cargo fmt
2019-08-15 19:13:00 -07:00
losfair
6a24485999
Insert trampolines to preserve callee-saved registers for backends without register save area information.
2019-08-15 19:10:24 -07:00
Brandon Fish
98d3e04137
Fix unused mut warning
2019-08-15 20:09:51 -06:00
Brandon Fish
439e81d41e
Fix singlepass error when no function code present
2019-08-15 10:15:58 -06:00
losfair
98ef9182d7
Run clang-format and cargo fmt
2019-08-14 16:35:40 -07:00