RFC: Add 32bit x86-64 support to binutils
Joseph S. Myers
joseph@codesourcery.com
Thu Dec 30 18:42:00 GMT 2010
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
joseph@codesourcery.com
More information about the Gcc
mailing list