================
@@ -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
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to