[cairo] Pixman refactoring

Peter Harris pharris at opentext.com
Mon May 25 07:35:24 PDT 2009


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 found this:
> 
>         http://www.virtualdub.org/blog/pivot/entry.php?id=107
> 
> which seems to say that MMX *can* be used on Windows 64.

Upon further digging, it appears that you are correct. MMX (and all
other instructions that use the floating point stack) are only
prohibited in 64-bit drivers. MMX/x87 are merely "deprecated" for
user-mode 64-bit applications. Presumably some future version of Windows
may stop saving and restoring the floating point stack for 64-bit apps,
but that's a ways into the future and probably not worth considering today.

Microsoft's compiler already refuses to recognize MMX intrinsics,
though, which means you'd have to rewrite much of pixman-mmx.c to get it
to compile. Given that maintaining intrinsics is a lot easier than pure
assembly, it probably isn't worth the effort. I'm not sure what mingw
does; last I checked mingw didn't support 64-bit at all, but that was a
while ago.

(All of this merely confirms what I read in your link. I probably should
have read your link before digging; it would have saved me some time).

Peter Harris
-- 
               Open Text Connectivity Solutions Group
Peter Harris                    http://www.opentext.com/connectivity
Research and Development        Phone: +1 905 762 6001
pharris at opentext.com            Toll Free: 1 877 359 4866


More information about the xorg-devel mailing list