Subject: Re: ps3 64-bit kernel: patched prpmc2800.c (fwd)

From: Geoff Levand <[email-masked]>
Date: Sat, 02 Jun 2007 11:39:32 -0700

Maik Nijhuis wrote:
> While compiling a 64-bit kernel for the playstation 3 I noticed that
> arch/powerpc/boot/prpmc2800.c doesn't compile. The assembler complains
> about a constant that is too big.
> 
> And then this error follows:
> 
> /tmp/ccYHAOD7.s: Assembler messages:
> /tmp/ccYHAOD7.s:9: Error: operand out of range (0xffffffffffff7fff is not
> between 0x0000000000000000 and 0x00000000ffffffff)
> 
> I managed to fix this issue as follows: At the end of
> arch/powerpc/boot/prpmc2800.c, there is an assembly instruction
> 
> rlwinm  10,10,0,~(1<<15)
> 
> I replaced this by
> 
> rlwinm  10,10,0,~(1<<15) & ((1<<32)-1)
> 
> I am running 64-bit gentoo linux with binutils 2.17.50.0.16. It has been
> compiled on my ps3 using gentoo ebuild scripts.
> 
> Could you please either fix binutils or apply the above patch?

The trouble is that I have no way to test that change.  I don't have the
hardware.  Since that file is not for PS3, the best thing to do
is to not build that file when not building for prpmc2800.  I will
post a patch that does that.

-Geoff