On 30 Sep 2003, Michael Uhler wrote:
> > What you want really is a 64-bit kernel. On a 64-bit kernel even for
> > processes running in 32-bit address spaces (o32, N32) the processor
> > will run with the UX bit enabled. o32 userspace still lives in the
> > assumption that registers are 32-bit so only those bits will be restored
> > in function calls etc. N32 (where userspace isn't ready for prime time
> > yet) does guarantee that. And N64 (userspace similarly not ready for
> > prime time) obviously is fully 64-bit everything.
>
> I don't think you want to run o32 processes with the UX bit set. UX not
> only enables 64-bit addressing (which you can, in software, make look
> like 32-bit addressing), it also enables access to the 64-bit opcodes.
> This means that you are going to get unexpected and potentially
> unreproducible results.
Well, I think this is OK -- 64-bit opcodes are generally useless for
software built for the o32 ABI, so they should not normally happen in
regular code. Perhaps some fancy hand-coded assembly might try to use
them to get unusual results, including an invalid opcode trap handler for
the processors that do not support them at all. But I don't think we
should try to work hard to prevent broken software from shooting into its
foot.
And the advantage is we have a single TLB refill handler.
Maciej
--
+ Maciej W. Rozycki, Technical University of Gdansk, Poland +
+--------------------------------------------------------------+
+ e-mail: macro@ds2.pg.gda.pl, PGP key available +
|