Port-amiga archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Xamiga segfaults with 16 bit on CV64
On Sun, Jan 06, 2008 at 02:43:00PM +0100, Frank Wille wrote:
>
> Disassembly of the crash location:
> [...]
> 0x91bd4 <cfb16FillBoxTile32sCopy+56>: moveal %a1@(16),%a0
> 0x91bd8 <cfb16FillBoxTile32sCopy+60>: movel %a1,%sp@-
> 0x91bda <cfb16FillBoxTile32sCopy+62>: moveal %a0@(372),%a0
> 0x91bde <cfb16FillBoxTile32sCopy+66>: jsr %a0@
> 0x91be0 <cfb16FillBoxTile32sCopy+68>: addql #4,%sp
> 0x91be2 <cfb16FillBoxTile32sCopy+70>: movel %a0@(32),%fp@(-24) <-- HERE
> [...]
>
> The code looks to me like a compiler bug (unless the sub-routine is meant to
> return a result in a0). Register a0 is reused for deferencing after a sub-
> routine call, although it is definitely a volatile register (and zero after
> returning from the sub-routine).
%a0 is used to return a pointer from a function.
So it looks as though the called function returned 'NULL' and it wasn't
checked for.
David
--
David Laight: david%l8s.co.uk@localhost
Home |
Main Index |
Thread Index |
Old Index