Re: i686 quirk for AMD Geode

Daniel Pittman
2009-11-12T01:00:10Z

"H. Peter Anvin" <hpa@zytor.com> writes:
> On 11/10/2009 09:24 AM, Alan Cox wrote:
>>>
>>> In the short term, yes, of course. However, if we're going to do
>>> emulation, we might as well do it right.
>>
>> Why is using KVM doing it right ? It sounds like its doing it slowly,
>> and hideously memory inefficiently. You are solving an uninteresting
>> general case problem when you just need two tiny fixups (or perhaps 3 if
>> you want to fix up early x86-64 prefetch)
>
> Why do we only need "two tiny fixups"? Where do we draw the line in
> terms of ISA compatibility? One could easily argue that the Right
> Thing[TM] is to be able to process any optional instruction -- otherwise
> one has a very difficult place to draw a line.
>
> Consider SSE3, for example. Why should the same concept not apply to
> SSE3 instructions as to CMOV?

FWIW, the issue of the binary-only flashplayer.so came up later in the thread,
but to add my few cents:

When flash 10 was released the binary only 64-bit version generated
instructions from the LAHF set unconditionally, in part because Windows chose
to emulate those on the very few x86-64 platforms that didn't do them in
hardware.

At that time it would have been very nice from a "user support" point of view
to be able to add LAHF emulation to support the software. Yes, it is ugly,
binary-only code, but it is reasonably popular...

Daniel

...in the end, in fact, popular enough to have at least a couple of people
I know purchase a new CPU that did implement it, just for flash on Linux.
--
✣ Daniel Pittman ✉ daniel@rimspace.net ☎ +61 401 155 707
♽ made with 100 percent post-consumer electrons