Stream: git-wasmtime

Topic: wasmtime / issue #5430 s390x: Move the value out of the c...


view this post on Zulip Wasmtime GitHub notifications bot (Dec 14 2022 at 01:56):

elliottt edited a comment on issue #5430:

@uweigand I've reworked this a bit more to avoid the changes to VCode. The problem was that there was a move using a fixed non-allocatable register produced by the s390x backend in the casloop_emit function. I've reworked this to use MovPReg, which is designed to handle fixed non-allocatable sources, but this does introduce some additional indirection for the result when in littleendian mode.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 14 2022 at 01:58):

elliottt commented on issue #5430:

Actually, reading your latest update: I think that what is actually needed here is for MachInst::is_move() to return a correct result with respect to real/virtual registers. Otherwise we have an inconsistency that may cause issues elsewhere (and are not addressed by papering over one callsite to MachInst::is_move with alternative logic).

The changes to VCode and MachInst ended up being a red-herring: the real problem as we discussed in a DM was that there were move instructions emitted that were using fixed non-allocatable registers at all. Switching to MInst.MovPreg instead in the s390x backend was the best fix.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 14 2022 at 18:38):

elliottt commented on issue #5430:

@cfallin the assertions in collect_operands are failing, so I'll open a separate PR with that change and track them down there.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 14 2022 at 21:18):

bjorn3 commented on issue #5430:

Will this be backported to the wasmtime-4.0.0 branch?

view this post on Zulip Wasmtime GitHub notifications bot (Dec 14 2022 at 22:15):

elliottt commented on issue #5430:

Will this be backported to the wasmtime-4.0.0 branch?

Just made the PR: #5442


Last updated: Oct 23 2024 at 20:03 UTC