[cairo] Pixman refactoring

Vladimir Vukicevic vladimir at pobox.com
Tue May 26 12:05:59 PDT 2009


On 5/25/09 12:43 AM, Jonathan Morton wrote:
> On Sat, 2009-05-23 at 16:57 +0200, Soeren Sandmann wrote:
>> Peter Harris<pharris at opentext.com>  writes:
>>
>>> Take, for example, the Win64 ABI, which doesn't allow MMX. So you'd want
>>
>> Are you sure about this? The MMX registers are aliased onto the
>> floating point stack, so the operating system would have to go out of
>> its way to not support it.
>
> I think the problem is that the whole x87/MMX/3DNow shebang - everything
> that uses the x87 registers - is deprecated (I don't know whether it's
> supposed to SIGILL, I'm not an x86 man :) on AMD64, and replaced by
> SSE2.
>
> Okay, there's still legacy support for IA32, so the OS still has to
> handle the context switching, so you could probably get MMX to "work" in
> many cases from 64-bit code (provided it doesn't throw SIGILL at you),
> but it's definitely on the dangerous side.  But you also know whether
> you're building 64-bit code at compile time.
>
> Generally on ARM you also tend to build for a particular processor, or
> at least architecture version, so you can make quite a lot of
> optimisation decisions at compile time.  For example, the set of
> software that runs on an ARMv7-M CPU (a miniature core,<= 100K
> transistors) is very different from that which runs on an ARMv7-A CPU
> (near desktop performance, ~100M transistors).

Sure, though that doesn't help if you're trying to ship one binary that 
will run almost-optimally on as many systems as possible.  That's the 
case at least on x86, and somewhat on ARM (e.g. ship a binary that's 
compiled for armv6, but that can improve performance by taking advantage 
of VFP, SIMD, NEON as appropriate/available).

     - Vlad


More information about the cairo mailing list