[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [MiNT] libgem16: vs_color
Am 18.01.2010, 22:57 Uhr, schrieb Vincent Rivière
<vincent.riviere@freesbee.fr>:
2) You put traces using BLOG. If I'm not wrong, BLOG is actually
bootlog() and uses vsprintf(). Since you don't have a libc16, where does
your vsprintf() come from ? Beware to never mix mshort/mlong
libraries... Link using "-Wl,-t" to see where what you link come from.
This was directly from XaAES, where no libc16 is required, as you might
know.
3) I have just learned that the 68020+ allow word and long access on odd
addresses. Can the stack be on an odd address, too ? If it is the case,
the stack may have been on an odd address for a long time... You should
trace the addresses of some local variable in the caller of vs_color(),
and its caller... until you find where the stack becomes odd.
Yes - thanks! ;)
But the 000-version also seems not to work (not 100% sure yet).
4) Be sure your gemlib has the latest patches for the clobber lists. A
register not cleanly backuped can certainly cause this kind of problem.
The inlined code isn't used - at least for VDI, and XaAES doesn't do any
AES-traps AFAIK.
The code that's used does only backup one reg, I think.
5) The values of your pointers are at more than 62 MB from the start of
the FastRAM, does this look good ? Could we face an out of memory ?
Where do you know the 62MB? And the same runs on a TT with 24MB or similar.
6) Do we face a stack overflow ? It can produce this kind of problem.
This would be one last resort, but I think this is unlikely, because the
stack isn't much used at that stage (ca. 4 calls) and I don't know if the
stack can be set for xaaes at all.
7) Beware of a6... It is that damn frame pointer (when used as is). If
it gets corrupted (by some gem call ?) the stack value will be
corrupted, too.
8) If a local variable overflows (array out of bouts, etc), it can alter
a backuped stack value, and produce an odd stack.
Well, a lot of questions... But I'm pretty sure the real problem is not
at the top of vs_color().
No. But it's called from two very different places, both fail.
--
Helmut Karlowski