[parisc-linux] Re: [RFC] using 64bit wide registers with 32bit kernel

Thibaut VARENE T-Bone at parisc-linux.org
Sat May 13 10:33:15 MDT 2006


On 5/13/06, Thibaut VARENE <T-Bone at parisc-linux.org> wrote:
> Hi pa,
>
> I've been writing a few optimized asm bits for ffmpeg, using MAX2
> insns and taking advantage of the fact that pa2.0 implements 64bit
> wide registers.
>
> NOTE: i'm not using a 64bit address space at all. I'm just taking
> advantage of the fact that GRs can hold 64bit, as per architecture
> design. MAX2 insns need the full 64bit width, for instance.
>
> Yet, Randolph pointed out that it's likely that upon context switch,
> the upper 32bit of the registers i'm using would be thrown away.
>
> Two options from there:
> 1) we claim what I'm trying to do should not be done on parisc-linux
> => using ldd/std, MAX2 and other insns that rely on 64bit regs should
> be prohibited by binutils for non-wide code (currently gcc/binutils
> happily build my code with -mpa-risc-2-0, which generates level 2.0
> non wide code)

I take that back as I can see a reason to use them in userspace when
running a 64bit kernel, even though the generated code wouldn't work
with a 32bit kernel.
Yet, not being to use them (in particular MAX2) with a 32bit kernel on
pa2.0 cpus is quite sad, as we encourage our users to run 32bit
kernels on pa2.0 machines that can...

> 2) we claim what I'm trying to do should be possible on parisc-linux
> => we need to fix context switching in 32bit kernels.
>
> Comments?

T-Bone



More information about the parisc-linux mailing list