Skip to content

Conversation

@alexcrichton
Copy link
Member

This is a backport of #12179, #12321, and #12335 to the 40.0.x release branch to push out a few more fixes with today's point release to cover #12333 as well.

alexcrichton and others added 4 commits January 14, 2026 07:31
Add some more `fits_in_64` constraints to types to handle the fact that
`iconst_u` can't construct a 128-bit output.

Closes bytecodealliance#12170
* x64: Fix lowering rules for `shld`

These failed to account for the edge case of 0/width(type) shifts where
the `shld` instruction is no longer applicable. Guards are added to
ensure that the shift amounts are both greater than zero.

This in theory shouldn't have much practical impact since shift-by-zero
and shift-by-type-width are both optimized away in the mid-end. That
means that this is only possible to expose with opt-level=0 which may
help explain why this went undiscovered for ~1 year.

Closes bytecodealliance#12318

* Fix Winch's encoding of shift-by-32
@alexcrichton alexcrichton requested review from a team as code owners January 14, 2026 15:35
@alexcrichton alexcrichton requested review from fitzgen and removed request for a team January 14, 2026 15:35
@cfallin cfallin merged commit f5728ae into bytecodealliance:release-40.0.0 Jan 14, 2026
172 checks passed
@alexcrichton alexcrichton deleted the back40 branch January 14, 2026 16:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants