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 +