Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Provides support for the following SIMD instructions (using
(dim)
as a placeholder for any ofi8x16
,i16x8
, etc):(dim).splat
(copy a single scalar value into every lane of av128
)(dim).extract_lane ImmIdx
(extract a single lane from av128
)(dim).replace_lane ImmIdx
(replace a single lane from av128
)v128.const i128
(construct av128
from a byte buffer)v128.store memarg
(store av128
to memory)v128.load memarg
(load av128
from memory)All of these instructions are emulated (i.e. they don't use intrinsics or specialized instructions).
Provides debugger support for
v128
values when dumping the stack:{"type": "v128", "value": "i64x2.lane0 i64x2.lane1"}
. The 128-bit vector is interpreted as 2 64-bit integers (i64x2.lane0
andi64x2.lane1
).Provides additional spec-tests:
Implementation notes:
sizeof(StackValue)
from 16 to 24, as each stack slot now has to accommodate a 16-bytev128
argumentv128.load
andv128.store
each use 2 consecutive i64 fields in memoryRelated to #25, #30