================
@@ -1185,6 +1189,9 @@ Currently, only the following parameter attributes are
defined:
value should be sign-extended to the extent required by the target's
ABI (which is usually 32-bits) by the caller (for a parameter) or
the callee (for a return value).
+``noext`` This indicates to the code generator that the parameter or return
+ value has the high bits undefined, as for a struct in register, and
+ therefore does not need to be sign or zero extended.
----------------
JonPsson1 wrote:
> * That's incorrect. Some implementation defined behavior are subject to
> change, hence cannot be called an ABI. It just like we cannot assume UB code
> get the same result between different compilers or from version to version.
> * If other front end doesn't specific a calling convention, then it uses C
> calling convention. See my previous link.
Sorry, I don't follow - what part is incorrect according to you? The *target*
ABI is independent of the implementation - it is how things are done on a
specific platform. On some machines this type of extensions *must* be done, and
this will not change. Other machines do not care about this at all. How could
this become more clear in the LangRef.rst do you mean?
https://github.com/llvm/llvm-project/pull/100757
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits