[ydl-gen] String instructions emulation on PPC970MP

Robert Spykerman robert.spykerman at gmail.com
Wed Dec 9 09:48:31 JST 2009


On Wed, Dec 9, 2009 at 12:08 AM, Patrice B <pbfwdlist at gmail.com> wrote:
...
> Is there a way to emulate those instructions on a Power Station (which
> currently runs YDL 6.0)
...
Eh, sorry, was suggesting work-arounds, didn't address your direct question...

I suppose it is possible to emulate in theory. I believe all powerpcs
will generate an exception when they attempt to execute an invalid
instruction that does not translate to the equivalent of a NOP.

I guess it is possible in theory to get an exception handler written
(ie probably within the kernel) to translate dlmzb and related string
opcodes implemented on the 440 but not the 970.

However, I recall something about powerpc's in general that can treat
quite a few hex words as NOPs. If this instruction actually translates
to a NOP on a 970 it may get a little trickier, but if you're already
getting an illegal instruction error, then, maybe an exception handler
like that can be written.

I do not however know if this is already done, or how easy it will be
to do this. Presumably, one has to write the equivalent translation
assembly code and then find a way to hook it up to the exception
handler that already exists - and find a place for this code to live.
And then debug it :)

It looks to me like you've got to hack the kernel, if you want to try
this, unless someone's already done this.

Given the wide variation and differing degrees of implementation of
the powerpc instruction set on the various processors, it may not be
such idea to try implement some form of a kernel level handler to deal
with unimplemented instructions - of course, this is a compromise.

Again, perhaps just trying to cross-compile and run the resultant code
on the target itself may be the simplest solution (otherwise you could
turn off generation of the dlmzb instruction as I suggeested earlier
if you want to try and run the code on your 970).

What sort of target is this 440 on out of curiosity?  I am assuming if
you could run prior builds from older gccs it must be some sort of
environment not too dissimilar to your build environment?

>        Patrice
> _______________________________________________
> yellowdog-general mailing list - yellowdog-general at lists.fixstars.com
> Unsuscribe info: http://lists.fixstars.com/mailman/listinfo/yellowdog-general
> HINT: to Google archives, try  '&lt;keywords> site:us.fixstars.com'

Robert Spykerman

-- 
chown -R us ./base


More information about the yellowdog-general mailing list