Commit Graph

322 Commits

Author SHA1 Message Date
f27d0a9bd7 Fix Sdinglepass f32_load and f64_load function, and introduce emit_bcond_label_far as direct bcond may not work all the time (for #2777) 2022-02-01 15:08:55 +01:00
4e27e1164c Release version 2.2.0-rc1 2022-01-27 23:59:27 +00:00
bff3c09875 Merge branch 'master' into singlepass_aarch64 2022-01-26 10:23:38 +01:00
a358e84741 x64: fix assert when calling a function 2022-01-24 20:37:28 +02:00
74779f5e80 Merge branch 'master' into singlepass_aarch64 2022-01-21 11:08:43 +01:00
ffb9cd33b9 Use trampolines for all libcalls in engine-universal and engine-dylib
In both of these engines, the compiled code may be loaded in memory far
from the Wasmer runtime which means that libcalls may not be reachable
through the normal relocation types. Instead a trampoline is needed to
allow reaching any address in the 64-bit address space.

In the case of engine-dylib, this is even worse since the symbols are
not exported by the executable without some special linker flags. The
solution here is to manually patch in the addresses at load time into
a data table of function pointers.
2022-01-20 11:47:20 +00:00
fb7a572415 Use exact version for Wasmer crate dependencies
We don't guarantee API compatibility between internal Wasmer crates when
making minor version bumps.
2022-01-19 21:35:09 +00:00
61609c9da3 improv(compiler) Added a few more arm64 emitter, just in case 2022-01-19 11:25:46 +01:00
80f9c8fed9 feat(compiler) Small adaption after comments 2022-01-17 09:14:26 +01:00
7f4fd02774 feat(compiler) Adapted/Fixed/Removed some comments in SinglePass codegen 2022-01-14 17:15:11 +01:00
c8ae8c8967 imp(feature) Fixed x64 backend of Singlepass 2022-01-14 17:15:11 +01:00
0e2d8097d0 imp(compiler) Add support for AppleAarch64 ABI to SinglePass 2022-01-14 17:15:11 +01:00
da1d96b66e improv(compiler) Fixed some mystakes (207 tests passes now, 0 failed) 2022-01-14 17:15:11 +01:00
77e65cdaf7 improv(compiler) Added float to int conversion, with trap (187 tests passes now) 2022-01-14 17:15:11 +01:00
9d188cb84f improv(compiler) Added canonicalization and rounding (182 tests passes now) 2022-01-14 17:15:11 +01:00
8f5a30a1a7 improv(compiler) More fixes (176 tests passes now) 2022-01-14 17:15:11 +01:00
4f938643d1 improv(compiler) More native call work and fixes (166 tests passes now) 2022-01-14 17:15:11 +01:00
0bbc81a5b8 improv(compiler) Oops, that was a mystake 2022-01-14 17:15:11 +01:00
8d066a13e8 improv(compiler) More float and native call work (133 tests passes now) 2022-01-14 17:15:11 +01:00
7cbf2fed1d improv(compiler) More logic and float operations, but no canonicalization yet (120 tests passes now) 2022-01-14 17:15:11 +01:00
7ce5475c03 improv(compiler) More work on SDIV, UDIV, UREM and SREM operations (109 tests passes now) 2022-01-14 17:15:11 +01:00
005351ba31 improv(compiler) Added SDIV, UDIV and UREM operations (105 tests passes now) 2022-01-14 17:15:11 +01:00
ddc17374c3 improv(compiler) Added CLZ, CTZ and a few float operations (99 tests passes now) 2022-01-14 17:15:11 +01:00
f23a137564 improv(compiler) More memory oprations (95 tests passes now) 2022-01-14 17:15:11 +01:00
6b593edf7b improv(compiler) More logic oprations (91 tests passes now) 2022-01-14 17:15:10 +01:00
7c2eac166a improv(compiler) Added/Fixed Store/Load of i32/i64 (74 tests passes now) 2022-01-14 17:15:10 +01:00
e9b80d48b6 improv(compiler) Added logic and shift operations (70 tests passes now) 2022-01-14 17:15:10 +01:00
962511d617 improv(compiler) Fixed stack alignment on native function call (69 tests passes now) 2022-01-14 17:15:10 +01:00
2f6264ac23 improv(compiler) Added emit_jmp_to_jumptable (68 tests passes now) 2022-01-14 17:15:10 +01:00
4a656640e2 improv(compiler) Fixed emit_mov_imm for 64bits values (67 tests passes now) 2022-01-14 17:15:10 +01:00
67e5f9c092 improv(compiler) Added emit_relaxed_ldr64 utility (65 tests passes now) 2022-01-14 17:15:10 +01:00
ae1925e957 improv(compiler) Cleaned up warnings 2022-01-14 17:15:10 +01:00
a57c422ad9 improv(compiler) Some ork on register affectation (60 tests passes now) 2022-01-14 17:15:10 +01:00
72eead3293 improv(compiler) Calls are now working properly (and 43 tests passes) 2022-01-14 17:15:10 +01:00
19a9fa74d5 improv(compiler) Added some more machine_arm64 and emitter_arm64 methods (now 30 tests pass) 2022-01-14 17:15:10 +01:00
900220826e improv(compiler) Added some machine_arm64 methods 2022-01-14 17:15:10 +01:00
26d334f4ac improv(compiler) Enabled aarch64 tests 2022-01-14 17:15:10 +01:00
69478cd575 improvement(compiler) Added squeleton for arm64 singlepass 2022-01-14 17:15:10 +01:00
d317e1ec91 Fixed linting 2022-01-14 17:15:10 +01:00
1e1032ef28 improvement(compiler) Added basic arm64 declaration for singlepass 2022-01-14 17:15:10 +01:00
ebcea4a5c4 Release v2.1.1 2021-12-21 12:19:50 +01:00
75e4cabe9b Merge #2727
2727: fix(compiler) Fix singlpass release_locations function r=Amanieu a=ptitSeb

# Description
Fix a mistake in singlepass refactor


Co-authored-by: ptitSeb <sebastien.chev@gmail.com>
2021-12-15 17:58:47 +00:00
a8b68bf8a7 fix(compiler) Fix singlpass release_locations function 2021-12-15 13:18:19 +01:00
3dda0d477f fix #2721, also adding the test in the regression test suite 2021-12-14 11:27:53 +01:00
1bb284a114 improvement(compiler) Removed commented test 2021-12-09 13:04:11 +01:00
d29c1c4035 improvement(compiler) Rename Emitter trait to EmitterX64 to avoid name collision with other archs 2021-12-09 12:07:29 +01:00
e03fe0dac6 improvement(compiler) disabled test_release_locations_keep_state_nopanic, the function are not part of Machine anymore 2021-12-08 11:53:31 +01:00
6fd9d132b6 improvement(compiler) renammed codeGen_x64 to CodeGen, now that it's archetecture independant 2021-12-08 11:06:04 +01:00
3e52f770b2 improvement(compiler) CodeGen now completly abstracted, using Machine trait only 2021-12-08 11:01:25 +01:00
7dea8773be improvement(compiler) Remove CombineRegister from CodeGen 2021-12-07 14:35:06 +01:00