Re: Emulating insns on Alpha

Falk Hueffner (falk.hueffner@student.uni-tuebingen.de)
Tue, 8 Apr 2003 17:19:26 +0200 (CEST)


On 8 Apr 2003, Måns Rullgård wrote:

> Falk Hueffner <falk.hueffner@student.uni-tuebingen.de> writes:
> > > Are there any patches around that emulate the BWX instruction set on
> > > older Alpha CPUs, or should I write it myself?
> >
> > There's an ancient one at
> > http://www.alphalinux.org/archives/axp-list/October1999/0500.html,
> > although it's probably easier to write it from scratch. I'd write the
> > whole thing in C, the trap is already so expensive that it's of no use
> > trying to be clever when emulating the particular instructions (except
> > when you replace the instruction with a jump to a stub, which seems
> > somewhat hairy, but feasible).
>
> If you think that's hairy, take a look at this:
> http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/tc2/tc2/include/Attic/tc2_autoload.h?rev=1.1.2.5&only_with_tag=dev-0_4&content-type=text/vnd.viewcvs-markup

Well, it'd be a lot hairier, since you need PALcode support to free temp
registers (unless I'm missing something). And you need to check access
rights (or jump back to userspace temporarily).

By the way, mb doesn't ensure that the instruction fetcher sees the new
code, you need imb. And the ret will probably confuse the branch
prediction stack.

Falk

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/