Chris Fallin
5c1d728e3a
Merge pull request #2228 from akirilov-arm/vector_callee_saves
...
AArch64: Add test cases for callee-saved SIMD & FP registers
2020-10-01 17:08:33 -07:00
bjorn3
b061694491
Rustfmt and update docs
2020-10-01 09:53:23 +02:00
Nick Fitzgerald
81ce92b7ef
Add reminder to tag releases to publish script ( #2250 )
2020-09-30 17:37:29 -05:00
Chris Fallin
b8f0dc429f
Merge pull request #2223 from cfallin/baldrdash-2020
...
Support for SpiderMonkey's "Wasm ABI 2020" in general and on AArch64.
2020-09-30 15:33:05 -07:00
Chris Fallin
835db11bea
Support for SpiderMonkey's "Wasm ABI 2020".
...
As part of a Wasm JIT update, SpiderMonkey is changing its internal
WebAssembly function ABI. The new ABI's frame format includes "caller
TLS" and "callee TLS" slots. The details of where these come from are
not important; from Cranelift's point of view, the only relevant
requirement is that we have two on-stack args that are always present
(offsetting other on-stack args), and that we define special argument
purposes so that we can supply values for these slots.
Note that this adds a *new* ABI (a variant of the Baldrdash ABI) because
we do not want to tightly couple the landing of this PR to the landing
of the changes in SpiderMonkey; it's better if both the old and new
behavior remain available in Cranelift, so SpiderMonkey can continue to
vendor Cranelift even if it does not land (or backs out) the ABI change.
Furthermore, note that this needs to be a Cranelift-level change (i.e.
cannot be done purely from the translator environment implementation)
because the special TLS arguments must always go on the stack, which
would not otherwise happen with the usual argument-placement logic; and
there is no primitive to push a value directly in CLIF code (the notion
of a stack frame is a lower-level concept).
2020-09-30 14:55:56 -07:00
bjorn3
9ccf837092
Fix SimpleJIT tests
2020-09-30 19:58:12 +02:00
bjorn3
d84ca235d2
Remove Backend trait and turn Module into a trait
2020-09-30 19:52:57 +02:00
bjorn3
84c6ec3214
Move alignment config from declare_data to define_data
2020-09-30 19:23:23 +02:00
bjorn3
b44c5bb2be
Move ModuleDeclarations to backends
2020-09-30 18:33:29 +02:00
bjorn3
7a6e909efe
Move a bit more logic out of Module
2020-09-30 17:31:08 +02:00
bjorn3
c2ffcdc6d0
Move logic out of more Module methods
2020-09-30 17:12:33 +02:00
bjorn3
80f4ecf9b5
Move almost all logic out of Module
2020-09-30 16:50:24 +02:00
bjorn3
588a4be0b3
Store Compiled* in the backend instead of Module
2020-09-30 16:18:57 +02:00
Anton Kirilov
d18de69e5a
AArch64: Add test cases for callee-saved SIMD & FP registers
...
Copyright (c) 2020, Arm Limited.
2020-09-30 14:19:02 +01:00
bjorn3
405b9e2875
Remove finalize_* from the Backend trait
...
Instead let the `finish` method perform finalization
2020-09-30 14:20:39 +02:00
bjorn3
59f95083b1
Remove write_data_funcaddr and write_data_dataaddr
...
They are unimplemented by all backends
2020-09-30 13:59:26 +02:00
bjorn3
7608749647
Merge finalize_definitions into finish
2020-09-30 13:58:13 +02:00
bjorn3
4483c3740a
Remove get_finalized_*
2020-09-30 13:53:01 +02:00
bjorn3
7dcfb1b47b
Move some error checking out of the define_* functions
2020-09-30 12:40:26 +02:00
bjorn3
6161acfba5
Minor simplification
2020-09-30 12:33:26 +02:00
bjorn3
b1187b5507
Merge ModuleNamespace and ModuleContents
2020-09-30 12:29:22 +02:00
Alex Crichton
a04001211c
Add metadata to peepmatic crates ( #2245 )
2020-09-29 18:56:08 -05:00
Andrew Brown
4484a00ea5
[machinst x64]: calculate extension modes in one place
2020-09-29 14:48:59 -07:00
Joshua Warner
eb650f6fe0
filesystem example ( #2236 )
2020-09-29 13:20:14 -05:00
Andrew Brown
715be68101
[machinst x64]: assert lane is correct size for extractlane
...
This change applies a good suggestion @bjorn3 made in #2230 that I forgot to implement there.
2020-09-29 09:34:22 -07:00
Andrew Brown
b43f4a464a
refactor: move all 'filetests/vcode' tests to 'filetests/isa'
2020-09-29 09:27:39 -07:00
Andrew Brown
452d854855
[machinst x64]: demonstrate that packed register moves are elided
2020-09-29 08:48:37 -07:00
Andrew Brown
b7217d454f
[machinst x64]: add lane-related CLIF filetests
2020-09-29 08:45:12 -07:00
Andrew Brown
f50d905152
[machinst x64]: refactor using added RegMem::from(Writable<Reg>)
2020-09-29 08:45:12 -07:00
Andrew Brown
e3eb098c99
[machinst x64]: add swizzle implementation
2020-09-29 08:45:12 -07:00
Andrew Brown
050f078f86
[machinst x64]: add saturating addition implementation
2020-09-29 08:45:12 -07:00
Andrew Brown
a64abf9b76
[machinst x64]: add shuffle implementation
2020-09-29 08:45:12 -07:00
Andrew Brown
f4836f9ca9
[machinst x64]: add extractlane implementation
2020-09-29 08:45:12 -07:00
Andrew Brown
29fa894790
[machinst x64]: add insertlane implementation
2020-09-29 08:45:12 -07:00
zhiqiangxu
a8a6e4e69d
optimize get_wasmtime_signature ( #2243 )
2020-09-28 23:49:46 -05:00
Nick Fitzgerald
92d3261366
docs: Fix link to contributing sub-page
2020-09-28 13:16:42 -07:00
zhiqiangxu
0de5f7cf5c
rm useless code ( #2229 )
2020-09-26 00:49:56 -05:00
Pat Hickey
b10beeee01
dep gardening ( #2233 )
...
* wasmtime-profiling: latest object dep is 0.21.1
* latest gimli is 0.22
* bump cargo.lock
2020-09-26 00:49:28 -05:00
Joshua Warner
d947010181
Don't implicitly create empty files in VirtualDir::openat ( #2235 )
...
* Don't implicitly create empty files in VirtualDir::openat
* Add test
* Add note on how to run test-program tests to the README
2020-09-25 19:52:13 -07:00
Andrew Brown
48cf45491d
[machinst x64]: inform the register allocator of more types of packed moves
2020-09-25 18:59:01 -07:00
Benjamin Bouvier
4f7bec5e94
machinst x64: enable two more Rust tests;
...
Fixed by the grand ABI refactoring, h/t @cfallin.
2020-09-25 11:12:21 +02:00
Benjamin Bouvier
e2c286deeb
machinst x64: enable clif testing
...
This adds a new feature experimental_x64 for CLIF tests.
A test is run in the new x64 backend iff:
- either the test doesn't have an x86_64 target requirement, signaling
it must be target agnostic or not run on this target.
- or the test does require the x86_64 target, and the test is marked
with the `experimental_x64` feature.
This required one workaround in the parser. The reason is that the
parser will try to use information not provided by the TargetIsa adapter
for the Mach backends, like register names. In particular, parsing test
may fail before the test runner realizes that the test must not be run.
In this case, we early return an almost-empty TestFile from the parser,
under the same conditions as above, so that the caller may filter out
the test properly.
This also copies two tests from the test suite using the new backend,
for demonstration purposes.
2020-09-25 11:12:21 +02:00
Kam Y. Tse
5514c74b06
update golang example ( #2227 )
2020-09-24 19:25:03 -05:00
Andrew Brown
f8d397fd98
[machinst x64]: enable packed arithmetic spec tests
...
This change should finish off the implementation of packed arithmetic in the new backend.
2020-09-23 15:40:46 -07:00
Andrew Brown
ac2bf9d246
[machinst x64]: add packed min/max implementations
2020-09-23 15:40:46 -07:00
Andrew Brown
7546d98844
[machinst x64]: add avg_round implementation
2020-09-23 15:40:46 -07:00
Andrew Brown
b202464fa0
[machinst x64]: add iabs implementation
2020-09-23 15:40:46 -07:00
Alex Crichton
5e08eb3b83
Bump wasmtime to 0.20.0 ( #2222 )
...
At the same time bump cranelift crates to 0.67.0
2020-09-23 13:54:02 -05:00
Nikolay Volf
0ec2c12ab5
Log level to "debug!" in translate_from_reader ( #2221 )
...
Default logger floods the console otherwise:
```
Sep 22 22:41:02.525 INFO translate(181 bytes, u0:1353(i64 vmctx, i64, i32, i32) -> i32 system_v)
Sep 22 22:41:02.526 INFO translate(394 bytes, u0:1354(i64 vmctx, i64, i32) system_v)
Sep 22 22:41:02.527 INFO translate(16307 bytes, u0:944(i64 vmctx, i64, i32, i32, i32) system_v)
Sep 22 22:41:02.528 INFO translate(269 bytes, u0:382(i64 vmctx, i64, i32, i32) system_v)
Sep 22 22:41:02.528 INFO translate(220 bytes, u0:283(i64 vmctx, i64, i32, i32) system_v)
Sep 22 22:41:02.528 INFO translate(603 bytes, u0:383(i64 vmctx, i64, i32, i32) system_v)
Sep 22 22:41:02.528 INFO translate(1470 bytes, u0:284(i64 vmctx, i64, i32, i32) system_v)
Sep 22 22:41:02.529 INFO translate(189 bytes, u0:387(i64 vmctx, i64, i32, i32) -> i32 system_v)
Sep 22 22:41:02.529 INFO translate(14 bytes, u0:388(i64 vmctx, i64, i32, i32) system_v)
```
2020-09-23 17:06:53 +02:00
Benjamin Bouvier
b684384986
Reenable the new backend x64 CI;
...
The intermittent failure have likely been fixed by a recent round of
general fixes in the new x64 backend. This basically reverts
https://github.com/bytecodealliance/wasmtime/pull/2100 and uses the CI
script there.
2020-09-23 16:42:03 +02:00