[cfe-dev] Why does ABI on amd64 require bit extension of function arguments smaller than 32 bits?

Joerg Sonnenberger via cfe-dev cfe-dev at lists.llvm.org
Fri Nov 4 16:37:44 PDT 2016


On Fri, Nov 04, 2016 at 03:58:06PM -0700, Yuri via cfe-dev wrote:
> I noticed that clang adds signext or zeroext attribute to all such function
> arguments. Why is this required? Isn't bit extension by the callee only when
> needed more efficient?

The calle is required to do the expansion. The attributes just reflect
what the content is the registers are supposed to be.

Joerg



More information about the cfe-dev mailing list