2985 Commits

Author SHA1 Message Date
Ivan Enderlin
f3be7981d2 test(interface-types) Test negative pointer or length in string.lift_memory. 2020-03-26 08:30:32 +01:00
Ivan Enderlin
86b545fd49 fix(interface-types) Avoid integer overflows in string instructions. 2020-03-26 08:27:51 +01:00
Ivan Enderlin
0e70e538cc fix(interface-types) Instruction::CallCore.function_index is a u32. 2020-03-26 07:53:44 +01:00
Ivan Enderlin
b0879d1d12 fix(interface-types) Cast index to usize to compare index to length.
The index is bound to `u32::max_value()`. The invocation inputs'
length is bound to `usize::max_value()`, which can be
`u64::max_value`. Consequently, casting the invocation inputs' length
to `u32` can lead to an integer overflow. It is better to cast `index`
to `usize` when comparing with the invocation inputs' length.
2020-03-26 07:46:59 +01:00
Ivan Enderlin
ffe7f765a2 doc(interface-types) Add strign.size in the list of supported instructions. 2020-03-24 15:35:01 +01:00
Ivan Enderlin
38f62392ff feat(interface-types) Implement the string.size instruction. 2020-03-24 15:33:42 +01:00
Ivan Enderlin
daef7b0bfd feat(interface-types) Add the Stackable::peek1 method.
This method allows to peek the last item on the stack (if any) by
reference.
2020-03-24 15:32:54 +01:00
Ivan Enderlin
7f2273b32b doc(interface-types) Add string.* instructions. 2020-03-24 13:29:38 +01:00
Ivan Enderlin
ec7aebe7e1 feat(interface-types) Implement the string.(lift|lower)_memory instructions.
The `string.lift_memory` instruction replaces `memory-to-string`, and
`string.lower_memory` replaces `string-to-memory`.
2020-03-24 13:25:06 +01:00
Ivan Enderlin
afbeb5d230 feat(interface-types) Rename lowering_lifting module to numbers. 2020-03-24 13:10:21 +01:00
Ivan Enderlin
6fcd45bce3 doc(interface-types) Add links to WIT instructions. 2020-03-24 12:48:33 +01:00
Ivan Enderlin
cd58af2633 doc(interface-types) Update supported instructions. 2020-03-24 12:47:39 +01:00
Ivan Enderlin
50201a5e0b feat(interface-types) Implement [siu](NN|MM).from_* instructions.
Basically the `x-to-y` instructions have been renamed `y.from_x`. This
patch updates the instruction. The binary representation isn't
specified yet, so it's just arbitrary values.
2020-03-24 12:43:57 +01:00
Ivan Enderlin
a1f0a556e5 fix(interface-types) Use same stack order than Wasm invocation rule. 2020-03-23 14:34:57 +01:00
Ivan Enderlin
693b210638 fix(interface-types) Stack pops items in the same order than Wasm invocation rule. 2020-03-23 14:32:26 +01:00
bors[bot]
704c34283f
Merge #1320
1320: Support multiple custom sections with the same name r=MarkMcCaskey a=MarkMcCaskey

The spec doesn't disallow duplicates and the [JS API spec](https://webassembly.github.io/spec/js-api/index.html#dom-module-customsections) supports them.

# Review

- [ ] Add a short description of the the change to the CHANGELOG.md file


Co-authored-by: Mark McCaskey <mark@wasmer.io>
2020-03-21 00:15:24 +00:00
nlewycky
30afd145e0
Merge branch 'master' into feature/llvm-mcg-no-builder 2020-03-20 12:27:48 -07:00
Nick Lewycky
f7d4f855a3 inkwell::Builder is a per-function notion, remove it from LLVMModuleCodeGenerator.
This also removes it from the API to generate trampolines, which makes sense because those produce new functions, so it can produce a new builder for the new function.
2020-03-20 12:26:15 -07:00
Mark McCaskey
248e06146a Support multiple custom sections with the same name 2020-03-20 11:27:23 -07:00
Heyang Zhou
d1e8674f8d
Merge branch 'master' into feature/singlepass-nan-cncl 2020-03-19 12:05:57 +08:00
Jake Shadle
19ffd8ebb9 Fix warning (from clang) 2020-03-18 20:07:12 +01:00
Jake Shadle
9e389b9a5f Fix cross compilation
cfg!()/env!() are applied on the host platform during the build script's
build, the environment of the build script's execution is the proper way
to determine eg target_os
2020-03-18 20:06:55 +01:00
Jake Shadle
4de7deb568 Replace cmake with cc 2020-03-18 20:05:05 +01:00
losfair
c25ba627df Add comment for call argument list preprocessing. 2020-03-18 23:41:10 +08:00
losfair
8485ccc88c Update comment for nan_canonicalization. 2020-03-18 01:48:27 +08:00
losfair
29a431cfc7 Remove 4 spectest excludes that are no longer needed. 2020-03-18 01:43:05 +08:00
losfair
a9cd6d6814 Add aarch64 NaN canonicalization spectest excludes. 2020-03-18 01:16:18 +08:00
losfair
ea0cd7286e Cargo fmt 2020-03-18 01:03:55 +08:00
losfair
3a18b70d31 Merge remote-tracking branch 'origin/feature/singlepass-nan-cncl' into feature/singlepass-nan-cncl 2020-03-18 01:03:30 +08:00
losfair
86dde8cab2 Add missing movs. 2020-03-18 01:02:59 +08:00
Heyang Zhou
bfc3b8292c
Apply suggestions from code review
Co-Authored-By: nlewycky <nick@wasmer.io>
2020-03-18 00:58:50 +08:00
losfair
8e92e3208a Disable canonicalization for aarch64. 2020-03-18 00:47:52 +08:00
losfair
5e40be48a1 Merge remote-tracking branch 'origin/master' into feature/singlepass-nan-cncl 2020-03-18 00:43:52 +08:00
losfair
72bc9f6531 Add call canonicalization tests. 2020-03-18 00:42:19 +08:00
losfair
1d9f0c53e1 Style fixes and fix missing canonicalization at function call. 2020-03-18 00:42:10 +08:00
Heyang Zhou
5331a1c2e4
Merge branch 'master' into fix/dynamicfunc-panic 2020-03-17 19:02:20 +08:00
losfair
1ddf3a1c4e Add mem/local NaN tests. 2020-03-17 14:13:31 +08:00
losfair
e0538d32fa Remove clif spectest excludes. 2020-03-17 13:52:42 +08:00
losfair
4357c15046 Fix missing canonicalizations. 2020-03-17 13:52:11 +08:00
losfair
3ee7f43b1c Enable nan canonicalization for cranelift backend. 2020-03-17 13:09:22 +08:00
bors[bot]
c177c44aa2
Merge #1310
1310: upgrade the blake3 dependency to 0.2 r=MarkMcCaskey a=oconnor663

Version 0.2 makes assembly implementations available. They're off by default, and I haven't enabled them here, because they require the build machine to have a C toolchain installed. But if that's already a requirement for Wasmer, we could enable them with the `"c"` feature, for both better runtime performance and faster build times.

Co-authored-by: Jack O'Connor <oconnor663@gmail.com>
2020-03-16 21:49:54 +00:00
bors[bot]
de0578441b
Merge #1307
1307: Add FreeBSD specific failure excludes. r=MarkMcCaskey a=MikaelUrankar

These tests doesn't pass on FreeBSD amd64

Co-authored-by: MikaelUrankar <mikael.urankar@gmail.com>
Co-authored-by: Mark McCaskey <5770194+MarkMcCaskey@users.noreply.github.com>
2020-03-16 21:20:33 +00:00
Jack O'Connor
1cbafeb315 upgrade blake3 to version 0.2 2020-03-16 17:12:26 -04:00
Mark McCaskey
382e244f18
Merge branch 'master' into freebsd 2020-03-16 12:53:10 -07:00
Mark McCaskey
fac27c749b
Merge branch 'master' into feature/improved-wasitests 2020-03-16 12:46:24 -07:00
Mark McCaskey
228c5baa53
Fix typo in wasitest build.rs
Co-Authored-By: Syrus Akbary <me@syrusakbary.com>
2020-03-16 12:37:23 -07:00
Nick Lewycky
29b5223b3e Canonicalize NANs produced by f.trunc and f.nearby. 2020-03-16 11:36:17 -07:00
losfair
da07ed5011 Add clif/llvm NaN spectest failure excludes. 2020-03-16 23:40:28 +08:00
losfair
5d26d92d9b Add switch to turn on/off NaN canonicalization. 2020-03-16 23:40:02 +08:00
losfair
0f663887ad Handle panics from DynamicFunc. 2020-03-16 22:49:37 +08:00