[kaffe] MIPS Port Update
Kevin D. Kissell
kevink@mips.com
Thu, 18 Jul 2002 02:10:48 +0200
> The original macro only suffered from one
> fault: using a MIPS IV movn instruction.
> Do you think that we should abandon the
> attempts to use the pocketlinux version
> of macro and just fix the original fault?
The "MIPS IV" version could be rewritten to replace
the conditional move with a conditional branch
around an unconditional move, of course, but
I'm highly confident that the shorter version I posted
earlier today has a correct and optimal sequence
of instructions for a MIPS II CPU - I'm just not
100% sure if I got the gcc C/asm template right.
> During my testing I noticed that the
> pocketlinux macro only works if you are
> very careful which value you use as the
> newVal. I used the thread-id which keeps
> it happy. If one uses a constant value
> it fails.
Like I said in the earlier mail, it's pretty
hopelessly broken in a couple of ways,
and absolutely not to be trusted in a
preemptive multitasking environment.
If anyone is maintaining pocketlinux,
they had really better fix it, and re-examine
everywhere where ll/sc is being used,
beacuse it's certainly not being used
correctly in that macro!
Kevin K.