R2D2
b32b5cfa53
[feat]: Adding the plumbing necessary for the singlepass to choose between different simd instruction sets. Partial work on supporting SSE4.2
2022-01-30 10:55:26 +01:00
Simonas Kazlauskas
a358e84741
x64: fix assert when calling a function
2022-01-24 20:37:28 +02:00
Amanieu d'Antras
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
Amanieu d'Antras
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
Amanieu d'Antras
ebcea4a5c4
Release v2.1.1
2021-12-21 12:19:50 +01:00
bors[bot]
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
ptitSeb
a8b68bf8a7
fix(compiler) Fix singlpass release_locations function
2021-12-15 13:18:19 +01:00
ptitSeb
3dda0d477f
fix #2721 , also adding the test in the regression test suite
2021-12-14 11:27:53 +01:00
ptitSeb
1bb284a114
improvement(compiler) Removed commented test
2021-12-09 13:04:11 +01:00
ptitSeb
d29c1c4035
improvement(compiler) Rename Emitter trait to EmitterX64 to avoid name collision with other archs
2021-12-09 12:07:29 +01:00
ptitSeb
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
ptitSeb
6fd9d132b6
improvement(compiler) renammed codeGen_x64 to CodeGen, now that it's archetecture independant
2021-12-08 11:06:04 +01:00
ptitSeb
3e52f770b2
improvement(compiler) CodeGen now completly abstracted, using Machine trait only
2021-12-08 11:01:25 +01:00
ptitSeb
7dea8773be
improvement(compiler) Remove CombineRegister from CodeGen
2021-12-07 14:35:06 +01:00
ptitSeb
ab931de708
improvement(compiler) Remove last GPR:: direct access in codegen
2021-12-07 14:20:13 +01:00
ptitSeb
b315ed5a89
Fixed linting
2021-12-06 18:43:47 +01:00
ptitSeb
7771fabe69
improvement(compiler) Remove CombinedRegister from Machine
2021-12-06 17:59:14 +01:00
ptitSeb
517f81b302
improvement(compiler) More x86_64 speicific code removed from CodeGen
2021-12-06 15:38:07 +01:00
ptitSeb
5ed8fbfbcb
Fixed linting
2021-12-03 18:57:38 +01:00
ptitSeb
049a1f7d5c
improvement(compiler) Fixed some of the later refactoring of memory_op
2021-12-03 18:53:03 +01:00
ptitSeb
5164cb90d2
improvement(compiler) refactored non-atomic load and store Operator
2021-12-03 17:51:40 +01:00
ptitSeb
19691f6fc2
improvement(compiler) refactored atomic cmpxchg again
2021-12-03 17:51:40 +01:00
ptitSeb
6817a2df07
improvement(compiler) refactored atomic exchange again
2021-12-03 17:51:40 +01:00
ptitSeb
d39e7656ef
improvement(compiler) refactored atomic access again
2021-12-03 17:51:40 +01:00
ptitSeb
b100880348
improvement(compiler) fix test for machine_x86
2021-12-03 17:51:40 +01:00
ptitSeb
3c2e0ea09f
improvement(compiler) fix merge issues
2021-12-03 17:51:40 +01:00
ptitSeb
5660c0935d
improvement(compiler) abstraction of logic and math atomic operators
2021-12-03 17:51:40 +01:00
ptitSeb
d49bc4d9b6
improvement(compiler) abstraction of native calls
2021-12-03 17:51:40 +01:00
ptitSeb
dccc6bfa76
improvement(compiler) abstraction of remaining i64 Operators
2021-12-03 17:51:40 +01:00
ptitSeb
f1244acb2c
improvement(compiler) abstraction of remaining i32 Operators
2021-12-03 17:51:40 +01:00
ptitSeb
e430851b05
improvement(compiler) abstraction of F64/F32 add/sub/mul/div operators
2021-12-03 17:51:40 +01:00
ptitSeb
c247bf3533
improvement(compiler) abstraction of F32 min/max operators
2021-12-03 17:51:40 +01:00
ptitSeb
cf3eea1f91
improvement(compiler) abstraction of more F32/F64 comparaisons
2021-12-03 17:51:40 +01:00
ptitSeb
a60dda964c
improvement(compiler) abstraction of more F32/F64 coversion and operations...
2021-12-03 17:51:40 +01:00
ptitSeb
232a9c044b
improvement(compiler) abstraction of Operator I32Convert* and I64Convert*
2021-12-03 17:51:40 +01:00
ptitSeb
8b9535b21e
improvement(compiler) abstraction of Operator F32Convert*
2021-12-03 17:51:40 +01:00
ptitSeb
e84ba7a2c7
improvement(compiler) abstraction of Operator F64Convert*
2021-12-03 17:51:40 +01:00
ptitSeb
2b9918894c
improvement(compiler) abstraction of Operator Call
2021-12-03 17:51:40 +01:00
ptitSeb
9d751a7117
improvement(compiler) abstraction of Operator CallIndirect
2021-12-03 17:51:40 +01:00
ptitSeb
052351bc7a
improvement(compiler) abstraction of Operator Return, Br, BrIf and BrTable
2021-12-03 17:51:40 +01:00
ptitSeb
5ae9c0fdb9
improvement(compiler) abstraction of canonicalization and Operator::End
2021-12-03 17:51:40 +01:00
ptitSeb
0c0d4372ee
improvement(compiler) abstraction of relaxed move with zero or sign extension
2021-12-03 17:51:40 +01:00
ptitSeb
5b64a392e2
improvement(compiler) abstraction of atomic store (and a bunch of relaxed opcode too)
2021-12-03 17:51:40 +01:00
ptitSeb
3736eeaae8
improvement(compiler) abstraction of lock add/sub in codegen
2021-12-03 17:51:40 +01:00
ptitSeb
36f947c671
improvement(compiler) abstraction of lock + logic in codegen
2021-12-03 17:51:40 +01:00
ptitSeb
6a33200218
improvement(compiler) abstraction of emit_memory_op
2021-12-03 17:51:40 +01:00
ptitSeb
ace5d51eb5
improvement(compiler) More work on codegen abstraction (atomic xchg)
2021-12-03 17:51:40 +01:00
ptitSeb
443d16ab2b
improvement(compiler) More work on codegen abstraction (atomic cmpxchg)
2021-12-03 17:51:40 +01:00
ptitSeb
6c9be49ec9
improvement(compiler) start to make codegen independant from arch (WIP)
2021-12-03 17:51:40 +01:00
ptitSeb
633896e56e
improve(compiler) Abstracted Machine on SinglePass (still need more absatraction)
2021-12-03 17:51:40 +01:00