alexcrichton opened PR #10973 from alexcrichton:test-s390x to bytecodealliance:main:
Extracted from #10960
prtest:linux-s390x
<!--
Please make sure you include the following information:
If this work has been discussed elsewhere, please include a link to that
conversation. If it was discussed in an issue, just mention "issue #...".Explain why this change is needed. If the details are in an issue already,
this can be brief.Our development process is documented in the Wasmtime book:
https://docs.wasmtime.dev/contributing-development-process.htmlPlease ensure all communication follows the code of conduct:
https://github.com/bytecodealliance/wasmtime/blob/main/CODE_OF_CONDUCT.md
-->
cfallin commented on PR #10973:
I'm pretty perplexed staring at this one too -- for reference here are Godbolt links for before (working) and after (apparently segfaulting). The clobber-saves come in different order wrt loading values into payload (r6/r7) but the dataflow from arguments to PC/SP (r15)/payload (r6, r7) looks completely equivalent...
alexcrichton commented on PR #10973:
cc @uweigand would you be able to help dig in to what's going on here? (we can provide more background context if necessary, but the general gist is that this PR in theory is a refactoring that shouldn't do anything but it causes tests to segfault)
uweigand commented on PR #10973:
I was finally able to reproduce this. Turns out the crash only happens when building with
CARGO_INCREMENTAL=0.
uweigand submitted PR review.
uweigand created PR review comment:
Here's the problem. The
brinstruction requires an address register operand (i.e. GPR 1-15, but not GPR 0). In the failing case, the compiler chose to use GPR 0 to holdpc. To fix this, you'll need to use thereg_addrregister class instead ofregforpc.
alexcrichton updated PR #10973.
alexcrichton updated PR #10973.
Last updated: Dec 06 2025 at 06:05 UTC