0f712c90ab
Don't allocate another register when it's safe to reuse dst.
2019-10-14 13:46:55 -07:00
b75e5c0c7c
When we know RDX is unavailable, use RAX instead. Should be fine here.
2019-10-14 13:46:55 -07:00
d6eba03a2f
Remove loc1/loc2. That intended refactoring didn't work out.
2019-10-14 13:46:55 -07:00
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
a525907c60
Emit state information for internal breakpoints.
2019-10-14 20:23:10 +08:00
5499a69ddc
Run cargo fmt on everything.
2019-10-13 20:02:47 +08:00
36f95fc660
Support emitting inline breakpoints in singlepass.
2019-10-11 21:05:42 +08:00
8ee4b7f7b0
Replace brk with undefined instruction.
2019-10-10 22:08:52 +08:00
ab76c2357f
Delete dead (commented out) code. NFC.
2019-10-02 16:31:11 -07:00
8e63d54fdb
cargo fmt
2019-10-02 16:31:11 -07:00
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