You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
s390x: Remove return-value instructions after calls at callsites (#10531)
This is a follow-on to #10502
implementing the same logic for s390x.
Like other platforms, we now no longer emit any instructions handling
return values after the call instruction; instead, everything is done
within a pseudo Call instruction. Unlike other platforms, this also
has to handle vector lane swapping when calling between ABIs that mix
BE and LE lane orders. The pseudo Call instruction needs enough type
information to make this choice, therefore I had to add a type field
to the RetLocation::Reg case (the ::Stack case already had one).
All other changes are contained within the s390x back-end. To simplify
the implementation, the patch also implements a number of clean-ups:
- Introduce a MemArg::SpillOffset variant
- Remove the (unnecessary on this platform) island code size check
- Merge the CallInd instructions into the base Call instructions,
using a new CallInstDest type to carry the call destination
0 commit comments