blob: 01e9a672e88008d4ac9082f6a9d3537469683263 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
void
f (n, ppt, xrot)
{
int tileWidth;
int nlwSrc;
int srcx;
int v3, v4;
register unsigned long ca1, cx1, ca2, cx2;
unsigned long *pSrcLine;
register unsigned long *pDst;
register unsigned long *pSrc;
register unsigned long b, tmp;
unsigned long tileEndMask;
int v1, v2;
int tileEndPart;
int needFirst;
tileEndPart = 0;
v1 = tileEndPart << 5;
v2 = 32 - v1;
while (n--)
{
if ((srcx = (ppt - xrot) % tileWidth) < 0)
if (needFirst)
if (nlwSrc == 1)
{
tmp = b;
if (tileEndPart)
b = (*pSrc & tileEndMask) | (*pSrcLine >> v1);
}
if (tileEndPart)
b = (tmp << v1) | (b >> v2);
if (v4 != 32)
*pDst = (*pDst & ((tmp << v3) | (b >> v4) & ca1 ^ cx1)
^ (((tmp << v3) | (b >> v4)) & ca2 ^ cx2));
*pDst = *pDst & tmp;
}
}
|