On Thu, 30 Dec 2010, H.J. Lu wrote: > Hi, > > This patch adds 32bit x86-64 support to binutils. Support in compiler, > library and OS is required to use it. It can be used to implement the > new 32bit OS for x86-64. Any comments?
Do you have a public psABI document? I think the psABI at the ELF level needs to come before the binutils bits, at the function call level needs to come before the GCC bits, etc. You appear (judging by the support for Linux targets in the binutils patch) to envisage Linux support for this ABI. How do you plan to avoid the problems that have plagued the MIPS n32 syscall ABI, which seems like a similar case? (If you could arrange for the syscall ABI always to be the same as the existing 64-bit ABI, rather than needing to handle three different syscall ABIs in the kernel, that might be one solution, but it could have its own complexities in ensuring that none of the types whose layout forms part of the kernel/userspace interface have layout differing between n32 and the existing ABI; without any action, structures would tend to get layout similar to that of the existing 32-bit ABI, though quite possibly not the same depending on alignment peculiarities - I'm guessing that the new ABI will use natural alignment - while long long arguments would tend to be passed in a single register, resulting in the complicated hybrid syscall ABI present on MIPS. If you do have an all-new syscall ABI rather than sharing the existing 64-bit one, I imagine it would need to follow the cut-down set of syscalls for new ports, so involving the issue of how to build glibc for that set of syscalls discussed three months ago in the Tilera context.) -- Joseph S. Myers jos...@codesourcery.com