Commit Graph

172 Commits

Author SHA1 Message Date
83b678bc36 Give this function a better name. 2019-10-02 16:31:11 -07:00
11c5e0d71d Make the panics a bit more descriptive. 2019-10-02 16:31:11 -07:00
ba68cfc2c6 Finish atomic operations for singlepass, excluding wait and notify. 2019-10-02 16:31:11 -07:00
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
f021d59a0b Refactor out a compare-and-swap loop function. 2019-10-02 16:31:11 -07:00
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
6937019b65 Use a compare-and-swap loop for AND.
BUG: This might allocate RAX twice.
2019-10-02 16:31:10 -07:00
81895830f0 Add emitter for LOCK CMPXCHG so that we can emit compare-and-swap loops. 2019-10-02 16:31:10 -07:00
efc89e829d Add i32 rmw add and sub. 2019-10-02 16:31:10 -07:00
98f35ef84a Initial implementation of atomic load/store and i32 atomic rmw add. 2019-10-02 16:31:10 -07:00
b304317682 More mov variants. 2019-09-30 01:01:15 +08:00
89d8b5a41c Fixes for aarch64. 2019-09-28 17:31:10 +08:00
be181f9119 Correct this test and simplify. 2019-09-24 10:54:23 -07:00
07b5991080 No need to emit add of constant zero. 2019-09-23 15:01:19 -07:00
3dadbc15c9 Integer subset done. 2019-09-23 22:30:08 +08:00
a124d87d0f Fix Operator::MemorySize. 2019-09-19 01:10:23 +08:00
5f8b289751 movzx/movsx 2019-09-19 01:04:20 +08:00
8a91f801b9 Fix return from homomorphic host redirection trampoline. 2019-09-18 21:47:31 +08:00
72b6123def Fix memory grow 2019-09-18 02:38:35 +08:00
e40600533e Add missing emit_mov variants. 2019-09-18 02:30:45 +08:00
97b75d0124 Ensure callee-saved registers are properly preserved. 2019-09-18 02:21:35 +08:00
b57aba4ae7 Add homomorphic host redirection abstraction for vm->host calls. 2019-09-18 02:14:13 +08:00
d8b313e3fd Fix emit_lea. 2019-09-17 00:49:21 +08:00
00c2e09f43 fix CodeGen message type 2019-09-16 11:00:03 +02:00
33ba6768bc replace panics by CodeGen Error in codegen_x64 2019-09-16 09:56:41 +02:00
9b77677e4b Relax constraints a bit to compile on aarch64. 2019-09-15 18:23:42 +08:00
d3227f830c More instructions & aarch64 trampolines. 2019-09-15 17:57:40 +08:00
0387c3ff93 Turn this unreachable into a panic with an error message. 2019-09-13 14:44:54 -07:00
ce7c903c23 Add impl for more instructions for aarch64 translator. 2019-09-11 01:13:52 +08:00
4210715070 AArch64 translation module. 2019-09-07 01:32:21 +08:00
d8471e2b6a Improved docs with custom logo and favicon 2019-09-03 17:06:31 -07:00
9015b79091 Cargo fmt 2019-09-01 18:17:47 +08:00
45040650dd Fix the missing Copy trait error 2019-09-01 18:17:31 +08:00
bf9d915635 Fix a few issues from PR comments. 2019-08-21 14:53:33 -07:00
124ad73e8a Merge remote-tracking branch 'origin/master' into feature/llvm-osr 2019-08-19 13:06:59 -07:00
7b7f55306c Merge branch 'master' into feature/fix-singlepass-panic-no-functions 2019-08-17 00:34:06 -06:00
bccbbb3d8b Add deny nonstandard-style and unused-mut lints 2019-08-15 20:18:29 -06:00
afa0600701 Cargo fmt 2019-08-15 19:13:00 -07:00
6a24485999 Insert trampolines to preserve callee-saved registers for backends without register save area information. 2019-08-15 19:10:24 -07:00
98d3e04137 Fix unused mut warning 2019-08-15 20:09:51 -06:00
439e81d41e Fix singlepass error when no function code present 2019-08-15 10:15:58 -06:00
98ef9182d7 Run clang-format and cargo fmt 2019-08-14 16:35:40 -07:00
0e0573c73c Merge remote-tracking branch 'origin/master' into feature/llvm-osr 2019-08-14 16:33:26 -07:00
9cade2b441 singlepass: Skip patchpoint. 2019-08-10 03:10:32 +08:00
5a41686192 Fix bare_trait_objects warnings 2019-08-08 16:46:52 -06:00
c1619026d5 Swap code lazily when tiering up from singlepass to LLVM.
Does not handle long-running functions, but should work at least.
2019-08-09 04:26:17 +08:00
2f70a199e4 Add deny dead_code lint and fix one error 2019-08-01 20:46:35 -06:00
283676af2b Add .clone() to fix singlepass. 2019-07-30 22:25:37 +08:00
eeac6d5d2d Merge branch 'master' of github.com:wasmerio/wasmer into simd 2019-07-16 19:16:45 -07:00
ed19fd2913 Update loader-kernel feature name, fix compilation track state, cargo fmt 2019-07-12 23:02:57 -05:00