On Sat, Feb 12, 2011 at 9:47 PM, Matt Thomas <m...@3am-software.com> wrote: > > On Feb 12, 2011, at 7:02 PM, Andrew Pinski wrote: > >> On Sat, Feb 12, 2011 at 3:04 PM, H. Peter Anvin <h...@zytor.com> wrote: >>> On 02/12/2011 01:10 PM, Florian Weimer wrote: >>>> Why is the ia32 compatiblity kernel interface used? >>> >>> Because there is no way in hell we're designing in a second >>> compatibility ABI in the kernel (and it has to be a compatibility ABI, >>> because of the pointer size difference.) >> >> I think he is asking why not create a new ABI layer for the kernel >> like it is done for n32 for MIPS. > > The kernel syscall ABI needs to be able to be pass 64-bit quantities > in a single register (since that's what the calling ABI is capable > of doing but I don't think the ia32 kernel interface can do)?
It works. Please check out the x32 kernel to take a look. > Maybe it's me, but I expected X32 to be the X86-64 ABI with 32-bit longs > and pointers (converted to 64-bit arguments when passed in register or > on the stack). That allows the same syscall argument marshalling that > currently exists but just need a different set of syscall vectors. > That is exactly what we implemented. -- H.J.