3 * Convert VRAM -> VirtualVram(Vector Version)
\r
4 * (C) 2012 K.Ohta <whatisthis.sowhat@gmail.com>
\r
8 #include "api_vram.h"
\r
9 #include "api_vram.h"
\r
12 * Definition of Convertsion Tables.
\r
14 // Reduce Tables 20120131
\r
16 extern v8si *aPlanes;
\r
19 v8hi_t lshift_6bit8v_SSE2(v8hi_t v)
\r
22 register v8hi_t cbuf;
\r
23 register v8hi_t mask;
\r
25 mask.v = (v8si){0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8};
\r
28 aPlanes[B2 + v.b[0]] |
\r
29 aPlanes[B3 + v.b[1]] |
\r
30 aPlanes[R0 + v.b[2]] |
\r
31 aPlanes[R1 + v.b[3]] |
\r
32 aPlanes[R2 + v.b[4]] |
\r
33 aPlanes[R3 + v.b[5]];
\r
35 mask.v = mask.v & cbuf.v;
\r
36 #if ((__GNUC__ == 4) && (__GCC_MINOR__ >= 7)) || (__GNUC__ > 4) //GCC 4.7 or later.
\r
37 r.v = mask.v != (v8si){0, 0, 0, 0, 0, 0, 0, 0};
\r
38 r.v = r.v & (v8si) {0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03};
\r
39 cbuf.v = cbuf.v | r.v;
\r
41 if(mask.s[0] != 0) cbuf.s[0] |= 0x03;
\r
42 if(mask.s[1] != 0) cbuf.s[1] |= 0x03;
\r
43 if(mask.s[2] != 0) cbuf.s[2] |= 0x03;
\r
44 if(mask.s[3] != 0) cbuf.s[3] |= 0x03;
\r
45 if(mask.s[4] != 0) cbuf.s[4] |= 0x03;
\r
46 if(mask.s[5] != 0) cbuf.s[5] |= 0x03;
\r
47 if(mask.s[6] != 0) cbuf.s[6] |= 0x03;
\r
48 if(mask.s[7] != 0) cbuf.s[7] |= 0x03;
\r