On Wed, Feb 01, 2006 at 02:24:04PM -0500, Daniel Jacobowitz wrote:
> > The O/S maybe doing something different, but the architecture has 3 bits in
> > Status: KX, SX, and UX that enable access to the address space above 32
> > bits. With these bits off, an attempt to access these addresses causes an
> > exception. So while 32-bit apps have the full 64-bit address space, most of
> > it is inaccessible to the 32-bit app.
> That's not actually what I was referring to: there's at least one MIPS
> implementation where the results of 32-bit arithmetic operations are
> not just architecturally unpredictable but actually wrong if the upper
> bits are not properly sign extended (I might be misremembering, but I
> think I'm talking about the SB-1). That's the sort of thing that can
> be basically impossible to track down if your debugger doesn't show
> you the whole register.
You were right, that was the SB1 core of the BCM1250 on your Sentosa. The
behaviour however is legal; the MIPS64 specification states for almost all
32-bit arithmetic instructions that their proper operation is only
guaranteed for properly 64-bit sign-extended operands.