[kaffe] MIPS Port Update
Kevin D. Kissell
kevink at mips.com
Wed Jul 17 17:10:48 PDT 2002
> 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!
More information about the kaffe