[Pixman] mmx: Improving the load8888/store8888 functions
Søren Sandmann
sandmann at cs.au.dk
Thu Feb 23 14:49:48 PST 2012
Matt Turner <mattst88 at gmail.com> writes:
> The load8888/store8888 functions act as a boundary between the integer
> and vector registers.
>
> Consider code like
> uint32_t d = *dst;
> __m64 vdest = load8888(d);
>
> The program loads 4 bytes of data into an integer register and then
> transfers it to the vector register, when it could have simply loaded
> into the vector register initially.
>
> The same situation exists for store8888.
>
> These patch modify the load8888 and store8888 functions to take pointers
> to load from and store into, allowing us to control exactly how they're
> done.
I'm fine with these patches, though it would make more sense to me to
separate more cleanly the concepts of "loading 32 bits from memory into
__m64" and "expanding 32 bits within an __m64".
The first part is the one that has to be done differently on Loongson.
Soren
More information about the Pixman
mailing list