This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC: Should x86-64 support arbitrary calling conventions?


* David L. Kreitzer:

> Ideally, _dl_runtime_resolve should preserve any registers that it uses,
> similar to an interrupt handler.

That's not really feasible due to the way ELF lazy binding works.

> Otherwise, we leave significant performance potential on the table
> in situations where the "one size fits all" calling convention is
> inefficient.

You could just have the __regcall convention imply the noplt
attribute.  Then things would just work even today.

Please document in the ABI that noplt calls preserve all registers,
but still need a valid stack.  They clobber both the red zone and the
unused portion of the stack.  The latter leaves open the option to
eventually add audit support for noplt calls (via dynamic stub
generation).


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]