Skip to content

Backport simd fixes to 0.38.0#4334

Merged
alexcrichton merged 2 commits into
bytecodealliance:release-0.38.0from
alexcrichton:backports
Jun 27, 2022
Merged

Backport simd fixes to 0.38.0#4334
alexcrichton merged 2 commits into
bytecodealliance:release-0.38.0from
alexcrichton:backports

Conversation

@alexcrichton
Copy link
Copy Markdown
Member

This backports #4318 and #4317 to the 0.38.0 branch for a pending and upcoming 0.38.1 release.

…e#4318)

This commit fixes a mistake in the `Swizzle` opcode implementation in
the x64 backend of Cranelift. Previously an input register was casted to
a writable register and then modified, which I believe instructions are
not supposed to do. This was discovered as part of my investigation
into bytecodealliance#4315.
…ance#4317)

This commit fixes a bug in the previous codegen for the `select`
instruction when the operations of the `select` were of the `v128` type.
Previously teh `XmmCmove` instruction only stored an `OperandSize` of 32
or 64 for a 64 or 32-bit move, but this was also used for these 128-bit
types which meant that when used the wrong move instruction was
generated. The fix applied here is to store the whole `Type` being moved
so the 128-bit variant can be selected as well.
@github-actions github-actions Bot added cranelift Issues related to the Cranelift code generator cranelift:area:x64 Issues related to x64 codegen labels Jun 27, 2022
@alexcrichton alexcrichton merged commit b3ad5f9 into bytecodealliance:release-0.38.0 Jun 27, 2022
@alexcrichton alexcrichton deleted the backports branch June 27, 2022 19:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cranelift:area:x64 Issues related to x64 codegen cranelift Issues related to the Cranelift code generator

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants