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.

Reply via email to