[clang] [llvm] [SystemZ] Do not extend integer arguments in z/OS XPLINK64 ABI (PR #206833)

Ulrich Weigand via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 31 10:26:15 PDT 2026


================

----------------
uweigand wrote:

So the ABI (de-facto, if the spec is not explicit on this point) is that 32-bit values are passed in the lower half of the register, and the upper half is unspecified.  Old xlc behaves that way both as caller and caller.  OK.

Now you say clang as callee should behave the same way (i.e. treat the upper half as unspecified).  OK as well.  But you also say clang as *caller* should explicitly zero (always, no matter the type) the upper half.   Why?  This is different from old xlc, *and* unneeded if the all callees treat the upper half as unspecified.  This is the part I still do not get.

https://github.com/llvm/llvm-project/pull/206833


More information about the llvm-commits mailing list