From: Florian Weimer <fw@deneb.enyo.de>
To: "H.J. Lu" <hjl.tools@gmail.com>
Cc: x32-abi@googlegroups.com, GCC Development <gcc@gcc.gnu.org>,
GNU C Library <libc-alpha@sourceware.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: X32 psABI status
Date: Sun, 13 Feb 2011 16:21:49 +0100 [thread overview]
Message-ID: <877hd4j6ya.fsf@mid.deneb.enyo.de> (raw)
In-Reply-To: <AANLkTin1cTCVNTiLS792ZkG9_Y5OvXCtDXHRFfY7hbSF@mail.gmail.com> (H. J. Lu's message of "Sun, 13 Feb 2011 07:13:57 -0800")
* H. J. Lu:
> On Sun, Feb 13, 2011 at 7:07 AM, Florian Weimer <fw@deneb.enyo.de> wrote:
>> * H. J. Lu:
>>
>>>> Actually, I'm wondering if you can do the translation in user space.
>>>> There already are 32-on-64 implementations in existence, without
>>>> kernel changes (recent Hotspot, LuaJIT, and probably some more).
>>>
>>> Please check out the x32 kernel source and provide feedback.
>>
>> I still don't understand why you need a separate syscall table. You
>> should really be able to run on an unmodified amd64 kernel, in 64 bit
>
> That is done on purpose. x32 is designed for environments where the
> current ia32 API is sufficient. You can think it as ia32 with register
> extended to 64bit plus 8 more registers. Everything else is still 32bit.
I think of it as amd64 where all the process memory happens to reside
in the first 4 GB of address space, and pointers are stored as 32 bits
(and you'd also reduce the size of longs because sizeof(long) !=
sizeof(void *) will break too many programs).
As I said, both LuaJIT and Hotspot are already using this model, with
custom memory allocators and a user-space translation layers, so I
still don't see what you get by changing the kernel. LuaJIT has even
implemented the amd64 ABI, so you can call C libraries from your
32-bit code. (Note that LuaJIT uses 64-bit words to store 32-bit
pointers with several tag bits, but it does so even on pure 32-bit
platforms.)
If you want to make x32 closer to i386, I don't see the point. Why
would it be problematic if it was as close to i386 as, say, armel?
next prev parent reply other threads:[~2011-02-13 15:22 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-12 19:41 X32 psABI status H.J. Lu
2011-02-12 21:10 ` Florian Weimer
2011-02-12 21:29 ` H.J. Lu
2011-02-12 23:04 ` H. Peter Anvin
2011-02-13 3:02 ` Andrew Pinski
2011-02-13 8:48 ` Florian Weimer
2011-02-13 13:45 ` H.J. Lu
2011-02-13 15:07 ` Florian Weimer
2011-02-13 15:13 ` H.J. Lu
2011-02-13 15:21 ` Florian Weimer [this message]
2011-02-13 15:37 ` H.J. Lu
2011-02-13 16:35 ` Petr Baudis
2011-02-13 16:48 ` H.J. Lu
2011-02-13 17:37 ` Joseph S. Myers
2011-02-13 15:43 ` Maciej W. Rozycki
2011-02-13 15:57 ` H.J. Lu
2011-02-13 20:10 ` Arnd Bergmann
2011-02-13 21:10 ` H.J. Lu
2011-02-13 21:16 ` H. Peter Anvin
2011-02-13 21:28 ` H.J. Lu
2011-02-13 22:03 ` H. Peter Anvin
2011-02-13 22:12 ` H.J. Lu
2011-02-13 21:33 ` Alan Cox
2011-02-14 1:52 ` H. Peter Anvin
2011-02-13 22:27 ` H. Peter Anvin
2011-02-13 22:28 ` Arnd Bergmann
2011-02-13 22:46 ` H. Peter Anvin
2011-02-13 22:57 ` Arnd Bergmann
2011-02-13 23:03 ` H.J. Lu
2011-02-13 23:39 ` Alan Cox
2011-02-13 23:50 ` H.J. Lu
2011-02-14 1:59 ` H. Peter Anvin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=877hd4j6ya.fsf@mid.deneb.enyo.de \
--to=fw@deneb.enyo.de \
--cc=gcc@gcc.gnu.org \
--cc=hjl.tools@gmail.com \
--cc=libc-alpha@sourceware.org \
--cc=linux-kernel@vger.kernel.org \
--cc=x32-abi@googlegroups.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.