Re: MIPS: Trouble with address calculation near the useg/kseg boundary

2011-02-16 Thread David Daney
On 02/16/2011 02:32 PM, Paul Koning wrote: On Feb 16, 2011, at 5:25 PM, David Daney wrote: What is the state of your C0_Status[{KX,SX,UX}] bits? 0, 0, 0 It is not really a compiler bug, but rather a defect in the n32 ABI. When using 32-bit pointers you can only do 32-bit operations on the

Re: MIPS: Trouble with address calculation near the useg/kseg boundary

2011-02-16 Thread Paul Koning
On Feb 16, 2011, at 5:25 PM, David Daney wrote: > What is the state of your C0_Status[{KX,SX,UX}] bits? 0, 0, 0 > > It is not really a compiler bug, but rather a defect in the n32 ABI. When > using 32-bit pointers you can only do 32-bit operations on them. To do > otherwise raises the possibi

Re: MIPS: Trouble with address calculation near the useg/kseg boundary

2011-02-16 Thread David Daney
On 02/16/2011 02:10 PM, Paul Koning wrote: On Feb 16, 2011, at 5:08 PM, David Daney wrote: On 02/16/2011 01:44 PM, Paul Koning wrote: I'm running into a crash caused by mishandling of address calculation of an array element address when that array is near the bottom of kseg0 (0x8000

Re: MIPS: Trouble with address calculation near the useg/kseg boundary

2011-02-16 Thread Paul Koning
On Feb 16, 2011, at 5:08 PM, David Daney wrote: > On 02/16/2011 01:44 PM, Paul Koning wrote: >> I'm running into a crash caused by mishandling of address calculation of an >> array element address when that array is near the bottom of kseg0 >> (0x8000). >> >> The code essentially d

Re: MIPS: Trouble with address calculation near the useg/kseg boundary

2011-02-16 Thread David Daney
On 02/16/2011 01:44 PM, Paul Koning wrote: I'm running into a crash caused by mishandling of address calculation of an array element address when that array is near the bottom of kseg0 (0x8000). The code essentially does this foo = v[i - 2].elem; where i is current zero. A

MIPS: Trouble with address calculation near the useg/kseg boundary

2011-02-16 Thread Paul Koning
I'm running into a crash caused by mishandling of address calculation of an array element address when that array is near the bottom of kseg0 (0x8000). The code essentially does this foo = v[i - 2].elem; where i is current zero. Assume for now the negative array offset is va