return limit256rb(monid, 0.5f * r - 0.418688f * g - 0.081312f * b);
}
-extern uae_s32 tyhrgb[65536];
-extern uae_s32 tylrgb[65536];
-extern uae_s32 tcbrgb[65536];
-extern uae_s32 tcrrgb[65536];
-extern uae_u32 redc[3 * 256], grec[3 * 256], bluc[3 * 256];
-
static uae_u32 lowbits (int v, int shift, int lsize)
{
v >>= shift;
#if defined(AGA) || defined(GFXFILTER)
alloc_colors_rgb (rw, gw, bw, rs, gs, bs, aw, as, alpha, byte_swap, xredcolors, xgreencolors, xbluecolors);
- /* copy original color table */
- for (i = 0; i < 256; i++) {
- redc[0 * 256 + i] = xredcolors[0];
- grec[0 * 256 + i] = xgreencolors[0];
- bluc[0 * 256 + i] = xbluecolors[0];
- redc[1 * 256 + i] = xredcolors[i];
- grec[1 * 256 + i] = xgreencolors[i];
- bluc[1 * 256 + i] = xbluecolors[i];
- redc[2 * 256 + i] = xredcolors[255];
- grec[2 * 256 + i] = xgreencolors[255];
- bluc[2 * 256 + i] = xbluecolors[255];
- }
#ifdef GFXFILTER
if (yuv) {
/* create internal 5:6:5 color tables */
xcolors[i] |= xcolors[i] * 0x00010001;
}
}
-
- /* create RGB 5:6:5 -> YUV tables */
- for (i = 0; i < 65536; i++) {
- uae_u32 r, g, b;
- r = (((i >> 11) & 31) << 3) | lowbits (i, 11, 3);
- r = gamma[r + 256][0];
- g = (((i >> 5) & 63) << 2) | lowbits (i, 5, 2);
- g = gamma[g + 256][1];
- b = (((i >> 0) & 31) << 3) | lowbits (i, 0, 3);
- b = gamma[b + 256][2];
- tyhrgb[i] = get_yh(monid, r, g, b) * 256 * 256;
- tylrgb[i] = get_yl(monid, r, g, b) * 256 * 256;
- tcbrgb[i] = ((uae_s8)get_cb(monid, r, g, b)) * 256;
- tcrrgb[i] = ((uae_s8)get_cr(monid, r, g, b)) * 256;
- }
}
#endif
typedef unsigned short u16;
typedef unsigned long u32;
+#if 0
extern void S2X_refresh(int);
extern void S2X_render(int, int, int);
extern bool S2X_init (int, int dw, int dh, int dd);
extern void PAL_init(int monid);
extern void PAL_1x1_32 (uae_u32 *src, int pitchs, uae_u32 *trg, int pitcht, int width, int height);
extern void PAL_1x1_16 (uae_u16 *src, int pitchs, uae_u16 *trg, int pitcht, int width, int height);
+#endif
#ifndef __cplusplus
typedef int bool;
#endif
+#if 0
extern "C"
{
extern void S2X_configure(int, int rb, int gb, int bb, int rs, int gs, int bs);
extern void _cdecl hq4x_16 (unsigned char*, unsigned char*, DWORD, DWORD, DWORD);
extern void _cdecl hq4x_32 (unsigned char*, unsigned char*, DWORD, DWORD, DWORD);
}
+#endif
#define UAE_FILTER_NULL 1
#define UAE_FILTER_SCALE2X 2
#define UAE_FILTER_PAL 9
#define UAE_FILTER_LAST 9
+#if 0
#define UAE_FILTER_MODE_16 16
#define UAE_FILTER_MODE_16_16 16
#define UAE_FILTER_MODE_16_32 (16 | 8)
#define UAE_FILTER_MODE_32 32
#define UAE_FILTER_MODE_32_32 32
#define UAE_FILTER_MODE_32_16 (32 | 8)
-
+#endif
struct uae_filter
{
d3d->dmultxh = mmulth;
d3d->dmultxv = mmultv;
- d3d->dmult = S2X_getmult(d3d->num);
+ d3d->dmult = 1; // S2X_getmult(d3d->num);
d3d->window_w = w_w;
d3d->window_h = w_h;
d3d->m_bitmapHeight = h;
d3d->m_bitmapWidth2 = d3d->m_bitmapWidth;
d3d->m_bitmapHeight2 = d3d->m_bitmapHeight;
- d3d->dmult = S2X_getmult(monid);
+ d3d->dmult = 1; // S2X_getmult(monid);
d3d->m_bitmapWidthX = d3d->m_bitmapWidth * d3d->dmultxh;
d3d->m_bitmapHeightX = d3d->m_bitmapHeight * d3d->dmultxv;
SetDCPenColor(gdi->hdc, RGB(0, 0, 0));
SetDCBrushColor(gdi->hdc, RGB(0, 0, 0));
if (allocsprite(gdi, &gdi->bm, w, h)) {
- gdi->dmult = S2X_getmult(monid);
+ gdi->dmult = 1; // S2X_getmult(monid);
setupscenecoords(gdi, monid);
return true;
}
+++ /dev/null
-;hq2x filter
-;16bpp output
-;----------------------------------------------------------
-;Copyright (C) 2003 MaxSt ( maxst@hiend3d.com )
-;
-;This program is free software; you can redistribute it and/or
-;modify it under the terms of the GNU General Public License
-;as published by the Free Software Foundation; either
-;version 2 of the License, or (at your option) any later
-;version.
-;
-;This program is distributed in the hope that it will be useful,
-;but WITHOUT ANY WARRANTY; without even the implied warranty of
-;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;GNU General Public License for more details.
-;
-;You should have received a copy of the GNU General Public License
-;along with this program; if not, write to the Free Software
-;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-GLOBAL _hq2x_16
-
-EXTERN _LUT16to32
-EXTERN _RGBtoYUV
-
-SECTION .bss
-linesleft resd 1
-xcounter resd 1
-cross resd 1
-nextline resd 1
-prevline resd 1
-w1 resd 1
-w2 resd 1
-w3 resd 1
-w4 resd 1
-w5 resd 1
-w6 resd 1
-w7 resd 1
-w8 resd 1
-w9 resd 1
-
-SECTION .data
-
-reg_blank dd 0,0
-const3 dd 0x00030003,0x00000003
-const5 dd 0x00050005,0x00000005
-const6 dd 0x00060006,0x00000006
-const14 dd 0x000E000E,0x0000000E
-threshold dd 0x00300706,0x00000000
-zerolowbits dd 0xF7DEF7DE
-
-SECTION .text
-
-%macro TestDiff 2
- xor ecx,ecx
- mov edx,[%1]
- cmp edx,[%2]
- je %%fin
- mov ecx,_RGBtoYUV
- movd mm1,[ecx+edx*4]
- movq mm5,mm1
- mov edx,[%2]
- movd mm2,[ecx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd ecx,mm1
-%%fin:
-%endmacro
-
-%macro DiffOrNot 4
- TestDiff %1,%2
- test ecx,ecx
- jz %%same
- %3
- jmp %%fin
-%%same:
- %4
-%%fin
-%endmacro
-
-%macro DiffOrNot 6
- TestDiff %1,%2
- test ecx,ecx
- jz %%same
- %3
- %4
- jmp %%fin
-%%same:
- %5
- %6
-%%fin
-%endmacro
-
-%macro DiffOrNot 8
- TestDiff %1,%2
- test ecx,ecx
- jz %%same
- %3
- %4
- %5
- jmp %%fin
-%%same:
- %6
- %7
- %8
-%%fin
-%endmacro
-
-%macro DiffOrNot 10
- TestDiff %1,%2
- test ecx,ecx
- jz %%same
- %3
- %4
- %5
- %6
- jmp %%fin
-%%same:
- %7
- %8
- %9
- %10
-%%fin
-%endmacro
-
-%macro Interp1 3
- mov edx,%2
- mov ecx,%3
- cmp edx,ecx
- je %%fin
- and edx,[zerolowbits]
- and ecx,[zerolowbits]
- add ecx,edx
- shr ecx,1
- add ecx,0x0821
- and ecx,[zerolowbits]
- add edx,ecx
- shr edx,1
-%%fin
- mov %1,dx
-%endmacro
-
-%macro Interp2 4
- mov edx,%3
- mov ecx,%4
- cmp edx,ecx
- je %%fin1
- and edx,[zerolowbits]
- and ecx,[zerolowbits]
- add ecx,edx
- shr ecx,1
- add ecx,0x0821
-%%fin1
- mov edx,%2
- cmp edx,ecx
- je %%fin2
- and ecx,[zerolowbits]
- and edx,[zerolowbits]
- add edx,ecx
- shr edx,1
-%%fin2
- mov %1,dx
-%endmacro
-
-%macro Interp5 3
- mov edx,%2
- mov ecx,%3
- cmp edx,ecx
- je %%fin
- and edx,[zerolowbits]
- and ecx,[zerolowbits]
- add edx,ecx
- shr edx,1
-%%fin
- mov %1,dx
-%endmacro
-
-%macro Interp6 3
- mov ecx, _LUT16to32
- movd mm1, [ecx+eax*4]
- mov edx, %2
- movd mm2, [ecx+edx*4]
- mov edx, %3
- movd mm3, [ecx+edx*4]
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- punpcklbw mm3, [reg_blank]
- pmullw mm1, [const5]
- psllw mm2, 1
- paddw mm1, mm3
- paddw mm1, mm2
- psrlw mm1, 5
- packuswb mm1, [reg_blank]
- movd edx, mm1
- shl dl, 2
- shr edx, 1
- shl dx, 3
- shr edx, 5
- mov %1, dx
-%endmacro
-
-%macro Interp7 3
- mov ecx, _LUT16to32
- movd mm1, [ecx+eax*4]
- mov edx, %2
- movd mm2, [ecx+edx*4]
- mov edx, %3
- movd mm3, [ecx+edx*4]
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- punpcklbw mm3, [reg_blank]
- pmullw mm1, [const6]
- paddw mm2, mm3
- paddw mm1, mm2
- psrlw mm1, 5
- packuswb mm1, [reg_blank]
- movd edx, mm1
- shl dl, 2
- shr edx, 1
- shl dx, 3
- shr edx, 5
- mov %1, dx
-%endmacro
-
-%macro Interp9 3
- mov ecx, _LUT16to32
- movd mm1, [ecx+eax*4]
- mov edx, %2
- movd mm2, [ecx+edx*4]
- mov edx, %3
- movd mm3, [ecx+edx*4]
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- punpcklbw mm3, [reg_blank]
- psllw mm1, 1
- paddw mm2, mm3
- pmullw mm2, [const3]
- paddw mm1, mm2
- psrlw mm1, 5
- packuswb mm1, [reg_blank]
- movd edx, mm1
- shl dl, 2
- shr edx, 1
- shl dx, 3
- shr edx, 5
- mov %1, dx
-%endmacro
-
-%macro Interp10 3
- mov ecx, _LUT16to32
- movd mm1, [ecx+eax*4]
- mov edx, %2
- movd mm2, [ecx+edx*4]
- mov edx, %3
- movd mm3, [ecx+edx*4]
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- punpcklbw mm3, [reg_blank]
- pmullw mm1, [const14]
- paddw mm2, mm3
- paddw mm1, mm2
- psrlw mm1, 6
- packuswb mm1, [reg_blank]
- movd edx, mm1
- shl dl, 2
- shr edx, 1
- shl dx, 3
- shr edx, 5
- mov %1, dx
-%endmacro
-
-%macro PIXEL00_0 0
- mov [edi],ax
-%endmacro
-
-%macro PIXEL00_10 0
- Interp1 [edi],eax,[w1]
-%endmacro
-
-%macro PIXEL00_11 0
- Interp1 [edi],eax,[w4]
-%endmacro
-
-%macro PIXEL00_12 0
- Interp1 [edi],eax,[w2]
-%endmacro
-
-%macro PIXEL00_20 0
- Interp2 [edi],eax,[w4],[w2]
-%endmacro
-
-%macro PIXEL00_21 0
- Interp2 [edi],eax,[w1],[w2]
-%endmacro
-
-%macro PIXEL00_22 0
- Interp2 [edi],eax,[w1],[w4]
-%endmacro
-
-%macro PIXEL00_60 0
- Interp6 [edi],[w2],[w4]
-%endmacro
-
-%macro PIXEL00_61 0
- Interp6 [edi],[w4],[w2]
-%endmacro
-
-%macro PIXEL00_70 0
- Interp7 [edi],[w4],[w2]
-%endmacro
-
-%macro PIXEL00_90 0
- Interp9 [edi],[w4],[w2]
-%endmacro
-
-%macro PIXEL00_100 0
- Interp10 [edi],[w4],[w2]
-%endmacro
-
-%macro PIXEL01_0 0
- mov [edi+2],ax
-%endmacro
-
-%macro PIXEL01_10 0
- Interp1 [edi+2],eax,[w3]
-%endmacro
-
-%macro PIXEL01_11 0
- Interp1 [edi+2],eax,[w2]
-%endmacro
-
-%macro PIXEL01_12 0
- Interp1 [edi+2],eax,[w6]
-%endmacro
-
-%macro PIXEL01_20 0
- Interp2 [edi+2],eax,[w2],[w6]
-%endmacro
-
-%macro PIXEL01_21 0
- Interp2 [edi+2],eax,[w3],[w6]
-%endmacro
-
-%macro PIXEL01_22 0
- Interp2 [edi+2],eax,[w3],[w2]
-%endmacro
-
-%macro PIXEL01_60 0
- Interp6 [edi+2],[w6],[w2]
-%endmacro
-
-%macro PIXEL01_61 0
- Interp6 [edi+2],[w2],[w6]
-%endmacro
-
-%macro PIXEL01_70 0
- Interp7 [edi+2],[w2],[w6]
-%endmacro
-
-%macro PIXEL01_90 0
- Interp9 [edi+2],[w2],[w6]
-%endmacro
-
-%macro PIXEL01_100 0
- Interp10 [edi+2],[w2],[w6]
-%endmacro
-
-%macro PIXEL10_0 0
- mov [edi+ebx],ax
-%endmacro
-
-%macro PIXEL10_10 0
- Interp1 [edi+ebx],eax,[w7]
-%endmacro
-
-%macro PIXEL10_11 0
- Interp1 [edi+ebx],eax,[w8]
-%endmacro
-
-%macro PIXEL10_12 0
- Interp1 [edi+ebx],eax,[w4]
-%endmacro
-
-%macro PIXEL10_20 0
- Interp2 [edi+ebx],eax,[w8],[w4]
-%endmacro
-
-%macro PIXEL10_21 0
- Interp2 [edi+ebx],eax,[w7],[w4]
-%endmacro
-
-%macro PIXEL10_22 0
- Interp2 [edi+ebx],eax,[w7],[w8]
-%endmacro
-
-%macro PIXEL10_60 0
- Interp6 [edi+ebx],[w4],[w8]
-%endmacro
-
-%macro PIXEL10_61 0
- Interp6 [edi+ebx],[w8],[w4]
-%endmacro
-
-%macro PIXEL10_70 0
- Interp7 [edi+ebx],[w8],[w4]
-%endmacro
-
-%macro PIXEL10_90 0
- Interp9 [edi+ebx],[w8],[w4]
-%endmacro
-
-%macro PIXEL10_100 0
- Interp10 [edi+ebx],[w8],[w4]
-%endmacro
-
-%macro PIXEL11_0 0
- mov [edi+ebx+2],ax
-%endmacro
-
-%macro PIXEL11_10 0
- Interp1 [edi+ebx+2],eax,[w9]
-%endmacro
-
-%macro PIXEL11_11 0
- Interp1 [edi+ebx+2],eax,[w6]
-%endmacro
-
-%macro PIXEL11_12 0
- Interp1 [edi+ebx+2],eax,[w8]
-%endmacro
-
-%macro PIXEL11_20 0
- Interp2 [edi+ebx+2],eax,[w6],[w8]
-%endmacro
-
-%macro PIXEL11_21 0
- Interp2 [edi+ebx+2],eax,[w9],[w8]
-%endmacro
-
-%macro PIXEL11_22 0
- Interp2 [edi+ebx+2],eax,[w9],[w6]
-%endmacro
-
-%macro PIXEL11_60 0
- Interp6 [edi+ebx+2],[w8],[w6]
-%endmacro
-
-%macro PIXEL11_61 0
- Interp6 [edi+ebx+2],[w6],[w8]
-%endmacro
-
-%macro PIXEL11_70 0
- Interp7 [edi+ebx+2],[w6],[w8]
-%endmacro
-
-%macro PIXEL11_90 0
- Interp9 [edi+ebx+2],[w6],[w8]
-%endmacro
-
-%macro PIXEL11_100 0
- Interp10 [edi+ebx+2],[w6],[w8]
-%endmacro
-
-inbuffer equ 8
-outbuffer equ 12
-Xres equ 16
-Yres equ 20
-pitch equ 24
-
-_hq2x_16:
- push ebp
- mov ebp,esp
- pushad
-
- mov esi,[ebp+inbuffer]
- mov edi,[ebp+outbuffer]
- mov edx,[ebp+Yres]
- mov [linesleft],edx
- mov ebx,[ebp+Xres]
- shl ebx,1
- mov dword[prevline],0
- mov dword[nextline],ebx
-.loopy
- mov ecx,[ebp+Xres]
- sub ecx,2 ; x={Xres-2, Xres-1} are special cases.
- mov dword[xcounter],ecx
- ; x=0 - special case
- mov ebx,[prevline]
- movq mm5,[esi+ebx]
- movq mm6,[esi]
- mov ebx,[nextline]
- movq mm7,[esi+ebx]
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- mov [w2],edx
- shr eax,16
- mov [w3],eax
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- mov [w5],edx
- shr eax,16
- mov [w6],eax
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- mov [w8],edx
- shr eax,16
- mov [w9],eax
- jmp .flags
-.loopx
- mov ebx,[prevline]
- movq mm5,[esi+ebx-2]
- movq mm6,[esi-2]
- mov ebx,[nextline]
- movq mm7,[esi+ebx-2]
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- shr eax,16
- mov [w2],eax
- psrlq mm5,32
- movd eax,mm5
- movzx edx,ax
- mov [w3],edx
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- shr eax,16
- mov [w5],eax
- psrlq mm6,32
- movd eax,mm6
- movzx edx,ax
- mov [w6],edx
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- shr eax,16
- mov [w8],eax
- psrlq mm7,32
- movd eax,mm7
- movzx edx,ax
- mov [w9],edx
-.flags
- mov ebx,_RGBtoYUV
- mov eax,[w5]
- xor ecx,ecx
- movd mm5,[ebx+eax*4]
- mov dword[cross],0
-
- mov edx,[w2]
- cmp eax,edx
- je .noflag2
- or dword[cross],1
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag2
- or ecx,2
-.noflag2
- mov edx,[w4]
- cmp eax,edx
- je .noflag4
- or dword[cross],2
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag4
- or ecx,8
-.noflag4
- mov edx,[w6]
- cmp eax,edx
- je .noflag6
- or dword[cross],4
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag6
- or ecx,16
-.noflag6
- mov edx,[w8]
- cmp eax,edx
- je .noflag8
- or dword[cross],8
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag8
- or ecx,64
-.noflag8
- test ecx,ecx
- jnz .testflag1
- mov ecx,[cross]
- mov ebx,[ebp+pitch]
- jmp [FuncTable2+ecx*4]
-.testflag1
- mov edx,[w1]
- cmp eax,edx
- je .noflag1
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag1
- or ecx,1
-.noflag1
- mov edx,[w3]
- cmp eax,edx
- je .noflag3
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag3
- or ecx,4
-.noflag3
- mov edx,[w7]
- cmp eax,edx
- je .noflag7
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag7
- or ecx,32
-.noflag7
- mov edx,[w9]
- cmp eax,edx
- je .noflag9
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag9
- or ecx,128
-.noflag9
- mov ebx,[ebp+pitch]
- jmp [FuncTable+ecx*4]
-
-..@flag0
-..@flag1
-..@flag4
-..@flag32
-..@flag128
-..@flag5
-..@flag132
-..@flag160
-..@flag33
-..@flag129
-..@flag36
-..@flag133
-..@flag164
-..@flag161
-..@flag37
-..@flag165
- PIXEL00_20
- PIXEL01_20
- PIXEL10_20
- PIXEL11_20
- jmp .loopx_end
-..@flag2
-..@flag34
-..@flag130
-..@flag162
- PIXEL00_22
- PIXEL01_21
- PIXEL10_20
- PIXEL11_20
- jmp .loopx_end
-..@flag16
-..@flag17
-..@flag48
-..@flag49
- PIXEL00_20
- PIXEL01_22
- PIXEL10_20
- PIXEL11_21
- jmp .loopx_end
-..@flag64
-..@flag65
-..@flag68
-..@flag69
- PIXEL00_20
- PIXEL01_20
- PIXEL10_21
- PIXEL11_22
- jmp .loopx_end
-..@flag8
-..@flag12
-..@flag136
-..@flag140
- PIXEL00_21
- PIXEL01_20
- PIXEL10_22
- PIXEL11_20
- jmp .loopx_end
-..@flag3
-..@flag35
-..@flag131
-..@flag163
- PIXEL00_11
- PIXEL01_21
- PIXEL10_20
- PIXEL11_20
- jmp .loopx_end
-..@flag6
-..@flag38
-..@flag134
-..@flag166
- PIXEL00_22
- PIXEL01_12
- PIXEL10_20
- PIXEL11_20
- jmp .loopx_end
-..@flag20
-..@flag21
-..@flag52
-..@flag53
- PIXEL00_20
- PIXEL01_11
- PIXEL10_20
- PIXEL11_21
- jmp .loopx_end
-..@flag144
-..@flag145
-..@flag176
-..@flag177
- PIXEL00_20
- PIXEL01_22
- PIXEL10_20
- PIXEL11_12
- jmp .loopx_end
-..@flag192
-..@flag193
-..@flag196
-..@flag197
- PIXEL00_20
- PIXEL01_20
- PIXEL10_21
- PIXEL11_11
- jmp .loopx_end
-..@flag96
-..@flag97
-..@flag100
-..@flag101
- PIXEL00_20
- PIXEL01_20
- PIXEL10_12
- PIXEL11_22
- jmp .loopx_end
-..@flag40
-..@flag44
-..@flag168
-..@flag172
- PIXEL00_21
- PIXEL01_20
- PIXEL10_11
- PIXEL11_20
- jmp .loopx_end
-..@flag9
-..@flag13
-..@flag137
-..@flag141
- PIXEL00_12
- PIXEL01_20
- PIXEL10_22
- PIXEL11_20
- jmp .loopx_end
-..@flag18
-..@flag50
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_20
- PIXEL10_20
- PIXEL11_21
- jmp .loopx_end
-..@flag80
-..@flag81
- PIXEL00_20
- PIXEL01_22
- PIXEL10_21
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_20
- jmp .loopx_end
-..@flag72
-..@flag76
- PIXEL00_21
- PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_20
- PIXEL11_22
- jmp .loopx_end
-..@flag10
-..@flag138
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_20
- PIXEL01_21
- PIXEL10_22
- PIXEL11_20
- jmp .loopx_end
-..@flag66
- PIXEL00_22
- PIXEL01_21
- PIXEL10_21
- PIXEL11_22
- jmp .loopx_end
-..@flag24
- PIXEL00_21
- PIXEL01_22
- PIXEL10_22
- PIXEL11_21
- jmp .loopx_end
-..@flag7
-..@flag39
-..@flag135
- PIXEL00_11
- PIXEL01_12
- PIXEL10_20
- PIXEL11_20
- jmp .loopx_end
-..@flag148
-..@flag149
-..@flag180
- PIXEL00_20
- PIXEL01_11
- PIXEL10_20
- PIXEL11_12
- jmp .loopx_end
-..@flag224
-..@flag228
-..@flag225
- PIXEL00_20
- PIXEL01_20
- PIXEL10_12
- PIXEL11_11
- jmp .loopx_end
-..@flag41
-..@flag169
-..@flag45
- PIXEL00_12
- PIXEL01_20
- PIXEL10_11
- PIXEL11_20
- jmp .loopx_end
-..@flag22
-..@flag54
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_20
- PIXEL11_21
- jmp .loopx_end
-..@flag208
-..@flag209
- PIXEL00_20
- PIXEL01_22
- PIXEL10_21
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag104
-..@flag108
- PIXEL00_21
- PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_22
- jmp .loopx_end
-..@flag11
-..@flag139
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_21
- PIXEL10_22
- PIXEL11_20
- jmp .loopx_end
-..@flag19
-..@flag51
- DiffOrNot w2,w6,PIXEL00_11,PIXEL01_10,PIXEL00_60,PIXEL01_90
- PIXEL10_20
- PIXEL11_21
- jmp .loopx_end
-..@flag146
-..@flag178
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_10,PIXEL11_12,PIXEL01_90,PIXEL11_61
- PIXEL10_20
- jmp .loopx_end
-..@flag84
-..@flag85
- PIXEL00_20
- DiffOrNot w6,w8,PIXEL01_11,PIXEL11_10,PIXEL01_60,PIXEL11_90
- PIXEL10_21
- jmp .loopx_end
-..@flag112
-..@flag113
- PIXEL00_20
- PIXEL01_22
- DiffOrNot w6,w8,PIXEL10_12,PIXEL11_10,PIXEL10_61,PIXEL11_90
- jmp .loopx_end
-..@flag200
-..@flag204
- PIXEL00_21
- PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_10,PIXEL11_11,PIXEL10_90,PIXEL11_60
- jmp .loopx_end
-..@flag73
-..@flag77
- DiffOrNot w8,w4,PIXEL00_12,PIXEL10_10,PIXEL00_61,PIXEL10_90
- PIXEL01_20
- PIXEL11_22
- jmp .loopx_end
-..@flag42
-..@flag170
- DiffOrNot w4,w2,PIXEL00_10,PIXEL10_11,PIXEL00_90,PIXEL10_60
- PIXEL01_21
- PIXEL11_20
- jmp .loopx_end
-..@flag14
-..@flag142
- DiffOrNot w4,w2,PIXEL00_10,PIXEL01_12,PIXEL00_90,PIXEL01_61
- PIXEL10_22
- PIXEL11_20
- jmp .loopx_end
-..@flag67
- PIXEL00_11
- PIXEL01_21
- PIXEL10_21
- PIXEL11_22
- jmp .loopx_end
-..@flag70
- PIXEL00_22
- PIXEL01_12
- PIXEL10_21
- PIXEL11_22
- jmp .loopx_end
-..@flag28
- PIXEL00_21
- PIXEL01_11
- PIXEL10_22
- PIXEL11_21
- jmp .loopx_end
-..@flag152
- PIXEL00_21
- PIXEL01_22
- PIXEL10_22
- PIXEL11_12
- jmp .loopx_end
-..@flag194
- PIXEL00_22
- PIXEL01_21
- PIXEL10_21
- PIXEL11_11
- jmp .loopx_end
-..@flag98
- PIXEL00_22
- PIXEL01_21
- PIXEL10_12
- PIXEL11_22
- jmp .loopx_end
-..@flag56
- PIXEL00_21
- PIXEL01_22
- PIXEL10_11
- PIXEL11_21
- jmp .loopx_end
-..@flag25
- PIXEL00_12
- PIXEL01_22
- PIXEL10_22
- PIXEL11_21
- jmp .loopx_end
-..@flag26
-..@flag31
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_22
- PIXEL11_21
- jmp .loopx_end
-..@flag82
-..@flag214
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_21
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag88
-..@flag248
- PIXEL00_21
- PIXEL01_22
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag74
-..@flag107
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_21
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_22
- jmp .loopx_end
-..@flag27
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_10
- PIXEL10_22
- PIXEL11_21
- jmp .loopx_end
-..@flag86
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_21
- PIXEL11_10
- jmp .loopx_end
-..@flag216
- PIXEL00_21
- PIXEL01_22
- PIXEL10_10
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag106
- PIXEL00_10
- PIXEL01_21
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_22
- jmp .loopx_end
-..@flag30
- PIXEL00_10
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_22
- PIXEL11_21
- jmp .loopx_end
-..@flag210
- PIXEL00_22
- PIXEL01_10
- PIXEL10_21
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag120
- PIXEL00_21
- PIXEL01_22
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_10
- jmp .loopx_end
-..@flag75
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_21
- PIXEL10_10
- PIXEL11_22
- jmp .loopx_end
-..@flag29
- PIXEL00_12
- PIXEL01_11
- PIXEL10_22
- PIXEL11_21
- jmp .loopx_end
-..@flag198
- PIXEL00_22
- PIXEL01_12
- PIXEL10_21
- PIXEL11_11
- jmp .loopx_end
-..@flag184
- PIXEL00_21
- PIXEL01_22
- PIXEL10_11
- PIXEL11_12
- jmp .loopx_end
-..@flag99
- PIXEL00_11
- PIXEL01_21
- PIXEL10_12
- PIXEL11_22
- jmp .loopx_end
-..@flag57
- PIXEL00_12
- PIXEL01_22
- PIXEL10_11
- PIXEL11_21
- jmp .loopx_end
-..@flag71
- PIXEL00_11
- PIXEL01_12
- PIXEL10_21
- PIXEL11_22
- jmp .loopx_end
-..@flag156
- PIXEL00_21
- PIXEL01_11
- PIXEL10_22
- PIXEL11_12
- jmp .loopx_end
-..@flag226
- PIXEL00_22
- PIXEL01_21
- PIXEL10_12
- PIXEL11_11
- jmp .loopx_end
-..@flag60
- PIXEL00_21
- PIXEL01_11
- PIXEL10_11
- PIXEL11_21
- jmp .loopx_end
-..@flag195
- PIXEL00_11
- PIXEL01_21
- PIXEL10_21
- PIXEL11_11
- jmp .loopx_end
-..@flag102
- PIXEL00_22
- PIXEL01_12
- PIXEL10_12
- PIXEL11_22
- jmp .loopx_end
-..@flag153
- PIXEL00_12
- PIXEL01_22
- PIXEL10_22
- PIXEL11_12
- jmp .loopx_end
-..@flag58
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- PIXEL10_11
- PIXEL11_21
- jmp .loopx_end
-..@flag83
- PIXEL00_11
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- PIXEL10_21
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag92
- PIXEL00_21
- PIXEL01_11
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag202
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- PIXEL01_21
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- PIXEL11_11
- jmp .loopx_end
-..@flag78
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- PIXEL01_12
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- PIXEL11_22
- jmp .loopx_end
-..@flag154
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- PIXEL10_22
- PIXEL11_12
- jmp .loopx_end
-..@flag114
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- PIXEL10_12
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag89
- PIXEL00_12
- PIXEL01_22
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag90
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag55
-..@flag23
- DiffOrNot w2,w6,PIXEL00_11,PIXEL01_0,PIXEL00_60,PIXEL01_90
- PIXEL10_20
- PIXEL11_21
- jmp .loopx_end
-..@flag182
-..@flag150
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_0,PIXEL11_12,PIXEL01_90,PIXEL11_61
- PIXEL10_20
- jmp .loopx_end
-..@flag213
-..@flag212
- PIXEL00_20
- DiffOrNot w6,w8,PIXEL01_11,PIXEL11_0,PIXEL01_60,PIXEL11_90
- PIXEL10_21
- jmp .loopx_end
-..@flag241
-..@flag240
- PIXEL00_20
- PIXEL01_22
- DiffOrNot w6,w8,PIXEL10_12,PIXEL11_0,PIXEL10_61,PIXEL11_90
- jmp .loopx_end
-..@flag236
-..@flag232
- PIXEL00_21
- PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_0,PIXEL11_11,PIXEL10_90,PIXEL11_60
- jmp .loopx_end
-..@flag109
-..@flag105
- DiffOrNot w8,w4,PIXEL00_12,PIXEL10_0,PIXEL00_61,PIXEL10_90
- PIXEL01_20
- PIXEL11_22
- jmp .loopx_end
-..@flag171
-..@flag43
- DiffOrNot w4,w2,PIXEL00_0,PIXEL10_11,PIXEL00_90,PIXEL10_60
- PIXEL01_21
- PIXEL11_20
- jmp .loopx_end
-..@flag143
-..@flag15
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_12,PIXEL00_90,PIXEL01_61
- PIXEL10_22
- PIXEL11_20
- jmp .loopx_end
-..@flag124
- PIXEL00_21
- PIXEL01_11
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_10
- jmp .loopx_end
-..@flag203
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_21
- PIXEL10_10
- PIXEL11_11
- jmp .loopx_end
-..@flag62
- PIXEL00_10
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_11
- PIXEL11_21
- jmp .loopx_end
-..@flag211
- PIXEL00_11
- PIXEL01_10
- PIXEL10_21
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag118
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_12
- PIXEL11_10
- jmp .loopx_end
-..@flag217
- PIXEL00_12
- PIXEL01_22
- PIXEL10_10
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag110
- PIXEL00_10
- PIXEL01_12
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_22
- jmp .loopx_end
-..@flag155
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_10
- PIXEL10_22
- PIXEL11_12
- jmp .loopx_end
-..@flag188
- PIXEL00_21
- PIXEL01_11
- PIXEL10_11
- PIXEL11_12
- jmp .loopx_end
-..@flag185
- PIXEL00_12
- PIXEL01_22
- PIXEL10_11
- PIXEL11_12
- jmp .loopx_end
-..@flag61
- PIXEL00_12
- PIXEL01_11
- PIXEL10_11
- PIXEL11_21
- jmp .loopx_end
-..@flag157
- PIXEL00_12
- PIXEL01_11
- PIXEL10_22
- PIXEL11_12
- jmp .loopx_end
-..@flag103
- PIXEL00_11
- PIXEL01_12
- PIXEL10_12
- PIXEL11_22
- jmp .loopx_end
-..@flag227
- PIXEL00_11
- PIXEL01_21
- PIXEL10_12
- PIXEL11_11
- jmp .loopx_end
-..@flag230
- PIXEL00_22
- PIXEL01_12
- PIXEL10_12
- PIXEL11_11
- jmp .loopx_end
-..@flag199
- PIXEL00_11
- PIXEL01_12
- PIXEL10_21
- PIXEL11_11
- jmp .loopx_end
-..@flag220
- PIXEL00_21
- PIXEL01_11
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag158
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_22
- PIXEL11_12
- jmp .loopx_end
-..@flag234
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- PIXEL01_21
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_11
- jmp .loopx_end
-..@flag242
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- PIXEL10_12
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag59
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- PIXEL10_11
- PIXEL11_21
- jmp .loopx_end
-..@flag121
- PIXEL00_12
- PIXEL01_22
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag87
- PIXEL00_11
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_21
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag79
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_12
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- PIXEL11_22
- jmp .loopx_end
-..@flag122
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag94
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag218
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag91
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag229
- PIXEL00_20
- PIXEL01_20
- PIXEL10_12
- PIXEL11_11
- jmp .loopx_end
-..@flag167
- PIXEL00_11
- PIXEL01_12
- PIXEL10_20
- PIXEL11_20
- jmp .loopx_end
-..@flag173
- PIXEL00_12
- PIXEL01_20
- PIXEL10_11
- PIXEL11_20
- jmp .loopx_end
-..@flag181
- PIXEL00_20
- PIXEL01_11
- PIXEL10_20
- PIXEL11_12
- jmp .loopx_end
-..@flag186
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- PIXEL10_11
- PIXEL11_12
- jmp .loopx_end
-..@flag115
- PIXEL00_11
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- PIXEL10_12
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag93
- PIXEL00_12
- PIXEL01_11
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag206
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- PIXEL01_12
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- PIXEL11_11
- jmp .loopx_end
-..@flag205
-..@flag201
- PIXEL00_12
- PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- PIXEL11_11
- jmp .loopx_end
-..@flag174
-..@flag46
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- PIXEL01_12
- PIXEL10_11
- PIXEL11_20
- jmp .loopx_end
-..@flag179
-..@flag147
- PIXEL00_11
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- PIXEL10_20
- PIXEL11_12
- jmp .loopx_end
-..@flag117
-..@flag116
- PIXEL00_20
- PIXEL01_11
- PIXEL10_12
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag189
- PIXEL00_12
- PIXEL01_11
- PIXEL10_11
- PIXEL11_12
- jmp .loopx_end
-..@flag231
- PIXEL00_11
- PIXEL01_12
- PIXEL10_12
- PIXEL11_11
- jmp .loopx_end
-..@flag126
- PIXEL00_10
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_10
- jmp .loopx_end
-..@flag219
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_10
- PIXEL10_10
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag125
- DiffOrNot w8,w4,PIXEL00_12,PIXEL10_0,PIXEL00_61,PIXEL10_90
- PIXEL01_11
- PIXEL11_10
- jmp .loopx_end
-..@flag221
- PIXEL00_12
- DiffOrNot w6,w8,PIXEL01_11,PIXEL11_0,PIXEL01_60,PIXEL11_90
- PIXEL10_10
- jmp .loopx_end
-..@flag207
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_12,PIXEL00_90,PIXEL01_61
- PIXEL10_10
- PIXEL11_11
- jmp .loopx_end
-..@flag238
- PIXEL00_10
- PIXEL01_12
- DiffOrNot w8,w4,PIXEL10_0,PIXEL11_11,PIXEL10_90,PIXEL11_60
- jmp .loopx_end
-..@flag190
- PIXEL00_10
- DiffOrNot w2,w6,PIXEL01_0,PIXEL11_12,PIXEL01_90,PIXEL11_61
- PIXEL10_11
- jmp .loopx_end
-..@flag187
- DiffOrNot w4,w2,PIXEL00_0,PIXEL10_11,PIXEL00_90,PIXEL10_60
- PIXEL01_10
- PIXEL11_12
- jmp .loopx_end
-..@flag243
- PIXEL00_11
- PIXEL01_10
- DiffOrNot w6,w8,PIXEL10_12,PIXEL11_0,PIXEL10_61,PIXEL11_90
- jmp .loopx_end
-..@flag119
- DiffOrNot w2,w6,PIXEL00_11,PIXEL01_0,PIXEL00_60,PIXEL01_90
- PIXEL10_12
- PIXEL11_10
- jmp .loopx_end
-..@flag237
-..@flag233
- PIXEL00_12
- PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_100
- PIXEL11_11
- jmp .loopx_end
-..@flag175
-..@flag47
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_100
- PIXEL01_12
- PIXEL10_11
- PIXEL11_20
- jmp .loopx_end
-..@flag183
-..@flag151
- PIXEL00_11
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_100
- PIXEL10_20
- PIXEL11_12
- jmp .loopx_end
-..@flag245
-..@flag244
- PIXEL00_20
- PIXEL01_11
- PIXEL10_12
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_100
- jmp .loopx_end
-..@flag250
- PIXEL00_10
- PIXEL01_10
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag123
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_10
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_10
- jmp .loopx_end
-..@flag95
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_10
- PIXEL11_10
- jmp .loopx_end
-..@flag222
- PIXEL00_10
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_10
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag252
- PIXEL00_21
- PIXEL01_11
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_100
- jmp .loopx_end
-..@flag249
- PIXEL00_12
- PIXEL01_22
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_100
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag235
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_21
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_100
- PIXEL11_11
- jmp .loopx_end
-..@flag111
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_100
- PIXEL01_12
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_22
- jmp .loopx_end
-..@flag63
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_100
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_11
- PIXEL11_21
- jmp .loopx_end
-..@flag159
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_100
- PIXEL10_22
- PIXEL11_12
- jmp .loopx_end
-..@flag215
- PIXEL00_11
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_100
- PIXEL10_21
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag246
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_12
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_100
- jmp .loopx_end
-..@flag254
- PIXEL00_10
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_100
- jmp .loopx_end
-..@flag253
- PIXEL00_12
- PIXEL01_11
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_100
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_100
- jmp .loopx_end
-..@flag251
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_10
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_100
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag239
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_100
- PIXEL01_12
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_100
- PIXEL11_11
- jmp .loopx_end
-..@flag127
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_100
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_10
- jmp .loopx_end
-..@flag191
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_100
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_100
- PIXEL10_11
- PIXEL11_12
- jmp .loopx_end
-..@flag223
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_100
- PIXEL10_10
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag247
- PIXEL00_11
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_100
- PIXEL10_12
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_100
- jmp .loopx_end
-..@flag255
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_100
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_100
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_100
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_100
- jmp .loopx_end
-
-
-..@cross0
- mov edx,eax
- shl eax,16
- or eax,edx
- mov [edi],eax
- mov [edi+ebx],eax
- jmp .loopx_end
-..@cross1
- mov edx,eax
- shl eax,16
- or eax,edx
- mov ecx,[w2]
- and edx,[zerolowbits]
- and ecx,[zerolowbits]
- add ecx,edx
- shr ecx,1
- add ecx,0x0821
- and ecx,[zerolowbits]
- add edx,ecx
- shr edx,1
- mov ecx,edx
- shl edx,16
- or edx,ecx
- mov [edi],edx
- mov [edi+ebx],eax
- jmp .loopx_end
-..@cross2
- shl eax,16
- mov ecx,[w4]
- and edx,[zerolowbits]
- and ecx,[zerolowbits]
- add ecx,edx
- shr ecx,1
- add ecx,0x0821
- and ecx,[zerolowbits]
- add edx,ecx
- shr edx,1
- or eax,edx
- mov [edi],eax
- mov [edi+ebx],eax
- jmp .loopx_end
-..@cross4
- mov ecx,[w6]
- and edx,[zerolowbits]
- and ecx,[zerolowbits]
- add ecx,edx
- shr ecx,1
- add ecx,0x0821
- and ecx,[zerolowbits]
- add edx,ecx
- shr edx,1
- shl edx,16
- or eax,edx
- mov [edi],eax
- mov [edi+ebx],eax
- jmp .loopx_end
-..@cross8
- mov edx,eax
- shl eax,16
- or eax,edx
- mov ecx,[w8]
- and edx,[zerolowbits]
- and ecx,[zerolowbits]
- add ecx,edx
- shr ecx,1
- add ecx,0x0821
- and ecx,[zerolowbits]
- add edx,ecx
- shr edx,1
- mov ecx,edx
- shl edx,16
- or edx,ecx
- mov [edi],eax
- mov [edi+ebx],edx
- jmp .loopx_end
-
-.loopx_end
- add esi,2
- add edi,4
- dec dword[xcounter]
- jle .xres_2
- jmp .loopx
-.xres_2
- ; x=Xres-2 - special case
- jl .xres_1
- mov ebx,[prevline]
- movq mm5,[esi+ebx-4]
- movq mm6,[esi-4]
- mov ebx,[nextline]
- movq mm7,[esi+ebx-4]
- psrlq mm5,16
- psrlq mm6,16
- psrlq mm7,16
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- shr eax,16
- mov [w2],eax
- psrlq mm5,32
- movd eax,mm5
- mov [w3],eax
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- shr eax,16
- mov [w5],eax
- psrlq mm6,32
- movd eax,mm6
- mov [w6],eax
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- shr eax,16
- mov [w8],eax
- psrlq mm7,32
- movd eax,mm7
- mov [w9],eax
- jmp .flags
-.xres_1
- cmp dword[xcounter],-1
- jl .nexty
- ; x=Xres-1 - special case
- mov ebx,[prevline]
- movq mm5,[esi+ebx-6]
- movq mm6,[esi-6]
- mov ebx,[nextline]
- movq mm7,[esi+ebx-6]
- psrlq mm5,32
- psrlq mm6,32
- psrlq mm7,32
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- shr eax,16
- mov [w2],eax
- mov [w3],eax
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- shr eax,16
- mov [w5],eax
- mov [w6],eax
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- shr eax,16
- mov [w8],eax
- mov [w9],eax
- jmp .flags
-.nexty
- add edi,ebx
- dec dword[linesleft]
- jz .fin
- mov ebx,[ebp+Xres]
- shl ebx,1
- cmp dword[linesleft],1
- je .lastline
- mov dword[nextline],ebx
- neg ebx
- mov dword[prevline],ebx
- jmp .loopy
-.lastline
- mov dword[nextline],0
- neg ebx
- mov dword[prevline],ebx
- jmp .loopy
-.fin
- emms
- popad
- mov esp,ebp
- pop ebp
- ret
-
-SECTION .data
-FuncTable
- dd ..@flag0, ..@flag1, ..@flag2, ..@flag3, ..@flag4, ..@flag5, ..@flag6, ..@flag7
- dd ..@flag8, ..@flag9, ..@flag10, ..@flag11, ..@flag12, ..@flag13, ..@flag14, ..@flag15
- dd ..@flag16, ..@flag17, ..@flag18, ..@flag19, ..@flag20, ..@flag21, ..@flag22, ..@flag23
- dd ..@flag24, ..@flag25, ..@flag26, ..@flag27, ..@flag28, ..@flag29, ..@flag30, ..@flag31
- dd ..@flag32, ..@flag33, ..@flag34, ..@flag35, ..@flag36, ..@flag37, ..@flag38, ..@flag39
- dd ..@flag40, ..@flag41, ..@flag42, ..@flag43, ..@flag44, ..@flag45, ..@flag46, ..@flag47
- dd ..@flag48, ..@flag49, ..@flag50, ..@flag51, ..@flag52, ..@flag53, ..@flag54, ..@flag55
- dd ..@flag56, ..@flag57, ..@flag58, ..@flag59, ..@flag60, ..@flag61, ..@flag62, ..@flag63
- dd ..@flag64, ..@flag65, ..@flag66, ..@flag67, ..@flag68, ..@flag69, ..@flag70, ..@flag71
- dd ..@flag72, ..@flag73, ..@flag74, ..@flag75, ..@flag76, ..@flag77, ..@flag78, ..@flag79
- dd ..@flag80, ..@flag81, ..@flag82, ..@flag83, ..@flag84, ..@flag85, ..@flag86, ..@flag87
- dd ..@flag88, ..@flag89, ..@flag90, ..@flag91, ..@flag92, ..@flag93, ..@flag94, ..@flag95
- dd ..@flag96, ..@flag97, ..@flag98, ..@flag99, ..@flag100, ..@flag101, ..@flag102, ..@flag103
- dd ..@flag104, ..@flag105, ..@flag106, ..@flag107, ..@flag108, ..@flag109, ..@flag110, ..@flag111
- dd ..@flag112, ..@flag113, ..@flag114, ..@flag115, ..@flag116, ..@flag117, ..@flag118, ..@flag119
- dd ..@flag120, ..@flag121, ..@flag122, ..@flag123, ..@flag124, ..@flag125, ..@flag126, ..@flag127
- dd ..@flag128, ..@flag129, ..@flag130, ..@flag131, ..@flag132, ..@flag133, ..@flag134, ..@flag135
- dd ..@flag136, ..@flag137, ..@flag138, ..@flag139, ..@flag140, ..@flag141, ..@flag142, ..@flag143
- dd ..@flag144, ..@flag145, ..@flag146, ..@flag147, ..@flag148, ..@flag149, ..@flag150, ..@flag151
- dd ..@flag152, ..@flag153, ..@flag154, ..@flag155, ..@flag156, ..@flag157, ..@flag158, ..@flag159
- dd ..@flag160, ..@flag161, ..@flag162, ..@flag163, ..@flag164, ..@flag165, ..@flag166, ..@flag167
- dd ..@flag168, ..@flag169, ..@flag170, ..@flag171, ..@flag172, ..@flag173, ..@flag174, ..@flag175
- dd ..@flag176, ..@flag177, ..@flag178, ..@flag179, ..@flag180, ..@flag181, ..@flag182, ..@flag183
- dd ..@flag184, ..@flag185, ..@flag186, ..@flag187, ..@flag188, ..@flag189, ..@flag190, ..@flag191
- dd ..@flag192, ..@flag193, ..@flag194, ..@flag195, ..@flag196, ..@flag197, ..@flag198, ..@flag199
- dd ..@flag200, ..@flag201, ..@flag202, ..@flag203, ..@flag204, ..@flag205, ..@flag206, ..@flag207
- dd ..@flag208, ..@flag209, ..@flag210, ..@flag211, ..@flag212, ..@flag213, ..@flag214, ..@flag215
- dd ..@flag216, ..@flag217, ..@flag218, ..@flag219, ..@flag220, ..@flag221, ..@flag222, ..@flag223
- dd ..@flag224, ..@flag225, ..@flag226, ..@flag227, ..@flag228, ..@flag229, ..@flag230, ..@flag231
- dd ..@flag232, ..@flag233, ..@flag234, ..@flag235, ..@flag236, ..@flag237, ..@flag238, ..@flag239
- dd ..@flag240, ..@flag241, ..@flag242, ..@flag243, ..@flag244, ..@flag245, ..@flag246, ..@flag247
- dd ..@flag248, ..@flag249, ..@flag250, ..@flag251, ..@flag252, ..@flag253, ..@flag254, ..@flag255
-
-FuncTable2
- dd ..@cross0, ..@cross1, ..@cross2, ..@flag0,
- dd ..@cross4, ..@flag0, ..@flag0, ..@flag0,
- dd ..@cross8, ..@flag0, ..@flag0, ..@flag0,
- dd ..@flag0, ..@flag0, ..@flag0, ..@flag0
-
+++ /dev/null
-;hq2x filter
-;32bpp output
-;----------------------------------------------------------
-;Copyright (C) 2003 MaxSt ( maxst@hiend3d.com )
-;
-;This program is free software; you can redistribute it and/or
-;modify it under the terms of the GNU General Public License
-;as published by the Free Software Foundation; either
-;version 2 of the License, or (at your option) any later
-;version.
-;
-;This program is distributed in the hope that it will be useful,
-;but WITHOUT ANY WARRANTY; without even the implied warranty of
-;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;GNU General Public License for more details.
-;
-;You should have received a copy of the GNU General Public License
-;along with this program; if not, write to the Free Software
-;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-GLOBAL _hq2x_32
-
-EXTERN _LUT16to32
-EXTERN _RGBtoYUV
-
-SECTION .bss
-linesleft resd 1
-xcounter resd 1
-cross resd 1
-nextline resd 1
-prevline resd 1
-w1 resd 1
-w2 resd 1
-w3 resd 1
-w4 resd 1
-w5 resd 1
-w6 resd 1
-w7 resd 1
-w8 resd 1
-w9 resd 1
-c1 resd 1
-c2 resd 1
-c3 resd 1
-c4 resd 1
-c5 resd 1
-c6 resd 1
-c7 resd 1
-c8 resd 1
-c9 resd 1
-
-SECTION .data
-
-reg_blank dd 0,0
-const3 dd 0x00030003,0x00000003
-const5 dd 0x00050005,0x00000005
-const6 dd 0x00060006,0x00000006
-const14 dd 0x000E000E,0x0000000E
-threshold dd 0x00300706,0x00000000
-
-SECTION .text
-
-%macro TestDiff 2
- xor ecx,ecx
- mov edx,[%1]
- cmp edx,[%2]
- je %%fin
- mov ecx,_RGBtoYUV
- movd mm1,[ecx+edx*4]
- movq mm5,mm1
- mov edx,[%2]
- movd mm2,[ecx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd ecx,mm1
-%%fin:
-%endmacro
-
-%macro DiffOrNot 4
- TestDiff %1,%2
- test ecx,ecx
- jz %%same
- %3
- jmp %%fin
-%%same:
- %4
-%%fin
-%endmacro
-
-%macro DiffOrNot 6
- TestDiff %1,%2
- test ecx,ecx
- jz %%same
- %3
- %4
- jmp %%fin
-%%same:
- %5
- %6
-%%fin
-%endmacro
-
-%macro DiffOrNot 8
- TestDiff %1,%2
- test ecx,ecx
- jz %%same
- %3
- %4
- %5
- jmp %%fin
-%%same:
- %6
- %7
- %8
-%%fin
-%endmacro
-
-%macro DiffOrNot 10
- TestDiff %1,%2
- test ecx,ecx
- jz %%same
- %3
- %4
- %5
- %6
- jmp %%fin
-%%same:
- %7
- %8
- %9
- %10
-%%fin
-%endmacro
-
-%macro Interp1 3
- mov edx,%2
- shl edx,2
- add edx,%3
- sub edx,%2
- shr edx,2
- mov %1,edx
-%endmacro
-
-%macro Interp2 4
- mov edx,%2
- shl edx,1
- add edx,%3
- add edx,%4
- shr edx,2
- mov %1,edx
-%endmacro
-
-%macro Interp5 3
- mov edx,%2
- add edx,%3
- shr edx,1
- mov %1,edx
-%endmacro
-
-%macro Interp6 3
- movd mm1, eax
- movd mm2, %2
- movd mm3, %3
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- punpcklbw mm3, [reg_blank]
- pmullw mm1, [const5]
- psllw mm2, 1
- paddw mm1, mm3
- paddw mm1, mm2
- psrlw mm1, 3
- packuswb mm1, [reg_blank]
- movd %1, mm1
-%endmacro
-
-%macro Interp7 3
- movd mm1, eax
- movd mm2, %2
- movd mm3, %3
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- punpcklbw mm3, [reg_blank]
- pmullw mm1, [const6]
- paddw mm2, mm3
- paddw mm1, mm2
- psrlw mm1, 3
- packuswb mm1, [reg_blank]
- movd %1, mm1
-%endmacro
-
-%macro Interp9 3
- movd mm1, eax
- movd mm2, %2
- movd mm3, %3
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- punpcklbw mm3, [reg_blank]
- psllw mm1, 1
- paddw mm2, mm3
- pmullw mm2, [const3]
- paddw mm1, mm2
- psrlw mm1, 3
- packuswb mm1, [reg_blank]
- movd %1, mm1
-%endmacro
-
-%macro Interp10 3
- movd mm1, eax
- movd mm2, %2
- movd mm3, %3
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- punpcklbw mm3, [reg_blank]
- pmullw mm1, [const14]
- paddw mm2, mm3
- paddw mm1, mm2
- psrlw mm1, 4
- packuswb mm1, [reg_blank]
- movd %1, mm1
-%endmacro
-
-%macro PIXEL00_0 0
- mov [edi],eax
-%endmacro
-
-%macro PIXEL00_10 0
- Interp1 [edi],eax,[c1]
-%endmacro
-
-%macro PIXEL00_11 0
- Interp1 [edi],eax,[c4]
-%endmacro
-
-%macro PIXEL00_12 0
- Interp1 [edi],eax,[c2]
-%endmacro
-
-%macro PIXEL00_20 0
- Interp2 [edi],eax,[c4],[c2]
-%endmacro
-
-%macro PIXEL00_21 0
- Interp2 [edi],eax,[c1],[c2]
-%endmacro
-
-%macro PIXEL00_22 0
- Interp2 [edi],eax,[c1],[c4]
-%endmacro
-
-%macro PIXEL00_60 0
- Interp6 [edi],[c2],[c4]
-%endmacro
-
-%macro PIXEL00_61 0
- Interp6 [edi],[c4],[c2]
-%endmacro
-
-%macro PIXEL00_70 0
- Interp7 [edi],[c4],[c2]
-%endmacro
-
-%macro PIXEL00_90 0
- Interp9 [edi],[c4],[c2]
-%endmacro
-
-%macro PIXEL00_100 0
- Interp10 [edi],[c4],[c2]
-%endmacro
-
-%macro PIXEL01_0 0
- mov [edi+4],eax
-%endmacro
-
-%macro PIXEL01_10 0
- Interp1 [edi+4],eax,[c3]
-%endmacro
-
-%macro PIXEL01_11 0
- Interp1 [edi+4],eax,[c2]
-%endmacro
-
-%macro PIXEL01_12 0
- Interp1 [edi+4],eax,[c6]
-%endmacro
-
-%macro PIXEL01_20 0
- Interp2 [edi+4],eax,[c2],[c6]
-%endmacro
-
-%macro PIXEL01_21 0
- Interp2 [edi+4],eax,[c3],[c6]
-%endmacro
-
-%macro PIXEL01_22 0
- Interp2 [edi+4],eax,[c3],[c2]
-%endmacro
-
-%macro PIXEL01_60 0
- Interp6 [edi+4],[c6],[c2]
-%endmacro
-
-%macro PIXEL01_61 0
- Interp6 [edi+4],[c2],[c6]
-%endmacro
-
-%macro PIXEL01_70 0
- Interp7 [edi+4],[c2],[c6]
-%endmacro
-
-%macro PIXEL01_90 0
- Interp9 [edi+4],[c2],[c6]
-%endmacro
-
-%macro PIXEL01_100 0
- Interp10 [edi+4],[c2],[c6]
-%endmacro
-
-%macro PIXEL10_0 0
- mov [edi+ebx],eax
-%endmacro
-
-%macro PIXEL10_10 0
- Interp1 [edi+ebx],eax,[c7]
-%endmacro
-
-%macro PIXEL10_11 0
- Interp1 [edi+ebx],eax,[c8]
-%endmacro
-
-%macro PIXEL10_12 0
- Interp1 [edi+ebx],eax,[c4]
-%endmacro
-
-%macro PIXEL10_20 0
- Interp2 [edi+ebx],eax,[c8],[c4]
-%endmacro
-
-%macro PIXEL10_21 0
- Interp2 [edi+ebx],eax,[c7],[c4]
-%endmacro
-
-%macro PIXEL10_22 0
- Interp2 [edi+ebx],eax,[c7],[c8]
-%endmacro
-
-%macro PIXEL10_60 0
- Interp6 [edi+ebx],[c4],[c8]
-%endmacro
-
-%macro PIXEL10_61 0
- Interp6 [edi+ebx],[c8],[c4]
-%endmacro
-
-%macro PIXEL10_70 0
- Interp7 [edi+ebx],[c8],[c4]
-%endmacro
-
-%macro PIXEL10_90 0
- Interp9 [edi+ebx],[c8],[c4]
-%endmacro
-
-%macro PIXEL10_100 0
- Interp10 [edi+ebx],[c8],[c4]
-%endmacro
-
-%macro PIXEL11_0 0
- mov [edi+ebx+4],eax
-%endmacro
-
-%macro PIXEL11_10 0
- Interp1 [edi+ebx+4],eax,[c9]
-%endmacro
-
-%macro PIXEL11_11 0
- Interp1 [edi+ebx+4],eax,[c6]
-%endmacro
-
-%macro PIXEL11_12 0
- Interp1 [edi+ebx+4],eax,[c8]
-%endmacro
-
-%macro PIXEL11_20 0
- Interp2 [edi+ebx+4],eax,[c6],[c8]
-%endmacro
-
-%macro PIXEL11_21 0
- Interp2 [edi+ebx+4],eax,[c9],[c8]
-%endmacro
-
-%macro PIXEL11_22 0
- Interp2 [edi+ebx+4],eax,[c9],[c6]
-%endmacro
-
-%macro PIXEL11_60 0
- Interp6 [edi+ebx+4],[c8],[c6]
-%endmacro
-
-%macro PIXEL11_61 0
- Interp6 [edi+ebx+4],[c6],[c8]
-%endmacro
-
-%macro PIXEL11_70 0
- Interp7 [edi+ebx+4],[c6],[c8]
-%endmacro
-
-%macro PIXEL11_90 0
- Interp9 [edi+ebx+4],[c6],[c8]
-%endmacro
-
-%macro PIXEL11_100 0
- Interp10 [edi+ebx+4],[c6],[c8]
-%endmacro
-
-inbuffer equ 8
-outbuffer equ 12
-Xres equ 16
-Yres equ 20
-pitch equ 24
-
-_hq2x_32:
- push ebp
- mov ebp,esp
- pushad
-
- mov esi,[ebp+inbuffer]
- mov edi,[ebp+outbuffer]
- mov edx,[ebp+Yres]
- mov [linesleft],edx
- mov ebx,[ebp+Xres]
- shl ebx,1
- mov dword[prevline],0
- mov dword[nextline],ebx
-.loopy
- mov ecx,[ebp+Xres]
- sub ecx,2 ; x={Xres-2, Xres-1} are special cases.
- mov dword[xcounter],ecx
- ; x=0 - special case
- mov ebx,[prevline]
- movq mm5,[esi+ebx]
- movq mm6,[esi]
- mov ebx,[nextline]
- movq mm7,[esi+ebx]
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- mov [w2],edx
- shr eax,16
- mov [w3],eax
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- mov [w5],edx
- shr eax,16
- mov [w6],eax
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- mov [w8],edx
- shr eax,16
- mov [w9],eax
- jmp .flags
-.loopx
- mov ebx,[prevline]
- movq mm5,[esi+ebx-2]
- movq mm6,[esi-2]
- mov ebx,[nextline]
- movq mm7,[esi+ebx-2]
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- shr eax,16
- mov [w2],eax
- psrlq mm5,32
- movd eax,mm5
- movzx edx,ax
- mov [w3],edx
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- shr eax,16
- mov [w5],eax
- psrlq mm6,32
- movd eax,mm6
- movzx edx,ax
- mov [w6],edx
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- shr eax,16
- mov [w8],eax
- psrlq mm7,32
- movd eax,mm7
- movzx edx,ax
- mov [w9],edx
-.flags
- mov ebx,_RGBtoYUV
- mov eax,[w5]
- xor ecx,ecx
- movd mm5,[ebx+eax*4]
- mov dword[cross],0
-
- mov edx,[w2]
- cmp eax,edx
- je .noflag2
- or dword[cross],1
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag2
- or ecx,2
-.noflag2
- mov edx,[w4]
- cmp eax,edx
- je .noflag4
- or dword[cross],2
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag4
- or ecx,8
-.noflag4
- mov edx,[w6]
- cmp eax,edx
- je .noflag6
- or dword[cross],4
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag6
- or ecx,16
-.noflag6
- mov edx,[w8]
- cmp eax,edx
- je .noflag8
- or dword[cross],8
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag8
- or ecx,64
-.noflag8
- test ecx,ecx
- jnz .testflag1
- mov ecx,[cross]
- mov ebx,_LUT16to32
- mov eax,[ebx+eax*4]
- jmp [FuncTable2+ecx*4]
-.testflag1
- mov edx,[w1]
- cmp eax,edx
- je .noflag1
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag1
- or ecx,1
-.noflag1
- mov edx,[w3]
- cmp eax,edx
- je .noflag3
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag3
- or ecx,4
-.noflag3
- mov edx,[w7]
- cmp eax,edx
- je .noflag7
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag7
- or ecx,32
-.noflag7
- mov edx,[w9]
- cmp eax,edx
- je .noflag9
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag9
- or ecx,128
-.noflag9
- mov ebx,_LUT16to32
- mov eax,[ebx+eax*4]
- mov edx,[w2]
- mov edx,[ebx+edx*4]
- mov [c2],edx
- mov edx,[w4]
- mov edx,[ebx+edx*4]
- mov [c4],edx
- mov edx,[w6]
- mov edx,[ebx+edx*4]
- mov [c6],edx
- mov edx,[w8]
- mov edx,[ebx+edx*4]
- mov [c8],edx
- test ecx,0x005A
- jz .switch
- mov edx,[w1]
- mov edx,[ebx+edx*4]
- mov [c1],edx
- mov edx,[w3]
- mov edx,[ebx+edx*4]
- mov [c3],edx
- mov edx,[w7]
- mov edx,[ebx+edx*4]
- mov [c7],edx
- mov edx,[w9]
- mov edx,[ebx+edx*4]
- mov [c9],edx
-.switch
- mov ebx,[ebp+pitch]
- jmp [FuncTable+ecx*4]
-
-..@flag0
-..@flag1
-..@flag4
-..@flag32
-..@flag128
-..@flag5
-..@flag132
-..@flag160
-..@flag33
-..@flag129
-..@flag36
-..@flag133
-..@flag164
-..@flag161
-..@flag37
-..@flag165
-; PIXEL00_20
-; PIXEL01_20
-; PIXEL10_20
-; PIXEL11_20
-
-; the same, only optimized
- shl eax,1
- mov ecx,eax
- add ecx,[c2]
- mov edx,ecx
- add edx,[c4]
- shr edx,2
- mov [edi],edx
- add ecx,[c6]
- shr ecx,2
- mov [edi+4],ecx
- mov ecx,eax
- add ecx,[c8]
- mov edx,ecx
- add edx,[c4]
- shr edx,2
- mov [edi+ebx],edx
- add ecx,[c6]
- shr ecx,2
- mov [edi+ebx+4],ecx
- jmp .loopx_end
-..@flag2
-..@flag34
-..@flag130
-..@flag162
- PIXEL00_22
- PIXEL01_21
- PIXEL10_20
- PIXEL11_20
- jmp .loopx_end
-..@flag16
-..@flag17
-..@flag48
-..@flag49
- PIXEL00_20
- PIXEL01_22
- PIXEL10_20
- PIXEL11_21
- jmp .loopx_end
-..@flag64
-..@flag65
-..@flag68
-..@flag69
- PIXEL00_20
- PIXEL01_20
- PIXEL10_21
- PIXEL11_22
- jmp .loopx_end
-..@flag8
-..@flag12
-..@flag136
-..@flag140
- PIXEL00_21
- PIXEL01_20
- PIXEL10_22
- PIXEL11_20
- jmp .loopx_end
-..@flag3
-..@flag35
-..@flag131
-..@flag163
- PIXEL00_11
- PIXEL01_21
- PIXEL10_20
- PIXEL11_20
- jmp .loopx_end
-..@flag6
-..@flag38
-..@flag134
-..@flag166
- PIXEL00_22
- PIXEL01_12
- PIXEL10_20
- PIXEL11_20
- jmp .loopx_end
-..@flag20
-..@flag21
-..@flag52
-..@flag53
- PIXEL00_20
- PIXEL01_11
- PIXEL10_20
- PIXEL11_21
- jmp .loopx_end
-..@flag144
-..@flag145
-..@flag176
-..@flag177
- PIXEL00_20
- PIXEL01_22
- PIXEL10_20
- PIXEL11_12
- jmp .loopx_end
-..@flag192
-..@flag193
-..@flag196
-..@flag197
- PIXEL00_20
- PIXEL01_20
- PIXEL10_21
- PIXEL11_11
- jmp .loopx_end
-..@flag96
-..@flag97
-..@flag100
-..@flag101
- PIXEL00_20
- PIXEL01_20
- PIXEL10_12
- PIXEL11_22
- jmp .loopx_end
-..@flag40
-..@flag44
-..@flag168
-..@flag172
- PIXEL00_21
- PIXEL01_20
- PIXEL10_11
- PIXEL11_20
- jmp .loopx_end
-..@flag9
-..@flag13
-..@flag137
-..@flag141
- PIXEL00_12
- PIXEL01_20
- PIXEL10_22
- PIXEL11_20
- jmp .loopx_end
-..@flag18
-..@flag50
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_20
- PIXEL10_20
- PIXEL11_21
- jmp .loopx_end
-..@flag80
-..@flag81
- PIXEL00_20
- PIXEL01_22
- PIXEL10_21
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_20
- jmp .loopx_end
-..@flag72
-..@flag76
- PIXEL00_21
- PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_20
- PIXEL11_22
- jmp .loopx_end
-..@flag10
-..@flag138
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_20
- PIXEL01_21
- PIXEL10_22
- PIXEL11_20
- jmp .loopx_end
-..@flag66
- PIXEL00_22
- PIXEL01_21
- PIXEL10_21
- PIXEL11_22
- jmp .loopx_end
-..@flag24
- PIXEL00_21
- PIXEL01_22
- PIXEL10_22
- PIXEL11_21
- jmp .loopx_end
-..@flag7
-..@flag39
-..@flag135
- PIXEL00_11
- PIXEL01_12
- PIXEL10_20
- PIXEL11_20
- jmp .loopx_end
-..@flag148
-..@flag149
-..@flag180
- PIXEL00_20
- PIXEL01_11
- PIXEL10_20
- PIXEL11_12
- jmp .loopx_end
-..@flag224
-..@flag228
-..@flag225
- PIXEL00_20
- PIXEL01_20
- PIXEL10_12
- PIXEL11_11
- jmp .loopx_end
-..@flag41
-..@flag169
-..@flag45
- PIXEL00_12
- PIXEL01_20
- PIXEL10_11
- PIXEL11_20
- jmp .loopx_end
-..@flag22
-..@flag54
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_20
- PIXEL11_21
- jmp .loopx_end
-..@flag208
-..@flag209
- PIXEL00_20
- PIXEL01_22
- PIXEL10_21
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag104
-..@flag108
- PIXEL00_21
- PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_22
- jmp .loopx_end
-..@flag11
-..@flag139
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_21
- PIXEL10_22
- PIXEL11_20
- jmp .loopx_end
-..@flag19
-..@flag51
- DiffOrNot w2,w6,PIXEL00_11,PIXEL01_10,PIXEL00_60,PIXEL01_90
- PIXEL10_20
- PIXEL11_21
- jmp .loopx_end
-..@flag146
-..@flag178
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_10,PIXEL11_12,PIXEL01_90,PIXEL11_61
- PIXEL10_20
- jmp .loopx_end
-..@flag84
-..@flag85
- PIXEL00_20
- DiffOrNot w6,w8,PIXEL01_11,PIXEL11_10,PIXEL01_60,PIXEL11_90
- PIXEL10_21
- jmp .loopx_end
-..@flag112
-..@flag113
- PIXEL00_20
- PIXEL01_22
- DiffOrNot w6,w8,PIXEL10_12,PIXEL11_10,PIXEL10_61,PIXEL11_90
- jmp .loopx_end
-..@flag200
-..@flag204
- PIXEL00_21
- PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_10,PIXEL11_11,PIXEL10_90,PIXEL11_60
- jmp .loopx_end
-..@flag73
-..@flag77
- DiffOrNot w8,w4,PIXEL00_12,PIXEL10_10,PIXEL00_61,PIXEL10_90
- PIXEL01_20
- PIXEL11_22
- jmp .loopx_end
-..@flag42
-..@flag170
- DiffOrNot w4,w2,PIXEL00_10,PIXEL10_11,PIXEL00_90,PIXEL10_60
- PIXEL01_21
- PIXEL11_20
- jmp .loopx_end
-..@flag14
-..@flag142
- DiffOrNot w4,w2,PIXEL00_10,PIXEL01_12,PIXEL00_90,PIXEL01_61
- PIXEL10_22
- PIXEL11_20
- jmp .loopx_end
-..@flag67
- PIXEL00_11
- PIXEL01_21
- PIXEL10_21
- PIXEL11_22
- jmp .loopx_end
-..@flag70
- PIXEL00_22
- PIXEL01_12
- PIXEL10_21
- PIXEL11_22
- jmp .loopx_end
-..@flag28
- PIXEL00_21
- PIXEL01_11
- PIXEL10_22
- PIXEL11_21
- jmp .loopx_end
-..@flag152
- PIXEL00_21
- PIXEL01_22
- PIXEL10_22
- PIXEL11_12
- jmp .loopx_end
-..@flag194
- PIXEL00_22
- PIXEL01_21
- PIXEL10_21
- PIXEL11_11
- jmp .loopx_end
-..@flag98
- PIXEL00_22
- PIXEL01_21
- PIXEL10_12
- PIXEL11_22
- jmp .loopx_end
-..@flag56
- PIXEL00_21
- PIXEL01_22
- PIXEL10_11
- PIXEL11_21
- jmp .loopx_end
-..@flag25
- PIXEL00_12
- PIXEL01_22
- PIXEL10_22
- PIXEL11_21
- jmp .loopx_end
-..@flag26
-..@flag31
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_22
- PIXEL11_21
- jmp .loopx_end
-..@flag82
-..@flag214
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_21
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag88
-..@flag248
- PIXEL00_21
- PIXEL01_22
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag74
-..@flag107
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_21
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_22
- jmp .loopx_end
-..@flag27
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_10
- PIXEL10_22
- PIXEL11_21
- jmp .loopx_end
-..@flag86
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_21
- PIXEL11_10
- jmp .loopx_end
-..@flag216
- PIXEL00_21
- PIXEL01_22
- PIXEL10_10
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag106
- PIXEL00_10
- PIXEL01_21
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_22
- jmp .loopx_end
-..@flag30
- PIXEL00_10
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_22
- PIXEL11_21
- jmp .loopx_end
-..@flag210
- PIXEL00_22
- PIXEL01_10
- PIXEL10_21
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag120
- PIXEL00_21
- PIXEL01_22
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_10
- jmp .loopx_end
-..@flag75
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_21
- PIXEL10_10
- PIXEL11_22
- jmp .loopx_end
-..@flag29
- PIXEL00_12
- PIXEL01_11
- PIXEL10_22
- PIXEL11_21
- jmp .loopx_end
-..@flag198
- PIXEL00_22
- PIXEL01_12
- PIXEL10_21
- PIXEL11_11
- jmp .loopx_end
-..@flag184
- PIXEL00_21
- PIXEL01_22
- PIXEL10_11
- PIXEL11_12
- jmp .loopx_end
-..@flag99
- PIXEL00_11
- PIXEL01_21
- PIXEL10_12
- PIXEL11_22
- jmp .loopx_end
-..@flag57
- PIXEL00_12
- PIXEL01_22
- PIXEL10_11
- PIXEL11_21
- jmp .loopx_end
-..@flag71
- PIXEL00_11
- PIXEL01_12
- PIXEL10_21
- PIXEL11_22
- jmp .loopx_end
-..@flag156
- PIXEL00_21
- PIXEL01_11
- PIXEL10_22
- PIXEL11_12
- jmp .loopx_end
-..@flag226
- PIXEL00_22
- PIXEL01_21
- PIXEL10_12
- PIXEL11_11
- jmp .loopx_end
-..@flag60
- PIXEL00_21
- PIXEL01_11
- PIXEL10_11
- PIXEL11_21
- jmp .loopx_end
-..@flag195
- PIXEL00_11
- PIXEL01_21
- PIXEL10_21
- PIXEL11_11
- jmp .loopx_end
-..@flag102
- PIXEL00_22
- PIXEL01_12
- PIXEL10_12
- PIXEL11_22
- jmp .loopx_end
-..@flag153
- PIXEL00_12
- PIXEL01_22
- PIXEL10_22
- PIXEL11_12
- jmp .loopx_end
-..@flag58
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- PIXEL10_11
- PIXEL11_21
- jmp .loopx_end
-..@flag83
- PIXEL00_11
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- PIXEL10_21
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag92
- PIXEL00_21
- PIXEL01_11
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag202
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- PIXEL01_21
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- PIXEL11_11
- jmp .loopx_end
-..@flag78
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- PIXEL01_12
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- PIXEL11_22
- jmp .loopx_end
-..@flag154
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- PIXEL10_22
- PIXEL11_12
- jmp .loopx_end
-..@flag114
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- PIXEL10_12
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag89
- PIXEL00_12
- PIXEL01_22
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag90
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag55
-..@flag23
- DiffOrNot w2,w6,PIXEL00_11,PIXEL01_0,PIXEL00_60,PIXEL01_90
- PIXEL10_20
- PIXEL11_21
- jmp .loopx_end
-..@flag182
-..@flag150
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_0,PIXEL11_12,PIXEL01_90,PIXEL11_61
- PIXEL10_20
- jmp .loopx_end
-..@flag213
-..@flag212
- PIXEL00_20
- DiffOrNot w6,w8,PIXEL01_11,PIXEL11_0,PIXEL01_60,PIXEL11_90
- PIXEL10_21
- jmp .loopx_end
-..@flag241
-..@flag240
- PIXEL00_20
- PIXEL01_22
- DiffOrNot w6,w8,PIXEL10_12,PIXEL11_0,PIXEL10_61,PIXEL11_90
- jmp .loopx_end
-..@flag236
-..@flag232
- PIXEL00_21
- PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_0,PIXEL11_11,PIXEL10_90,PIXEL11_60
- jmp .loopx_end
-..@flag109
-..@flag105
- DiffOrNot w8,w4,PIXEL00_12,PIXEL10_0,PIXEL00_61,PIXEL10_90
- PIXEL01_20
- PIXEL11_22
- jmp .loopx_end
-..@flag171
-..@flag43
- DiffOrNot w4,w2,PIXEL00_0,PIXEL10_11,PIXEL00_90,PIXEL10_60
- PIXEL01_21
- PIXEL11_20
- jmp .loopx_end
-..@flag143
-..@flag15
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_12,PIXEL00_90,PIXEL01_61
- PIXEL10_22
- PIXEL11_20
- jmp .loopx_end
-..@flag124
- PIXEL00_21
- PIXEL01_11
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_10
- jmp .loopx_end
-..@flag203
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_21
- PIXEL10_10
- PIXEL11_11
- jmp .loopx_end
-..@flag62
- PIXEL00_10
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_11
- PIXEL11_21
- jmp .loopx_end
-..@flag211
- PIXEL00_11
- PIXEL01_10
- PIXEL10_21
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag118
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_12
- PIXEL11_10
- jmp .loopx_end
-..@flag217
- PIXEL00_12
- PIXEL01_22
- PIXEL10_10
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag110
- PIXEL00_10
- PIXEL01_12
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_22
- jmp .loopx_end
-..@flag155
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_10
- PIXEL10_22
- PIXEL11_12
- jmp .loopx_end
-..@flag188
- PIXEL00_21
- PIXEL01_11
- PIXEL10_11
- PIXEL11_12
- jmp .loopx_end
-..@flag185
- PIXEL00_12
- PIXEL01_22
- PIXEL10_11
- PIXEL11_12
- jmp .loopx_end
-..@flag61
- PIXEL00_12
- PIXEL01_11
- PIXEL10_11
- PIXEL11_21
- jmp .loopx_end
-..@flag157
- PIXEL00_12
- PIXEL01_11
- PIXEL10_22
- PIXEL11_12
- jmp .loopx_end
-..@flag103
- PIXEL00_11
- PIXEL01_12
- PIXEL10_12
- PIXEL11_22
- jmp .loopx_end
-..@flag227
- PIXEL00_11
- PIXEL01_21
- PIXEL10_12
- PIXEL11_11
- jmp .loopx_end
-..@flag230
- PIXEL00_22
- PIXEL01_12
- PIXEL10_12
- PIXEL11_11
- jmp .loopx_end
-..@flag199
- PIXEL00_11
- PIXEL01_12
- PIXEL10_21
- PIXEL11_11
- jmp .loopx_end
-..@flag220
- PIXEL00_21
- PIXEL01_11
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag158
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_22
- PIXEL11_12
- jmp .loopx_end
-..@flag234
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- PIXEL01_21
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_11
- jmp .loopx_end
-..@flag242
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- PIXEL10_12
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag59
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- PIXEL10_11
- PIXEL11_21
- jmp .loopx_end
-..@flag121
- PIXEL00_12
- PIXEL01_22
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag87
- PIXEL00_11
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_21
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag79
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_12
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- PIXEL11_22
- jmp .loopx_end
-..@flag122
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag94
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag218
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag91
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag229
- PIXEL00_20
- PIXEL01_20
- PIXEL10_12
- PIXEL11_11
- jmp .loopx_end
-..@flag167
- PIXEL00_11
- PIXEL01_12
- PIXEL10_20
- PIXEL11_20
- jmp .loopx_end
-..@flag173
- PIXEL00_12
- PIXEL01_20
- PIXEL10_11
- PIXEL11_20
- jmp .loopx_end
-..@flag181
- PIXEL00_20
- PIXEL01_11
- PIXEL10_20
- PIXEL11_12
- jmp .loopx_end
-..@flag186
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- PIXEL10_11
- PIXEL11_12
- jmp .loopx_end
-..@flag115
- PIXEL00_11
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- PIXEL10_12
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag93
- PIXEL00_12
- PIXEL01_11
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag206
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- PIXEL01_12
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- PIXEL11_11
- jmp .loopx_end
-..@flag205
-..@flag201
- PIXEL00_12
- PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_10,PIXEL10_70
- PIXEL11_11
- jmp .loopx_end
-..@flag174
-..@flag46
- DiffOrNot w4,w2,PIXEL00_10,PIXEL00_70
- PIXEL01_12
- PIXEL10_11
- PIXEL11_20
- jmp .loopx_end
-..@flag179
-..@flag147
- PIXEL00_11
- DiffOrNot w2,w6,PIXEL01_10,PIXEL01_70
- PIXEL10_20
- PIXEL11_12
- jmp .loopx_end
-..@flag117
-..@flag116
- PIXEL00_20
- PIXEL01_11
- PIXEL10_12
- DiffOrNot w6,w8,PIXEL11_10,PIXEL11_70
- jmp .loopx_end
-..@flag189
- PIXEL00_12
- PIXEL01_11
- PIXEL10_11
- PIXEL11_12
- jmp .loopx_end
-..@flag231
- PIXEL00_11
- PIXEL01_12
- PIXEL10_12
- PIXEL11_11
- jmp .loopx_end
-..@flag126
- PIXEL00_10
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_10
- jmp .loopx_end
-..@flag219
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_10
- PIXEL10_10
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag125
- DiffOrNot w8,w4,PIXEL00_12,PIXEL10_0,PIXEL00_61,PIXEL10_90
- PIXEL01_11
- PIXEL11_10
- jmp .loopx_end
-..@flag221
- PIXEL00_12
- DiffOrNot w6,w8,PIXEL01_11,PIXEL11_0,PIXEL01_60,PIXEL11_90
- PIXEL10_10
- jmp .loopx_end
-..@flag207
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_12,PIXEL00_90,PIXEL01_61
- PIXEL10_10
- PIXEL11_11
- jmp .loopx_end
-..@flag238
- PIXEL00_10
- PIXEL01_12
- DiffOrNot w8,w4,PIXEL10_0,PIXEL11_11,PIXEL10_90,PIXEL11_60
- jmp .loopx_end
-..@flag190
- PIXEL00_10
- DiffOrNot w2,w6,PIXEL01_0,PIXEL11_12,PIXEL01_90,PIXEL11_61
- PIXEL10_11
- jmp .loopx_end
-..@flag187
- DiffOrNot w4,w2,PIXEL00_0,PIXEL10_11,PIXEL00_90,PIXEL10_60
- PIXEL01_10
- PIXEL11_12
- jmp .loopx_end
-..@flag243
- PIXEL00_11
- PIXEL01_10
- DiffOrNot w6,w8,PIXEL10_12,PIXEL11_0,PIXEL10_61,PIXEL11_90
- jmp .loopx_end
-..@flag119
- DiffOrNot w2,w6,PIXEL00_11,PIXEL01_0,PIXEL00_60,PIXEL01_90
- PIXEL10_12
- PIXEL11_10
- jmp .loopx_end
-..@flag237
-..@flag233
- PIXEL00_12
- PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_100
- PIXEL11_11
- jmp .loopx_end
-..@flag175
-..@flag47
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_100
- PIXEL01_12
- PIXEL10_11
- PIXEL11_20
- jmp .loopx_end
-..@flag183
-..@flag151
- PIXEL00_11
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_100
- PIXEL10_20
- PIXEL11_12
- jmp .loopx_end
-..@flag245
-..@flag244
- PIXEL00_20
- PIXEL01_11
- PIXEL10_12
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_100
- jmp .loopx_end
-..@flag250
- PIXEL00_10
- PIXEL01_10
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag123
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_10
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_10
- jmp .loopx_end
-..@flag95
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_10
- PIXEL11_10
- jmp .loopx_end
-..@flag222
- PIXEL00_10
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_10
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag252
- PIXEL00_21
- PIXEL01_11
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_100
- jmp .loopx_end
-..@flag249
- PIXEL00_12
- PIXEL01_22
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_100
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag235
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_21
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_100
- PIXEL11_11
- jmp .loopx_end
-..@flag111
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_100
- PIXEL01_12
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_22
- jmp .loopx_end
-..@flag63
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_100
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_11
- PIXEL11_21
- jmp .loopx_end
-..@flag159
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_100
- PIXEL10_22
- PIXEL11_12
- jmp .loopx_end
-..@flag215
- PIXEL00_11
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_100
- PIXEL10_21
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag246
- PIXEL00_22
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- PIXEL10_12
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_100
- jmp .loopx_end
-..@flag254
- PIXEL00_10
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_100
- jmp .loopx_end
-..@flag253
- PIXEL00_12
- PIXEL01_11
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_100
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_100
- jmp .loopx_end
-..@flag251
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_10
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_100
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag239
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_100
- PIXEL01_12
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_100
- PIXEL11_11
- jmp .loopx_end
-..@flag127
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_100
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_20
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_20
- PIXEL11_10
- jmp .loopx_end
-..@flag191
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_100
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_100
- PIXEL10_11
- PIXEL11_12
- jmp .loopx_end
-..@flag223
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_100
- PIXEL10_10
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_20
- jmp .loopx_end
-..@flag247
- PIXEL00_11
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_100
- PIXEL10_12
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_100
- jmp .loopx_end
-..@flag255
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_100
- DiffOrNot w2,w6,PIXEL01_0,PIXEL01_100
- DiffOrNot w8,w4,PIXEL10_0,PIXEL10_100
- DiffOrNot w6,w8,PIXEL11_0,PIXEL11_100
- jmp .loopx_end
-
-
-..@cross0
- mov ebx,[ebp+pitch]
- mov [edi],eax
- mov [edi+4],eax
- mov [edi+ebx],eax
- mov [edi+ebx+4],eax
- jmp .loopx_end
-..@cross1
- mov ecx,[w2]
- mov edx,eax
- shl edx,2
- add edx,[ebx+ecx*4]
- sub edx,eax
- shr edx,2
- mov ebx,[ebp+pitch]
- mov [edi],edx
- mov [edi+4],edx
- mov [edi+ebx],eax
- mov [edi+ebx+4],eax
- jmp .loopx_end
-..@cross2
- mov ecx,[w4]
- mov edx,eax
- shl edx,2
- add edx,[ebx+ecx*4]
- sub edx,eax
- shr edx,2
- mov ebx,[ebp+pitch]
- mov [edi],edx
- mov [edi+4],eax
- mov [edi+ebx],edx
- mov [edi+ebx+4],eax
- jmp .loopx_end
-..@cross4
- mov ecx,[w6]
- mov edx,eax
- shl edx,2
- add edx,[ebx+ecx*4]
- sub edx,eax
- shr edx,2
- mov ebx,[ebp+pitch]
- mov [edi],eax
- mov [edi+4],edx
- mov [edi+ebx],eax
- mov [edi+ebx+4],edx
- jmp .loopx_end
-..@cross8
- mov ecx,[w8]
- mov edx,eax
- shl edx,2
- add edx,[ebx+ecx*4]
- sub edx,eax
- shr edx,2
- mov ebx,[ebp+pitch]
- mov [edi],eax
- mov [edi+4],eax
- mov [edi+ebx],edx
- mov [edi+ebx+4],edx
- jmp .loopx_end
-..@crossN
- mov edx,[w2]
- mov ecx,[ebx+edx*4]
- mov [c2],ecx
- mov edx,[w4]
- mov ecx,[ebx+edx*4]
- mov [c4],ecx
- mov edx,[w6]
- mov ecx,[ebx+edx*4]
- mov [c6],ecx
- mov edx,[w8]
- mov ecx,[ebx+edx*4]
- mov [c8],ecx
- mov ebx,[ebp+pitch]
- jmp ..@flag0
-
-.loopx_end
- add esi,2
- add edi,8
- dec dword[xcounter]
- jle .xres_2
- jmp .loopx
-.xres_2
- ; x=Xres-2 - special case
- jl .xres_1
- mov ebx,[prevline]
- movq mm5,[esi+ebx-4]
- movq mm6,[esi-4]
- mov ebx,[nextline]
- movq mm7,[esi+ebx-4]
- psrlq mm5,16
- psrlq mm6,16
- psrlq mm7,16
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- shr eax,16
- mov [w2],eax
- psrlq mm5,32
- movd eax,mm5
- mov [w3],eax
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- shr eax,16
- mov [w5],eax
- psrlq mm6,32
- movd eax,mm6
- mov [w6],eax
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- shr eax,16
- mov [w8],eax
- psrlq mm7,32
- movd eax,mm7
- mov [w9],eax
- jmp .flags
-.xres_1
- cmp dword[xcounter],-1
- jl .nexty
- ; x=Xres-1 - special case
- mov ebx,[prevline]
- movq mm5,[esi+ebx-6]
- movq mm6,[esi-6]
- mov ebx,[nextline]
- movq mm7,[esi+ebx-6]
- psrlq mm5,32
- psrlq mm6,32
- psrlq mm7,32
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- shr eax,16
- mov [w2],eax
- mov [w3],eax
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- shr eax,16
- mov [w5],eax
- mov [w6],eax
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- shr eax,16
- mov [w8],eax
- mov [w9],eax
- jmp .flags
-.nexty
- add edi,ebx
- dec dword[linesleft]
- jz .fin
- mov ebx,[ebp+Xres]
- shl ebx,1
- cmp dword[linesleft],1
- je .lastline
- mov dword[nextline],ebx
- neg ebx
- mov dword[prevline],ebx
- jmp .loopy
-.lastline
- mov dword[nextline],0
- neg ebx
- mov dword[prevline],ebx
- jmp .loopy
-.fin
- emms
- popad
- mov esp,ebp
- pop ebp
- ret
-
-SECTION .data
-FuncTable
- dd ..@flag0, ..@flag1, ..@flag2, ..@flag3, ..@flag4, ..@flag5, ..@flag6, ..@flag7
- dd ..@flag8, ..@flag9, ..@flag10, ..@flag11, ..@flag12, ..@flag13, ..@flag14, ..@flag15
- dd ..@flag16, ..@flag17, ..@flag18, ..@flag19, ..@flag20, ..@flag21, ..@flag22, ..@flag23
- dd ..@flag24, ..@flag25, ..@flag26, ..@flag27, ..@flag28, ..@flag29, ..@flag30, ..@flag31
- dd ..@flag32, ..@flag33, ..@flag34, ..@flag35, ..@flag36, ..@flag37, ..@flag38, ..@flag39
- dd ..@flag40, ..@flag41, ..@flag42, ..@flag43, ..@flag44, ..@flag45, ..@flag46, ..@flag47
- dd ..@flag48, ..@flag49, ..@flag50, ..@flag51, ..@flag52, ..@flag53, ..@flag54, ..@flag55
- dd ..@flag56, ..@flag57, ..@flag58, ..@flag59, ..@flag60, ..@flag61, ..@flag62, ..@flag63
- dd ..@flag64, ..@flag65, ..@flag66, ..@flag67, ..@flag68, ..@flag69, ..@flag70, ..@flag71
- dd ..@flag72, ..@flag73, ..@flag74, ..@flag75, ..@flag76, ..@flag77, ..@flag78, ..@flag79
- dd ..@flag80, ..@flag81, ..@flag82, ..@flag83, ..@flag84, ..@flag85, ..@flag86, ..@flag87
- dd ..@flag88, ..@flag89, ..@flag90, ..@flag91, ..@flag92, ..@flag93, ..@flag94, ..@flag95
- dd ..@flag96, ..@flag97, ..@flag98, ..@flag99, ..@flag100, ..@flag101, ..@flag102, ..@flag103
- dd ..@flag104, ..@flag105, ..@flag106, ..@flag107, ..@flag108, ..@flag109, ..@flag110, ..@flag111
- dd ..@flag112, ..@flag113, ..@flag114, ..@flag115, ..@flag116, ..@flag117, ..@flag118, ..@flag119
- dd ..@flag120, ..@flag121, ..@flag122, ..@flag123, ..@flag124, ..@flag125, ..@flag126, ..@flag127
- dd ..@flag128, ..@flag129, ..@flag130, ..@flag131, ..@flag132, ..@flag133, ..@flag134, ..@flag135
- dd ..@flag136, ..@flag137, ..@flag138, ..@flag139, ..@flag140, ..@flag141, ..@flag142, ..@flag143
- dd ..@flag144, ..@flag145, ..@flag146, ..@flag147, ..@flag148, ..@flag149, ..@flag150, ..@flag151
- dd ..@flag152, ..@flag153, ..@flag154, ..@flag155, ..@flag156, ..@flag157, ..@flag158, ..@flag159
- dd ..@flag160, ..@flag161, ..@flag162, ..@flag163, ..@flag164, ..@flag165, ..@flag166, ..@flag167
- dd ..@flag168, ..@flag169, ..@flag170, ..@flag171, ..@flag172, ..@flag173, ..@flag174, ..@flag175
- dd ..@flag176, ..@flag177, ..@flag178, ..@flag179, ..@flag180, ..@flag181, ..@flag182, ..@flag183
- dd ..@flag184, ..@flag185, ..@flag186, ..@flag187, ..@flag188, ..@flag189, ..@flag190, ..@flag191
- dd ..@flag192, ..@flag193, ..@flag194, ..@flag195, ..@flag196, ..@flag197, ..@flag198, ..@flag199
- dd ..@flag200, ..@flag201, ..@flag202, ..@flag203, ..@flag204, ..@flag205, ..@flag206, ..@flag207
- dd ..@flag208, ..@flag209, ..@flag210, ..@flag211, ..@flag212, ..@flag213, ..@flag214, ..@flag215
- dd ..@flag216, ..@flag217, ..@flag218, ..@flag219, ..@flag220, ..@flag221, ..@flag222, ..@flag223
- dd ..@flag224, ..@flag225, ..@flag226, ..@flag227, ..@flag228, ..@flag229, ..@flag230, ..@flag231
- dd ..@flag232, ..@flag233, ..@flag234, ..@flag235, ..@flag236, ..@flag237, ..@flag238, ..@flag239
- dd ..@flag240, ..@flag241, ..@flag242, ..@flag243, ..@flag244, ..@flag245, ..@flag246, ..@flag247
- dd ..@flag248, ..@flag249, ..@flag250, ..@flag251, ..@flag252, ..@flag253, ..@flag254, ..@flag255
-
-FuncTable2
- dd ..@cross0, ..@cross1, ..@cross2, ..@crossN,
- dd ..@cross4, ..@crossN, ..@crossN, ..@crossN,
- dd ..@cross8, ..@crossN, ..@crossN, ..@crossN,
- dd ..@crossN, ..@crossN, ..@crossN, ..@crossN
-
+++ /dev/null
-;hq3x filter
-;16bpp output
-;----------------------------------------------------------
-;Copyright (C) 2003 MaxSt ( maxst@hiend3d.com )
-;
-;This program is free software; you can redistribute it and/or
-;modify it under the terms of the GNU General Public License
-;as published by the Free Software Foundation; either
-;version 2 of the License, or (at your option) any later
-;version.
-;
-;This program is distributed in the hope that it will be useful,
-;but WITHOUT ANY WARRANTY; without even the implied warranty of
-;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;GNU General Public License for more details.
-;
-;You should have received a copy of the GNU General Public License
-;along with this program; if not, write to the Free Software
-;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-GLOBAL _hq3x_16
-
-EXTERN _LUT16to32
-EXTERN _RGBtoYUV
-
-SECTION .bss
-linesleft resd 1
-xcounter resd 1
-cross resd 1
-nextline resd 1
-prevline resd 1
-w1 resd 1
-w2 resd 1
-w3 resd 1
-w4 resd 1
-w5 resd 1
-w6 resd 1
-w7 resd 1
-w8 resd 1
-w9 resd 1
-
-SECTION .data
-
-reg_blank dd 0,0
-const7 dd 0x00070007,0x00000007
-threshold dd 0x00300706,0x00000000
-zerolowbits dd 0xF7DEF7DE
-
-SECTION .text
-
-%macro TestDiff 2
- xor ecx,ecx
- mov edx,[%1]
- cmp edx,[%2]
- je %%fin
- mov ecx,_RGBtoYUV
- movd mm1,[ecx+edx*4]
- movq mm5,mm1
- mov edx,[%2]
- movd mm2,[ecx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd ecx,mm1
-%%fin:
-%endmacro
-
-%macro DiffOrNot 4
- TestDiff %1,%2
- test ecx,ecx
- jz %%same
- %3
- jmp %%fin
-%%same:
- %4
-%%fin
-%endmacro
-
-%macro DiffOrNot 6
- TestDiff %1,%2
- test ecx,ecx
- jz %%same
- %3
- %4
- jmp %%fin
-%%same:
- %5
- %6
-%%fin
-%endmacro
-
-%macro DiffOrNot 8
- TestDiff %1,%2
- test ecx,ecx
- jz %%same
- %3
- %4
- %5
- jmp %%fin
-%%same:
- %6
- %7
- %8
-%%fin
-%endmacro
-
-%macro DiffOrNot 10
- TestDiff %1,%2
- test ecx,ecx
- jz %%same
- %3
- %4
- %5
- %6
- jmp %%fin
-%%same:
- %7
- %8
- %9
- %10
-%%fin
-%endmacro
-
-%macro Interp1 3
- mov edx,%2
- mov ecx,%3
- cmp edx,ecx
- je %%fin
- and edx,[zerolowbits]
- and ecx,[zerolowbits]
- add ecx,edx
- shr ecx,1
- add ecx,0x0821
- and ecx,[zerolowbits]
- add edx,ecx
- shr edx,1
-%%fin
- mov %1,dx
-%endmacro
-
-%macro Interp2 4
- mov edx,%3
- mov ecx,%4
- cmp edx,ecx
- je %%fin1
- and edx,[zerolowbits]
- and ecx,[zerolowbits]
- add ecx,edx
- shr ecx,1
- add ecx,0x0821
-%%fin1
- mov edx,%2
- cmp edx,ecx
- je %%fin2
- and ecx,[zerolowbits]
- and edx,[zerolowbits]
- add edx,ecx
- shr edx,1
-%%fin2
- mov %1,dx
-%endmacro
-
-%macro Interp3 2
- mov ecx, _LUT16to32
- movd mm1, [ecx+eax*4]
- mov edx, %2
- movd mm2, [ecx+edx*4]
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- pmullw mm1, [const7]
- paddw mm1, mm2
- psrlw mm1, 5
- packuswb mm1, [reg_blank]
- movd edx, mm1
- shl dl, 2
- shr edx, 1
- shl dx, 3
- shr edx, 5
- mov %1, dx
-%endmacro
-
-%macro Interp4 3
- mov ecx, _LUT16to32
- movd mm1, [ecx+eax*4]
- mov edx, %2
- movd mm2, [ecx+edx*4]
- mov edx, %3
- movd mm3, [ecx+edx*4]
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- punpcklbw mm3, [reg_blank]
- psllw mm1, 1
- paddw mm2, mm3
- pmullw mm2, [const7]
- paddw mm1, mm2
- psrlw mm1, 6
- packuswb mm1, [reg_blank]
- movd edx, mm1
- shl dl, 2
- shr edx, 1
- shl dx, 3
- shr edx, 5
- mov %1, dx
-%endmacro
-
-%macro Interp5 3
- mov edx,%2
- mov ecx,%3
- cmp edx,ecx
- je %%fin
- and edx,[zerolowbits]
- and ecx,[zerolowbits]
- add edx,ecx
- shr edx,1
-%%fin
- mov %1,dx
-%endmacro
-
-%macro PIXEL00_1M 0
- Interp1 [edi],eax,[w1]
-%endmacro
-
-%macro PIXEL00_1U 0
- Interp1 [edi],eax,[w2]
-%endmacro
-
-%macro PIXEL00_1L 0
- Interp1 [edi],eax,[w4]
-%endmacro
-
-%macro PIXEL00_2 0
- Interp2 [edi],eax,[w4],[w2]
-%endmacro
-
-%macro PIXEL00_4 0
- Interp4 [edi],[w4],[w2]
-%endmacro
-
-%macro PIXEL00_5 0
- Interp5 [edi],[w4],[w2]
-%endmacro
-
-%macro PIXEL00_C 0
- mov [edi],ax
-%endmacro
-
-%macro PIXEL01_1 0
- Interp1 [edi+2],eax,[w2]
-%endmacro
-
-%macro PIXEL01_3 0
- Interp3 [edi+2],[w2]
-%endmacro
-
-%macro PIXEL01_6 0
- Interp1 [edi+2],[w2],eax
-%endmacro
-
-%macro PIXEL01_C 0
- mov [edi+2],ax
-%endmacro
-
-%macro PIXEL02_1M 0
- Interp1 [edi+4],eax,[w3]
-%endmacro
-
-%macro PIXEL02_1U 0
- Interp1 [edi+4],eax,[w2]
-%endmacro
-
-%macro PIXEL02_1R 0
- Interp1 [edi+4],eax,[w6]
-%endmacro
-
-%macro PIXEL02_2 0
- Interp2 [edi+4],eax,[w2],[w6]
-%endmacro
-
-%macro PIXEL02_4 0
- Interp4 [edi+4],[w2],[w6]
-%endmacro
-
-%macro PIXEL02_5 0
- Interp5 [edi+4],[w2],[w6]
-%endmacro
-
-%macro PIXEL02_C 0
- mov [edi+4],ax
-%endmacro
-
-%macro PIXEL10_1 0
- Interp1 [edi+ebx],eax,[w4]
-%endmacro
-
-%macro PIXEL10_3 0
- Interp3 [edi+ebx],[w4]
-%endmacro
-
-%macro PIXEL10_6 0
- Interp1 [edi+ebx],[w4],eax
-%endmacro
-
-%macro PIXEL10_C 0
- mov [edi+ebx],ax
-%endmacro
-
-%macro PIXEL11 0
- mov [edi+ebx+2],ax
-%endmacro
-
-%macro PIXEL12_1 0
- Interp1 [edi+ebx+4],eax,[w6]
-%endmacro
-
-%macro PIXEL12_3 0
- Interp3 [edi+ebx+4],[w6]
-%endmacro
-
-%macro PIXEL12_6 0
- Interp1 [edi+ebx+4],[w6],eax
-%endmacro
-
-%macro PIXEL12_C 0
- mov [edi+ebx+4],ax
-%endmacro
-
-%macro PIXEL20_1M 0
- Interp1 [edi+ebx*2],eax,[w7]
-%endmacro
-
-%macro PIXEL20_1D 0
- Interp1 [edi+ebx*2],eax,[w8]
-%endmacro
-
-%macro PIXEL20_1L 0
- Interp1 [edi+ebx*2],eax,[w4]
-%endmacro
-
-%macro PIXEL20_2 0
- Interp2 [edi+ebx*2],eax,[w8],[w4]
-%endmacro
-
-%macro PIXEL20_4 0
- Interp4 [edi+ebx*2],[w8],[w4]
-%endmacro
-
-%macro PIXEL20_5 0
- Interp5 [edi+ebx*2],[w8],[w4]
-%endmacro
-
-%macro PIXEL20_C 0
- mov [edi+ebx*2],ax
-%endmacro
-
-%macro PIXEL21_1 0
- Interp1 [edi+ebx*2+2],eax,[w8]
-%endmacro
-
-%macro PIXEL21_3 0
- Interp3 [edi+ebx*2+2],[w8]
-%endmacro
-
-%macro PIXEL21_6 0
- Interp1 [edi+ebx*2+2],[w8],eax
-%endmacro
-
-%macro PIXEL21_C 0
- mov [edi+ebx*2+2],ax
-%endmacro
-
-%macro PIXEL22_1M 0
- Interp1 [edi+ebx*2+4],eax,[w9]
-%endmacro
-
-%macro PIXEL22_1D 0
- Interp1 [edi+ebx*2+4],eax,[w8]
-%endmacro
-
-%macro PIXEL22_1R 0
- Interp1 [edi+ebx*2+4],eax,[w6]
-%endmacro
-
-%macro PIXEL22_2 0
- Interp2 [edi+ebx*2+4],eax,[w6],[w8]
-%endmacro
-
-%macro PIXEL22_4 0
- Interp4 [edi+ebx*2+4],[w6],[w8]
-%endmacro
-
-%macro PIXEL22_5 0
- Interp5 [edi+ebx*2+4],[w6],[w8]
-%endmacro
-
-%macro PIXEL22_C 0
- mov [edi+ebx*2+4],ax
-%endmacro
-
-inbuffer equ 8
-outbuffer equ 12
-Xres equ 16
-Yres equ 20
-pitch equ 24
-
-_hq3x_16:
- push ebp
- mov ebp,esp
- pushad
-
- mov esi,[ebp+inbuffer]
- mov edi,[ebp+outbuffer]
- mov edx,[ebp+Yres]
- mov [linesleft],edx
- mov ebx,[ebp+Xres]
- shl ebx,1
- mov dword[prevline],0
- mov dword[nextline],ebx
-.loopy
- mov ecx,[ebp+Xres]
- sub ecx,2 ; x={Xres-2, Xres-1} are special cases.
- mov dword[xcounter],ecx
- ; x=0 - special case
- mov ebx,[prevline]
- movq mm5,[esi+ebx]
- movq mm6,[esi]
- mov ebx,[nextline]
- movq mm7,[esi+ebx]
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- mov [w2],edx
- shr eax,16
- mov [w3],eax
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- mov [w5],edx
- shr eax,16
- mov [w6],eax
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- mov [w8],edx
- shr eax,16
- mov [w9],eax
- jmp .flags
-.loopx
- mov ebx,[prevline]
- movq mm5,[esi+ebx-2]
- movq mm6,[esi-2]
- mov ebx,[nextline]
- movq mm7,[esi+ebx-2]
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- shr eax,16
- mov [w2],eax
- psrlq mm5,32
- movd eax,mm5
- movzx edx,ax
- mov [w3],edx
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- shr eax,16
- mov [w5],eax
- psrlq mm6,32
- movd eax,mm6
- movzx edx,ax
- mov [w6],edx
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- shr eax,16
- mov [w8],eax
- psrlq mm7,32
- movd eax,mm7
- movzx edx,ax
- mov [w9],edx
-.flags
- mov ebx,_RGBtoYUV
- mov eax,[w5]
- xor ecx,ecx
- movd mm5,[ebx+eax*4]
- mov dword[cross],0
-
- mov edx,[w2]
- cmp eax,edx
- je .noflag2
- or dword[cross],1
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag2
- or ecx,2
-.noflag2
- mov edx,[w4]
- cmp eax,edx
- je .noflag4
- or dword[cross],2
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag4
- or ecx,8
-.noflag4
- mov edx,[w6]
- cmp eax,edx
- je .noflag6
- or dword[cross],4
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag6
- or ecx,16
-.noflag6
- mov edx,[w8]
- cmp eax,edx
- je .noflag8
- or dword[cross],8
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag8
- or ecx,64
-.noflag8
- test ecx,ecx
- jnz .testflag1
- mov ecx,[cross]
- mov ebx,[ebp+pitch]
- jmp [FuncTable2+ecx*4]
-.testflag1
- mov edx,[w1]
- cmp eax,edx
- je .noflag1
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag1
- or ecx,1
-.noflag1
- mov edx,[w3]
- cmp eax,edx
- je .noflag3
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag3
- or ecx,4
-.noflag3
- mov edx,[w7]
- cmp eax,edx
- je .noflag7
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag7
- or ecx,32
-.noflag7
- mov edx,[w9]
- cmp eax,edx
- je .noflag9
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag9
- or ecx,128
-.noflag9
- mov ebx,[ebp+pitch]
- jmp [FuncTable+ecx*4]
-
-..@flag0
-..@flag1
-..@flag4
-..@flag32
-..@flag128
-..@flag5
-..@flag132
-..@flag160
-..@flag33
-..@flag129
-..@flag36
-..@flag133
-..@flag164
-..@flag161
-..@flag37
-..@flag165
- PIXEL00_2
- PIXEL01_1
- PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_2
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag2
-..@flag34
-..@flag130
-..@flag162
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_2
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag16
-..@flag17
-..@flag48
-..@flag49
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag64
-..@flag65
-..@flag68
-..@flag69
- PIXEL00_2
- PIXEL01_1
- PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag8
-..@flag12
-..@flag136
-..@flag140
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag3
-..@flag35
-..@flag131
-..@flag163
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_2
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag6
-..@flag38
-..@flag134
-..@flag166
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_2
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag20
-..@flag21
-..@flag52
-..@flag53
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag144
-..@flag145
-..@flag176
-..@flag177
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag192
-..@flag193
-..@flag196
-..@flag197
- PIXEL00_2
- PIXEL01_1
- PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag96
-..@flag97
-..@flag100
-..@flag101
- PIXEL00_2
- PIXEL01_1
- PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag40
-..@flag44
-..@flag168
-..@flag172
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag9
-..@flag13
-..@flag137
-..@flag141
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag18
-..@flag50
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_1M,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL10_1
- PIXEL11
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag80
-..@flag81
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_1M,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag72
-..@flag76
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_2
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_1M,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag10
-..@flag138
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- PIXEL02_1M
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag66
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag24
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag7
-..@flag39
-..@flag135
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_2
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag148
-..@flag149
-..@flag180
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag224
-..@flag228
-..@flag225
- PIXEL00_2
- PIXEL01_1
- PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag41
-..@flag169
-..@flag45
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag22
-..@flag54
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL10_1
- PIXEL11
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag208
-..@flag209
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag104
-..@flag108
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_2
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag11
-..@flag139
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- PIXEL02_1M
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag19
-..@flag51
- DiffOrNot w2,w6,PIXEL00_1L,PIXEL01_C,PIXEL02_1M,PIXEL12_C,PIXEL00_2,PIXEL01_6,PIXEL02_5,PIXEL12_1
- PIXEL10_1
- PIXEL11
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag146
-..@flag178
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_1M,PIXEL12_C,PIXEL22_1D,PIXEL01_1,PIXEL02_5,PIXEL12_6,PIXEL22_2
- PIXEL00_1M
- PIXEL10_1
- PIXEL11
- PIXEL20_2
- PIXEL21_1
- jmp .loopx_end
-..@flag84
-..@flag85
- DiffOrNot w6,w8,PIXEL02_1U,PIXEL12_C,PIXEL21_C,PIXEL22_1M,PIXEL02_2,PIXEL12_6,PIXEL21_1,PIXEL22_5
- PIXEL00_2
- PIXEL01_1
- PIXEL10_1
- PIXEL11
- PIXEL20_1M
- jmp .loopx_end
-..@flag112
-..@flag113
- DiffOrNot w6,w8,PIXEL12_C,PIXEL20_1L,PIXEL21_C,PIXEL22_1M,PIXEL12_1,PIXEL20_2,PIXEL21_6,PIXEL22_5
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- jmp .loopx_end
-..@flag200
-..@flag204
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_1M,PIXEL21_C,PIXEL22_1R,PIXEL10_1,PIXEL20_5,PIXEL21_6,PIXEL22_2
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_2
- PIXEL11
- PIXEL12_1
- jmp .loopx_end
-..@flag73
-..@flag77
- DiffOrNot w8,w4,PIXEL00_1U,PIXEL10_C,PIXEL20_1M,PIXEL21_C,PIXEL00_2,PIXEL10_6,PIXEL20_5,PIXEL21_1
- PIXEL01_1
- PIXEL02_2
- PIXEL11
- PIXEL12_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag42
-..@flag170
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL01_C,PIXEL10_C,PIXEL20_1D,PIXEL00_5,PIXEL01_1,PIXEL10_6,PIXEL20_2
- PIXEL02_1M
- PIXEL11
- PIXEL12_1
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag14
-..@flag142
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL01_C,PIXEL02_1R,PIXEL10_C,PIXEL00_5,PIXEL01_6,PIXEL02_2,PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag67
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag70
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag28
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag152
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag194
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag98
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag56
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag25
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag26
-..@flag31
- DiffOrNot w4,w2,PIXEL00_C,PIXEL10_C,PIXEL00_4,PIXEL10_3
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_C,PIXEL12_C,PIXEL02_4,PIXEL12_3
- PIXEL11
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag82
-..@flag214
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL01_3,PIXEL02_4
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL21_C,PIXEL22_C,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag88
-..@flag248
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1M
- PIXEL11
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL10_3,PIXEL20_4
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL12_C,PIXEL22_C,PIXEL12_3,PIXEL22_4
- jmp .loopx_end
-..@flag74
-..@flag107
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL00_4,PIXEL01_3
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_C,PIXEL21_C,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag27
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- PIXEL02_1M
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag86
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL10_1
- PIXEL11
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag216
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag106
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1M
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag30
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL10_C
- PIXEL11
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag210
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag120
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1M
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag75
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- PIXEL02_1M
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag29
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag198
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag184
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag99
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag57
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag71
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag156
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag226
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag60
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag195
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag102
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag153
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag58
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag83
- PIXEL00_1L
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag92
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag202
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag78
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag154
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag114
- PIXEL00_1M
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_1L
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag89
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag90
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag55
-..@flag23
- DiffOrNot w2,w6,PIXEL00_1L,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL00_2,PIXEL01_6,PIXEL02_5,PIXEL12_1
- PIXEL10_1
- PIXEL11
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag182
-..@flag150
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL22_1D,PIXEL01_1,PIXEL02_5,PIXEL12_6,PIXEL22_2
- PIXEL00_1M
- PIXEL10_1
- PIXEL11
- PIXEL20_2
- PIXEL21_1
- jmp .loopx_end
-..@flag213
-..@flag212
- DiffOrNot w6,w8,PIXEL02_1U,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL02_2,PIXEL12_6,PIXEL21_1,PIXEL22_5
- PIXEL00_2
- PIXEL01_1
- PIXEL10_1
- PIXEL11
- PIXEL20_1M
- jmp .loopx_end
-..@flag241
-..@flag240
- DiffOrNot w6,w8,PIXEL12_C,PIXEL20_1L,PIXEL21_C,PIXEL22_C,PIXEL12_1,PIXEL20_2,PIXEL21_6,PIXEL22_5
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- jmp .loopx_end
-..@flag236
-..@flag232
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL22_1R,PIXEL10_1,PIXEL20_5,PIXEL21_6,PIXEL22_2
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_2
- PIXEL11
- PIXEL12_1
- jmp .loopx_end
-..@flag109
-..@flag105
- DiffOrNot w8,w4,PIXEL00_1U,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL00_2,PIXEL10_6,PIXEL20_5,PIXEL21_1
- PIXEL01_1
- PIXEL02_2
- PIXEL11
- PIXEL12_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag171
-..@flag43
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL20_1D,PIXEL00_5,PIXEL01_1,PIXEL10_6,PIXEL20_2
- PIXEL02_1M
- PIXEL11
- PIXEL12_1
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag143
-..@flag15
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL02_1R,PIXEL10_C,PIXEL00_5,PIXEL01_6,PIXEL02_2,PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag124
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1U
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag203
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- PIXEL02_1M
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag62
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL10_C
- PIXEL11
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag211
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag118
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL10_1
- PIXEL11
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag217
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag110
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1R
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag155
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- PIXEL02_1M
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag188
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag185
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag61
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag157
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag103
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag227
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag230
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag199
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag220
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag158
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL10_C
- PIXEL11
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag234
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- PIXEL02_1M
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- PIXEL22_1R
- jmp .loopx_end
-..@flag242
- PIXEL00_1M
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL20_1L
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag59
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag121
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1M
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag87
- PIXEL00_1L
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL10_1
- PIXEL11
- PIXEL20_1M
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag79
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- PIXEL02_1R
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag122
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag94
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL10_C
- PIXEL11
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag218
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_C
- PIXEL11
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag91
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag229
- PIXEL00_2
- PIXEL01_1
- PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag167
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_2
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag173
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag181
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag186
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag115
- PIXEL00_1L
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_1L
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag93
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag206
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag205
-..@flag201
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag174
-..@flag46
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag179
-..@flag147
- PIXEL00_1L
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag117
-..@flag116
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_1L
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag189
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag231
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag126
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL11
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag219
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- PIXEL02_1M
- PIXEL11
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag125
- DiffOrNot w8,w4,PIXEL00_1U,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL00_2,PIXEL10_6,PIXEL20_5,PIXEL21_1
- PIXEL01_1
- PIXEL02_1U
- PIXEL11
- PIXEL12_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag221
- DiffOrNot w6,w8,PIXEL02_1U,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL02_2,PIXEL12_6,PIXEL21_1,PIXEL22_5
- PIXEL00_1U
- PIXEL01_1
- PIXEL10_C
- PIXEL11
- PIXEL20_1M
- jmp .loopx_end
-..@flag207
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL02_1R,PIXEL10_C,PIXEL00_5,PIXEL01_6,PIXEL02_2,PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag238
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL22_1R,PIXEL10_1,PIXEL20_5,PIXEL21_6,PIXEL22_2
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1R
- PIXEL11
- PIXEL12_1
- jmp .loopx_end
-..@flag190
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL22_1D,PIXEL01_1,PIXEL02_5,PIXEL12_6,PIXEL22_2
- PIXEL00_1M
- PIXEL10_C
- PIXEL11
- PIXEL20_1D
- PIXEL21_1
- jmp .loopx_end
-..@flag187
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL20_1D,PIXEL00_5,PIXEL01_1,PIXEL10_6,PIXEL20_2
- PIXEL02_1M
- PIXEL11
- PIXEL12_C
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag243
- DiffOrNot w6,w8,PIXEL12_C,PIXEL20_1L,PIXEL21_C,PIXEL22_C,PIXEL12_1,PIXEL20_2,PIXEL21_6,PIXEL22_5
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- jmp .loopx_end
-..@flag119
- DiffOrNot w2,w6,PIXEL00_1L,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL00_2,PIXEL01_6,PIXEL02_5,PIXEL12_1
- PIXEL10_1
- PIXEL11
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag237
-..@flag233
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_C,PIXEL20_2
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag175
-..@flag47
- DiffOrNot w4,w2,PIXEL00_C,PIXEL00_2
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag183
-..@flag151
- PIXEL00_1L
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_C,PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag245
-..@flag244
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_1L
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_C,PIXEL22_2
- jmp .loopx_end
-..@flag250
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1M
- PIXEL11
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL10_3,PIXEL20_4
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL12_C,PIXEL22_C,PIXEL12_3,PIXEL22_4
- jmp .loopx_end
-..@flag123
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL00_4,PIXEL01_3
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL20_C,PIXEL21_C,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag95
- DiffOrNot w4,w2,PIXEL00_C,PIXEL10_C,PIXEL00_4,PIXEL10_3
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_C,PIXEL12_C,PIXEL02_4,PIXEL12_3
- PIXEL11
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag222
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL01_3,PIXEL02_4
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL21_C,PIXEL22_C,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag252
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1U
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL10_3,PIXEL20_4
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_C,PIXEL22_2
- jmp .loopx_end
-..@flag249
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- DiffOrNot w8,w4,PIXEL20_C,PIXEL20_2
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL12_C,PIXEL22_C,PIXEL12_3,PIXEL22_4
- jmp .loopx_end
-..@flag235
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL00_4,PIXEL01_3
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_C,PIXEL20_2
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag111
- DiffOrNot w4,w2,PIXEL00_C,PIXEL00_2
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_C,PIXEL21_C,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag63
- DiffOrNot w4,w2,PIXEL00_C,PIXEL00_2
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_C,PIXEL12_C,PIXEL02_4,PIXEL12_3
- PIXEL10_C
- PIXEL11
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag159
- DiffOrNot w4,w2,PIXEL00_C,PIXEL10_C,PIXEL00_4,PIXEL10_3
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_C,PIXEL02_2
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag215
- PIXEL00_1L
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_C,PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL21_C,PIXEL22_C,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag246
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL01_3,PIXEL02_4
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_1L
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_C,PIXEL22_2
- jmp .loopx_end
-..@flag254
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL01_3,PIXEL02_4
- PIXEL11
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL10_3,PIXEL20_4
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_2
- jmp .loopx_end
-..@flag253
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL20_C,PIXEL20_2
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_C,PIXEL22_2
- jmp .loopx_end
-..@flag251
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL00_4,PIXEL01_3
- PIXEL02_1M
- PIXEL11
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_2,PIXEL21_3
- DiffOrNot w6,w8,PIXEL12_C,PIXEL22_C,PIXEL12_3,PIXEL22_4
- jmp .loopx_end
-..@flag239
- DiffOrNot w4,w2,PIXEL00_C,PIXEL00_2
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_C,PIXEL20_2
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag127
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_2,PIXEL01_3,PIXEL10_3
- DiffOrNot w2,w6,PIXEL02_C,PIXEL12_C,PIXEL02_4,PIXEL12_3
- PIXEL11
- DiffOrNot w8,w4,PIXEL20_C,PIXEL21_C,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag191
- DiffOrNot w4,w2,PIXEL00_C,PIXEL00_2
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_C,PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag223
- DiffOrNot w4,w2,PIXEL00_C,PIXEL10_C,PIXEL00_4,PIXEL10_3
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_2,PIXEL12_3
- PIXEL11
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL21_C,PIXEL22_C,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag247
- PIXEL00_1L
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_C,PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_1L
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_C,PIXEL22_2
- jmp .loopx_end
-..@flag255
- DiffOrNot w4,w2,PIXEL00_C,PIXEL00_2
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_C,PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL20_C,PIXEL20_2
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_C,PIXEL22_2
- jmp .loopx_end
-
-..@cross0
- mov edx,eax
- shl eax,16
- or eax,edx
- mov [edi],eax
- mov [edi+4],ax
- mov [edi+ebx],eax
- mov [edi+ebx+4],ax
- mov [edi+ebx*2],eax
- mov [edi+ebx*2+4],ax
- jmp .loopx_end
-..@cross1
- mov edx,eax
- shl eax,16
- or eax,edx
- mov ecx,[w2]
- and edx,[zerolowbits]
- and ecx,[zerolowbits]
- add ecx,edx
- shr ecx,1
- add ecx,0x0821
- and ecx,[zerolowbits]
- add edx,ecx
- shr edx,1
- mov [edi],dx
- mov [edi+2],dx
- mov [edi+4],dx
- mov [edi+ebx],eax
- mov [edi+ebx+4],ax
- mov [edi+ebx*2],eax
- mov [edi+ebx*2+4],ax
- jmp .loopx_end
-..@cross2
- mov edx,eax
- shl eax,16
- or eax,edx
- mov ecx,[w4]
- and edx,[zerolowbits]
- and ecx,[zerolowbits]
- add ecx,edx
- shr ecx,1
- add ecx,0x0821
- and ecx,[zerolowbits]
- add edx,ecx
- shr edx,1
- mov [edi],dx
- mov [edi+2],eax
- mov [edi+ebx],dx
- mov [edi+ebx+2],eax
- mov [edi+ebx*2],dx
- mov [edi+ebx*2+2],eax
- jmp .loopx_end
-..@cross4
- mov edx,eax
- shl eax,16
- or eax,edx
- mov ecx,[w6]
- and edx,[zerolowbits]
- and ecx,[zerolowbits]
- add ecx,edx
- shr ecx,1
- add ecx,0x0821
- and ecx,[zerolowbits]
- add edx,ecx
- shr edx,1
- mov [edi],eax
- mov [edi+4],dx
- mov [edi+ebx],eax
- mov [edi+ebx+4],dx
- mov [edi+ebx*2],eax
- mov [edi+ebx*2+4],dx
- jmp .loopx_end
-..@cross8
- mov edx,eax
- shl eax,16
- or eax,edx
- mov ecx,[w8]
- and edx,[zerolowbits]
- and ecx,[zerolowbits]
- add ecx,edx
- shr ecx,1
- add ecx,0x0821
- and ecx,[zerolowbits]
- add edx,ecx
- shr edx,1
- mov [edi],eax
- mov [edi+4],ax
- mov [edi+ebx],eax
- mov [edi+ebx+4],ax
- mov [edi+ebx*2],dx
- mov [edi+ebx*2+2],dx
- mov [edi+ebx*2+4],dx
- jmp .loopx_end
-
-.loopx_end
- add esi,2
- add edi,6
- dec dword[xcounter]
- jle .xres_2
- jmp .loopx
-.xres_2
- ; x=Xres-2 - special case
- jl .xres_1
- mov ebx,[prevline]
- movq mm5,[esi+ebx-4]
- movq mm6,[esi-4]
- mov ebx,[nextline]
- movq mm7,[esi+ebx-4]
- psrlq mm5,16
- psrlq mm6,16
- psrlq mm7,16
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- shr eax,16
- mov [w2],eax
- psrlq mm5,32
- movd eax,mm5
- mov [w3],eax
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- shr eax,16
- mov [w5],eax
- psrlq mm6,32
- movd eax,mm6
- mov [w6],eax
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- shr eax,16
- mov [w8],eax
- psrlq mm7,32
- movd eax,mm7
- mov [w9],eax
- jmp .flags
-.xres_1
- cmp dword[xcounter],-1
- jl .nexty
- ; x=Xres-1 - special case
- mov ebx,[prevline]
- movq mm5,[esi+ebx-6]
- movq mm6,[esi-6]
- mov ebx,[nextline]
- movq mm7,[esi+ebx-6]
- psrlq mm5,32
- psrlq mm6,32
- psrlq mm7,32
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- shr eax,16
- mov [w2],eax
- mov [w3],eax
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- shr eax,16
- mov [w5],eax
- mov [w6],eax
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- shr eax,16
- mov [w8],eax
- mov [w9],eax
- jmp .flags
-.nexty
- add edi,ebx
- add edi,ebx
- dec dword[linesleft]
- jz .fin
- mov ebx,[ebp+Xres]
- shl ebx,1
- cmp dword[linesleft],1
- je .lastline
- mov dword[nextline],ebx
- neg ebx
- mov dword[prevline],ebx
- jmp .loopy
-.lastline
- mov dword[nextline],0
- neg ebx
- mov dword[prevline],ebx
- jmp .loopy
-.fin
- emms
- popad
- mov esp,ebp
- pop ebp
- ret
-
-SECTION .data
-FuncTable
- dd ..@flag0, ..@flag1, ..@flag2, ..@flag3, ..@flag4, ..@flag5, ..@flag6, ..@flag7
- dd ..@flag8, ..@flag9, ..@flag10, ..@flag11, ..@flag12, ..@flag13, ..@flag14, ..@flag15
- dd ..@flag16, ..@flag17, ..@flag18, ..@flag19, ..@flag20, ..@flag21, ..@flag22, ..@flag23
- dd ..@flag24, ..@flag25, ..@flag26, ..@flag27, ..@flag28, ..@flag29, ..@flag30, ..@flag31
- dd ..@flag32, ..@flag33, ..@flag34, ..@flag35, ..@flag36, ..@flag37, ..@flag38, ..@flag39
- dd ..@flag40, ..@flag41, ..@flag42, ..@flag43, ..@flag44, ..@flag45, ..@flag46, ..@flag47
- dd ..@flag48, ..@flag49, ..@flag50, ..@flag51, ..@flag52, ..@flag53, ..@flag54, ..@flag55
- dd ..@flag56, ..@flag57, ..@flag58, ..@flag59, ..@flag60, ..@flag61, ..@flag62, ..@flag63
- dd ..@flag64, ..@flag65, ..@flag66, ..@flag67, ..@flag68, ..@flag69, ..@flag70, ..@flag71
- dd ..@flag72, ..@flag73, ..@flag74, ..@flag75, ..@flag76, ..@flag77, ..@flag78, ..@flag79
- dd ..@flag80, ..@flag81, ..@flag82, ..@flag83, ..@flag84, ..@flag85, ..@flag86, ..@flag87
- dd ..@flag88, ..@flag89, ..@flag90, ..@flag91, ..@flag92, ..@flag93, ..@flag94, ..@flag95
- dd ..@flag96, ..@flag97, ..@flag98, ..@flag99, ..@flag100, ..@flag101, ..@flag102, ..@flag103
- dd ..@flag104, ..@flag105, ..@flag106, ..@flag107, ..@flag108, ..@flag109, ..@flag110, ..@flag111
- dd ..@flag112, ..@flag113, ..@flag114, ..@flag115, ..@flag116, ..@flag117, ..@flag118, ..@flag119
- dd ..@flag120, ..@flag121, ..@flag122, ..@flag123, ..@flag124, ..@flag125, ..@flag126, ..@flag127
- dd ..@flag128, ..@flag129, ..@flag130, ..@flag131, ..@flag132, ..@flag133, ..@flag134, ..@flag135
- dd ..@flag136, ..@flag137, ..@flag138, ..@flag139, ..@flag140, ..@flag141, ..@flag142, ..@flag143
- dd ..@flag144, ..@flag145, ..@flag146, ..@flag147, ..@flag148, ..@flag149, ..@flag150, ..@flag151
- dd ..@flag152, ..@flag153, ..@flag154, ..@flag155, ..@flag156, ..@flag157, ..@flag158, ..@flag159
- dd ..@flag160, ..@flag161, ..@flag162, ..@flag163, ..@flag164, ..@flag165, ..@flag166, ..@flag167
- dd ..@flag168, ..@flag169, ..@flag170, ..@flag171, ..@flag172, ..@flag173, ..@flag174, ..@flag175
- dd ..@flag176, ..@flag177, ..@flag178, ..@flag179, ..@flag180, ..@flag181, ..@flag182, ..@flag183
- dd ..@flag184, ..@flag185, ..@flag186, ..@flag187, ..@flag188, ..@flag189, ..@flag190, ..@flag191
- dd ..@flag192, ..@flag193, ..@flag194, ..@flag195, ..@flag196, ..@flag197, ..@flag198, ..@flag199
- dd ..@flag200, ..@flag201, ..@flag202, ..@flag203, ..@flag204, ..@flag205, ..@flag206, ..@flag207
- dd ..@flag208, ..@flag209, ..@flag210, ..@flag211, ..@flag212, ..@flag213, ..@flag214, ..@flag215
- dd ..@flag216, ..@flag217, ..@flag218, ..@flag219, ..@flag220, ..@flag221, ..@flag222, ..@flag223
- dd ..@flag224, ..@flag225, ..@flag226, ..@flag227, ..@flag228, ..@flag229, ..@flag230, ..@flag231
- dd ..@flag232, ..@flag233, ..@flag234, ..@flag235, ..@flag236, ..@flag237, ..@flag238, ..@flag239
- dd ..@flag240, ..@flag241, ..@flag242, ..@flag243, ..@flag244, ..@flag245, ..@flag246, ..@flag247
- dd ..@flag248, ..@flag249, ..@flag250, ..@flag251, ..@flag252, ..@flag253, ..@flag254, ..@flag255
-
-FuncTable2
- dd ..@cross0, ..@cross1, ..@cross2, ..@flag0,
- dd ..@cross4, ..@flag0, ..@flag0, ..@flag0,
- dd ..@cross8, ..@flag0, ..@flag0, ..@flag0,
- dd ..@flag0, ..@flag0, ..@flag0, ..@flag0
-
+++ /dev/null
-;hq3x filter
-;32bpp output
-;----------------------------------------------------------
-;Copyright (C) 2003 MaxSt ( maxst@hiend3d.com )
-;
-;This program is free software; you can redistribute it and/or
-;modify it under the terms of the GNU General Public License
-;as published by the Free Software Foundation; either
-;version 2 of the License, or (at your option) any later
-;version.
-;
-;This program is distributed in the hope that it will be useful,
-;but WITHOUT ANY WARRANTY; without even the implied warranty of
-;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;GNU General Public License for more details.
-;
-;You should have received a copy of the GNU General Public License
-;along with this program; if not, write to the Free Software
-;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-GLOBAL _hq3x_32
-
-EXTERN _LUT16to32
-EXTERN _RGBtoYUV
-
-SECTION .bss
-linesleft resd 1
-xcounter resd 1
-cross resd 1
-nextline resd 1
-prevline resd 1
-w1 resd 1
-w2 resd 1
-w3 resd 1
-w4 resd 1
-w5 resd 1
-w6 resd 1
-w7 resd 1
-w8 resd 1
-w9 resd 1
-c1 resd 1
-c2 resd 1
-c3 resd 1
-c4 resd 1
-c5 resd 1
-c6 resd 1
-c7 resd 1
-c8 resd 1
-c9 resd 1
-
-SECTION .data
-
-reg_blank dd 0,0
-const7 dd 0x00070007,0x00000007
-threshold dd 0x00300706,0x00000000
-
-SECTION .text
-
-%macro TestDiff 2
- xor ecx,ecx
- mov edx,[%1]
- cmp edx,[%2]
- je %%fin
- mov ecx,_RGBtoYUV
- movd mm1,[ecx+edx*4]
- movq mm5,mm1
- mov edx,[%2]
- movd mm2,[ecx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd ecx,mm1
-%%fin:
-%endmacro
-
-%macro DiffOrNot 4
- TestDiff %1,%2
- test ecx,ecx
- jz %%same
- %3
- jmp %%fin
-%%same:
- %4
-%%fin
-%endmacro
-
-%macro DiffOrNot 6
- TestDiff %1,%2
- test ecx,ecx
- jz %%same
- %3
- %4
- jmp %%fin
-%%same:
- %5
- %6
-%%fin
-%endmacro
-
-%macro DiffOrNot 8
- TestDiff %1,%2
- test ecx,ecx
- jz %%same
- %3
- %4
- %5
- jmp %%fin
-%%same:
- %6
- %7
- %8
-%%fin
-%endmacro
-
-%macro DiffOrNot 10
- TestDiff %1,%2
- test ecx,ecx
- jz %%same
- %3
- %4
- %5
- %6
- jmp %%fin
-%%same:
- %7
- %8
- %9
- %10
-%%fin
-%endmacro
-
-%macro Interp1 3
- mov edx,%2
- shl edx,2
- add edx,%3
- sub edx,%2
- shr edx,2
- mov %1,edx
-%endmacro
-
-%macro Interp2 4
- mov edx,%2
- shl edx,1
- add edx,%3
- add edx,%4
- shr edx,2
- mov %1,edx
-%endmacro
-
-%macro Interp3 2
- movd mm1, eax
- movd mm2, %2
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- pmullw mm1, [const7]
- paddw mm1, mm2
- psrlw mm1, 3
- packuswb mm1, [reg_blank]
- movd %1, mm1
-%endmacro
-
-%macro Interp4 3
- movd mm1, eax
- movd mm2, %2
- movd mm3, %3
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- punpcklbw mm3, [reg_blank]
- psllw mm1, 1
- paddw mm2, mm3
- pmullw mm2, [const7]
- paddw mm1, mm2
- psrlw mm1, 4
- packuswb mm1, [reg_blank]
- movd %1, mm1
-%endmacro
-
-%macro Interp5 3
- mov edx,%2
- add edx,%3
- shr edx,1
- mov %1,edx
-%endmacro
-
-%macro PIXEL00_1M 0
- Interp1 [edi],eax,[c1]
-%endmacro
-
-%macro PIXEL00_1U 0
- Interp1 [edi],eax,[c2]
-%endmacro
-
-%macro PIXEL00_1L 0
- Interp1 [edi],eax,[c4]
-%endmacro
-
-%macro PIXEL00_2 0
- Interp2 [edi],eax,[c4],[c2]
-%endmacro
-
-%macro PIXEL00_4 0
- Interp4 [edi],[c4],[c2]
-%endmacro
-
-%macro PIXEL00_5 0
- Interp5 [edi],[c4],[c2]
-%endmacro
-
-%macro PIXEL00_C 0
- mov [edi],eax
-%endmacro
-
-%macro PIXEL01_1 0
- Interp1 [edi+4],eax,[c2]
-%endmacro
-
-%macro PIXEL01_3 0
- Interp3 [edi+4],[c2]
-%endmacro
-
-%macro PIXEL01_6 0
- Interp1 [edi+4],[c2],eax
-%endmacro
-
-%macro PIXEL01_C 0
- mov [edi+4],eax
-%endmacro
-
-%macro PIXEL02_1M 0
- Interp1 [edi+8],eax,[c3]
-%endmacro
-
-%macro PIXEL02_1U 0
- Interp1 [edi+8],eax,[c2]
-%endmacro
-
-%macro PIXEL02_1R 0
- Interp1 [edi+8],eax,[c6]
-%endmacro
-
-%macro PIXEL02_2 0
- Interp2 [edi+8],eax,[c2],[c6]
-%endmacro
-
-%macro PIXEL02_4 0
- Interp4 [edi+8],[c2],[c6]
-%endmacro
-
-%macro PIXEL02_5 0
- Interp5 [edi+8],[c2],[c6]
-%endmacro
-
-%macro PIXEL02_C 0
- mov [edi+8],eax
-%endmacro
-
-%macro PIXEL10_1 0
- Interp1 [edi+ebx],eax,[c4]
-%endmacro
-
-%macro PIXEL10_3 0
- Interp3 [edi+ebx],[c4]
-%endmacro
-
-%macro PIXEL10_6 0
- Interp1 [edi+ebx],[c4],eax
-%endmacro
-
-%macro PIXEL10_C 0
- mov [edi+ebx],eax
-%endmacro
-
-%macro PIXEL11 0
- mov [edi+ebx+4],eax
-%endmacro
-
-%macro PIXEL12_1 0
- Interp1 [edi+ebx+8],eax,[c6]
-%endmacro
-
-%macro PIXEL12_3 0
- Interp3 [edi+ebx+8],[c6]
-%endmacro
-
-%macro PIXEL12_6 0
- Interp1 [edi+ebx+8],[c6],eax
-%endmacro
-
-%macro PIXEL12_C 0
- mov [edi+ebx+8],eax
-%endmacro
-
-%macro PIXEL20_1M 0
- Interp1 [edi+ebx*2],eax,[c7]
-%endmacro
-
-%macro PIXEL20_1D 0
- Interp1 [edi+ebx*2],eax,[c8]
-%endmacro
-
-%macro PIXEL20_1L 0
- Interp1 [edi+ebx*2],eax,[c4]
-%endmacro
-
-%macro PIXEL20_2 0
- Interp2 [edi+ebx*2],eax,[c8],[c4]
-%endmacro
-
-%macro PIXEL20_4 0
- Interp4 [edi+ebx*2],[c8],[c4]
-%endmacro
-
-%macro PIXEL20_5 0
- Interp5 [edi+ebx*2],[c8],[c4]
-%endmacro
-
-%macro PIXEL20_C 0
- mov [edi+ebx*2],eax
-%endmacro
-
-%macro PIXEL21_1 0
- Interp1 [edi+ebx*2+4],eax,[c8]
-%endmacro
-
-%macro PIXEL21_3 0
- Interp3 [edi+ebx*2+4],[c8]
-%endmacro
-
-%macro PIXEL21_6 0
- Interp1 [edi+ebx*2+4],[c8],eax
-%endmacro
-
-%macro PIXEL21_C 0
- mov [edi+ebx*2+4],eax
-%endmacro
-
-%macro PIXEL22_1M 0
- Interp1 [edi+ebx*2+8],eax,[c9]
-%endmacro
-
-%macro PIXEL22_1D 0
- Interp1 [edi+ebx*2+8],eax,[c8]
-%endmacro
-
-%macro PIXEL22_1R 0
- Interp1 [edi+ebx*2+8],eax,[c6]
-%endmacro
-
-%macro PIXEL22_2 0
- Interp2 [edi+ebx*2+8],eax,[c6],[c8]
-%endmacro
-
-%macro PIXEL22_4 0
- Interp4 [edi+ebx*2+8],[c6],[c8]
-%endmacro
-
-%macro PIXEL22_5 0
- Interp5 [edi+ebx*2+8],[c6],[c8]
-%endmacro
-
-%macro PIXEL22_C 0
- mov [edi+ebx*2+8],eax
-%endmacro
-
-inbuffer equ 8
-outbuffer equ 12
-Xres equ 16
-Yres equ 20
-pitch equ 24
-
-_hq3x_32:
- push ebp
- mov ebp,esp
- pushad
-
- mov esi,[ebp+inbuffer]
- mov edi,[ebp+outbuffer]
- mov edx,[ebp+Yres]
- mov [linesleft],edx
- mov ebx,[ebp+Xres]
- shl ebx,1
- mov dword[prevline],0
- mov dword[nextline],ebx
-.loopy
- mov ecx,[ebp+Xres]
- sub ecx,2 ; x={Xres-2, Xres-1} are special cases.
- mov dword[xcounter],ecx
- ; x=0 - special case
- mov ebx,[prevline]
- movq mm5,[esi+ebx]
- movq mm6,[esi]
- mov ebx,[nextline]
- movq mm7,[esi+ebx]
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- mov [w2],edx
- shr eax,16
- mov [w3],eax
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- mov [w5],edx
- shr eax,16
- mov [w6],eax
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- mov [w8],edx
- shr eax,16
- mov [w9],eax
- jmp .flags
-.loopx
- mov ebx,[prevline]
- movq mm5,[esi+ebx-2]
- movq mm6,[esi-2]
- mov ebx,[nextline]
- movq mm7,[esi+ebx-2]
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- shr eax,16
- mov [w2],eax
- psrlq mm5,32
- movd eax,mm5
- movzx edx,ax
- mov [w3],edx
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- shr eax,16
- mov [w5],eax
- psrlq mm6,32
- movd eax,mm6
- movzx edx,ax
- mov [w6],edx
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- shr eax,16
- mov [w8],eax
- psrlq mm7,32
- movd eax,mm7
- movzx edx,ax
- mov [w9],edx
-.flags
- mov ebx,_RGBtoYUV
- mov eax,[w5]
- xor ecx,ecx
- movd mm5,[ebx+eax*4]
- mov dword[cross],0
-
- mov edx,[w2]
- cmp eax,edx
- je .noflag2
- or dword[cross],1
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag2
- or ecx,2
-.noflag2
- mov edx,[w4]
- cmp eax,edx
- je .noflag4
- or dword[cross],2
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag4
- or ecx,8
-.noflag4
- mov edx,[w6]
- cmp eax,edx
- je .noflag6
- or dword[cross],4
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag6
- or ecx,16
-.noflag6
- mov edx,[w8]
- cmp eax,edx
- je .noflag8
- or dword[cross],8
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag8
- or ecx,64
-.noflag8
- test ecx,ecx
- jnz .testflag1
- mov ecx,[cross]
- mov ebx,_LUT16to32
- mov eax,[ebx+eax*4]
- jmp [FuncTable2+ecx*4]
-.testflag1
- mov edx,[w1]
- cmp eax,edx
- je .noflag1
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag1
- or ecx,1
-.noflag1
- mov edx,[w3]
- cmp eax,edx
- je .noflag3
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag3
- or ecx,4
-.noflag3
- mov edx,[w7]
- cmp eax,edx
- je .noflag7
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag7
- or ecx,32
-.noflag7
- mov edx,[w9]
- cmp eax,edx
- je .noflag9
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag9
- or ecx,128
-.noflag9
- mov ebx,_LUT16to32
- mov eax,[ebx+eax*4]
- mov edx,[w2]
- mov edx,[ebx+edx*4]
- mov [c2],edx
- mov edx,[w4]
- mov edx,[ebx+edx*4]
- mov [c4],edx
- mov edx,[w6]
- mov edx,[ebx+edx*4]
- mov [c6],edx
- mov edx,[w8]
- mov edx,[ebx+edx*4]
- mov [c8],edx
- test ecx,0x005A
- jz .switch
- mov edx,[w1]
- mov edx,[ebx+edx*4]
- mov [c1],edx
- mov edx,[w3]
- mov edx,[ebx+edx*4]
- mov [c3],edx
- mov edx,[w7]
- mov edx,[ebx+edx*4]
- mov [c7],edx
- mov edx,[w9]
- mov edx,[ebx+edx*4]
- mov [c9],edx
-.switch
- mov ebx,[ebp+pitch]
- jmp [FuncTable+ecx*4]
-
-..@flag0
-..@flag1
-..@flag4
-..@flag32
-..@flag128
-..@flag5
-..@flag132
-..@flag160
-..@flag33
-..@flag129
-..@flag36
-..@flag133
-..@flag164
-..@flag161
-..@flag37
-..@flag165
-; PIXEL00_2
-; PIXEL01_1
-; PIXEL02_2
-; PIXEL10_1
-; PIXEL11
-; PIXEL12_1
-; PIXEL20_2
-; PIXEL21_1
-; PIXEL22_2
-
-; the same, only optimized
- mov ecx,eax
- shl ecx,1
- add ecx,[c2]
- mov edx,ecx
- add edx,[c4]
- shr edx,2
- mov [edi],edx
- mov edx,ecx
- add edx,eax
- shr edx,2
- mov [edi+4],edx
- add ecx,[c6]
- shr ecx,2
- mov [edi+8],ecx
- mov ecx,eax
- shl ecx,2
- sub ecx,eax
- mov edx,ecx
- add edx,[c4]
- shr edx,2
- mov [edi+ebx],edx
- mov [edi+ebx+4],eax
- add ecx,[c6]
- shr ecx,2
- mov [edi+ebx+8],ecx
- mov ecx,eax
- shl ecx,1
- add ecx,[c8]
- mov edx,ecx
- add edx,[c4]
- shr edx,2
- mov [edi+ebx*2],edx
- mov edx,ecx
- add edx,eax
- shr edx,2
- mov [edi+ebx*2+4],edx
- add ecx,[c6]
- shr ecx,2
- mov [edi+ebx*2+8],ecx
- jmp .loopx_end
-..@flag2
-..@flag34
-..@flag130
-..@flag162
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_2
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag16
-..@flag17
-..@flag48
-..@flag49
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag64
-..@flag65
-..@flag68
-..@flag69
- PIXEL00_2
- PIXEL01_1
- PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag8
-..@flag12
-..@flag136
-..@flag140
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag3
-..@flag35
-..@flag131
-..@flag163
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_2
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag6
-..@flag38
-..@flag134
-..@flag166
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_2
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag20
-..@flag21
-..@flag52
-..@flag53
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag144
-..@flag145
-..@flag176
-..@flag177
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag192
-..@flag193
-..@flag196
-..@flag197
- PIXEL00_2
- PIXEL01_1
- PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag96
-..@flag97
-..@flag100
-..@flag101
- PIXEL00_2
- PIXEL01_1
- PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag40
-..@flag44
-..@flag168
-..@flag172
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag9
-..@flag13
-..@flag137
-..@flag141
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag18
-..@flag50
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_1M,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL10_1
- PIXEL11
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag80
-..@flag81
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_1M,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag72
-..@flag76
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_2
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_1M,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag10
-..@flag138
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- PIXEL02_1M
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag66
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag24
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag7
-..@flag39
-..@flag135
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_2
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag148
-..@flag149
-..@flag180
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag224
-..@flag228
-..@flag225
- PIXEL00_2
- PIXEL01_1
- PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag41
-..@flag169
-..@flag45
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag22
-..@flag54
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL10_1
- PIXEL11
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag208
-..@flag209
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag104
-..@flag108
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_2
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag11
-..@flag139
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- PIXEL02_1M
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag19
-..@flag51
- DiffOrNot w2,w6,PIXEL00_1L,PIXEL01_C,PIXEL02_1M,PIXEL12_C,PIXEL00_2,PIXEL01_6,PIXEL02_5,PIXEL12_1
- PIXEL10_1
- PIXEL11
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag146
-..@flag178
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_1M,PIXEL12_C,PIXEL22_1D,PIXEL01_1,PIXEL02_5,PIXEL12_6,PIXEL22_2
- PIXEL00_1M
- PIXEL10_1
- PIXEL11
- PIXEL20_2
- PIXEL21_1
- jmp .loopx_end
-..@flag84
-..@flag85
- DiffOrNot w6,w8,PIXEL02_1U,PIXEL12_C,PIXEL21_C,PIXEL22_1M,PIXEL02_2,PIXEL12_6,PIXEL21_1,PIXEL22_5
- PIXEL00_2
- PIXEL01_1
- PIXEL10_1
- PIXEL11
- PIXEL20_1M
- jmp .loopx_end
-..@flag112
-..@flag113
- DiffOrNot w6,w8,PIXEL12_C,PIXEL20_1L,PIXEL21_C,PIXEL22_1M,PIXEL12_1,PIXEL20_2,PIXEL21_6,PIXEL22_5
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- jmp .loopx_end
-..@flag200
-..@flag204
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_1M,PIXEL21_C,PIXEL22_1R,PIXEL10_1,PIXEL20_5,PIXEL21_6,PIXEL22_2
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_2
- PIXEL11
- PIXEL12_1
- jmp .loopx_end
-..@flag73
-..@flag77
- DiffOrNot w8,w4,PIXEL00_1U,PIXEL10_C,PIXEL20_1M,PIXEL21_C,PIXEL00_2,PIXEL10_6,PIXEL20_5,PIXEL21_1
- PIXEL01_1
- PIXEL02_2
- PIXEL11
- PIXEL12_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag42
-..@flag170
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL01_C,PIXEL10_C,PIXEL20_1D,PIXEL00_5,PIXEL01_1,PIXEL10_6,PIXEL20_2
- PIXEL02_1M
- PIXEL11
- PIXEL12_1
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag14
-..@flag142
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL01_C,PIXEL02_1R,PIXEL10_C,PIXEL00_5,PIXEL01_6,PIXEL02_2,PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag67
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag70
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag28
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag152
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag194
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag98
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag56
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag25
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag26
-..@flag31
- DiffOrNot w4,w2,PIXEL00_C,PIXEL10_C,PIXEL00_4,PIXEL10_3
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_C,PIXEL12_C,PIXEL02_4,PIXEL12_3
- PIXEL11
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag82
-..@flag214
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL01_3,PIXEL02_4
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL21_C,PIXEL22_C,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag88
-..@flag248
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1M
- PIXEL11
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL10_3,PIXEL20_4
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL12_C,PIXEL22_C,PIXEL12_3,PIXEL22_4
- jmp .loopx_end
-..@flag74
-..@flag107
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL00_4,PIXEL01_3
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_C,PIXEL21_C,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag27
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- PIXEL02_1M
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag86
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL10_1
- PIXEL11
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag216
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag106
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1M
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag30
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL10_C
- PIXEL11
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag210
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag120
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1M
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag75
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- PIXEL02_1M
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag29
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag198
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag184
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag99
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag57
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag71
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag156
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag226
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag60
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag195
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag102
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag153
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag58
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag83
- PIXEL00_1L
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag92
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag202
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag78
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag154
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag114
- PIXEL00_1M
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_1L
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag89
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag90
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag55
-..@flag23
- DiffOrNot w2,w6,PIXEL00_1L,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL00_2,PIXEL01_6,PIXEL02_5,PIXEL12_1
- PIXEL10_1
- PIXEL11
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag182
-..@flag150
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL22_1D,PIXEL01_1,PIXEL02_5,PIXEL12_6,PIXEL22_2
- PIXEL00_1M
- PIXEL10_1
- PIXEL11
- PIXEL20_2
- PIXEL21_1
- jmp .loopx_end
-..@flag213
-..@flag212
- DiffOrNot w6,w8,PIXEL02_1U,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL02_2,PIXEL12_6,PIXEL21_1,PIXEL22_5
- PIXEL00_2
- PIXEL01_1
- PIXEL10_1
- PIXEL11
- PIXEL20_1M
- jmp .loopx_end
-..@flag241
-..@flag240
- DiffOrNot w6,w8,PIXEL12_C,PIXEL20_1L,PIXEL21_C,PIXEL22_C,PIXEL12_1,PIXEL20_2,PIXEL21_6,PIXEL22_5
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- jmp .loopx_end
-..@flag236
-..@flag232
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL22_1R,PIXEL10_1,PIXEL20_5,PIXEL21_6,PIXEL22_2
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_2
- PIXEL11
- PIXEL12_1
- jmp .loopx_end
-..@flag109
-..@flag105
- DiffOrNot w8,w4,PIXEL00_1U,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL00_2,PIXEL10_6,PIXEL20_5,PIXEL21_1
- PIXEL01_1
- PIXEL02_2
- PIXEL11
- PIXEL12_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag171
-..@flag43
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL20_1D,PIXEL00_5,PIXEL01_1,PIXEL10_6,PIXEL20_2
- PIXEL02_1M
- PIXEL11
- PIXEL12_1
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag143
-..@flag15
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL02_1R,PIXEL10_C,PIXEL00_5,PIXEL01_6,PIXEL02_2,PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag124
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1U
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag203
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- PIXEL02_1M
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag62
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL10_C
- PIXEL11
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag211
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag118
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL10_1
- PIXEL11
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag217
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag110
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1R
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag155
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- PIXEL02_1M
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag188
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag185
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag61
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag157
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag103
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag227
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag230
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag199
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag220
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag158
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL10_C
- PIXEL11
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag234
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- PIXEL02_1M
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- PIXEL22_1R
- jmp .loopx_end
-..@flag242
- PIXEL00_1M
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL20_1L
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag59
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag121
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1M
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag87
- PIXEL00_1L
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL10_1
- PIXEL11
- PIXEL20_1M
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag79
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- PIXEL02_1R
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag122
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag94
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL10_C
- PIXEL11
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag218
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_C
- PIXEL11
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag91
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag229
- PIXEL00_2
- PIXEL01_1
- PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag167
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_2
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag173
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag181
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag186
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag115
- PIXEL00_1L
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_1L
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag93
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag206
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag205
-..@flag201
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag174
-..@flag46
- DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag179
-..@flag147
- PIXEL00_1L
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag117
-..@flag116
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_1L
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
- jmp .loopx_end
-..@flag189
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag231
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag126
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
- PIXEL11
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag219
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
- PIXEL02_1M
- PIXEL11
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag125
- DiffOrNot w8,w4,PIXEL00_1U,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL00_2,PIXEL10_6,PIXEL20_5,PIXEL21_1
- PIXEL01_1
- PIXEL02_1U
- PIXEL11
- PIXEL12_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag221
- DiffOrNot w6,w8,PIXEL02_1U,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL02_2,PIXEL12_6,PIXEL21_1,PIXEL22_5
- PIXEL00_1U
- PIXEL01_1
- PIXEL10_C
- PIXEL11
- PIXEL20_1M
- jmp .loopx_end
-..@flag207
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL02_1R,PIXEL10_C,PIXEL00_5,PIXEL01_6,PIXEL02_2,PIXEL10_1
- PIXEL11
- PIXEL12_1
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag238
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL22_1R,PIXEL10_1,PIXEL20_5,PIXEL21_6,PIXEL22_2
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1R
- PIXEL11
- PIXEL12_1
- jmp .loopx_end
-..@flag190
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL22_1D,PIXEL01_1,PIXEL02_5,PIXEL12_6,PIXEL22_2
- PIXEL00_1M
- PIXEL10_C
- PIXEL11
- PIXEL20_1D
- PIXEL21_1
- jmp .loopx_end
-..@flag187
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL20_1D,PIXEL00_5,PIXEL01_1,PIXEL10_6,PIXEL20_2
- PIXEL02_1M
- PIXEL11
- PIXEL12_C
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag243
- DiffOrNot w6,w8,PIXEL12_C,PIXEL20_1L,PIXEL21_C,PIXEL22_C,PIXEL12_1,PIXEL20_2,PIXEL21_6,PIXEL22_5
- PIXEL00_1L
- PIXEL01_C
- PIXEL02_1M
- PIXEL10_1
- PIXEL11
- jmp .loopx_end
-..@flag119
- DiffOrNot w2,w6,PIXEL00_1L,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL00_2,PIXEL01_6,PIXEL02_5,PIXEL12_1
- PIXEL10_1
- PIXEL11
- PIXEL20_1L
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag237
-..@flag233
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_C,PIXEL20_2
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag175
-..@flag47
- DiffOrNot w4,w2,PIXEL00_C,PIXEL00_2
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_2
- jmp .loopx_end
-..@flag183
-..@flag151
- PIXEL00_1L
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_C,PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_2
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag245
-..@flag244
- PIXEL00_2
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_1L
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_C,PIXEL22_2
- jmp .loopx_end
-..@flag250
- PIXEL00_1M
- PIXEL01_C
- PIXEL02_1M
- PIXEL11
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL10_3,PIXEL20_4
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL12_C,PIXEL22_C,PIXEL12_3,PIXEL22_4
- jmp .loopx_end
-..@flag123
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL00_4,PIXEL01_3
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL20_C,PIXEL21_C,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag95
- DiffOrNot w4,w2,PIXEL00_C,PIXEL10_C,PIXEL00_4,PIXEL10_3
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_C,PIXEL12_C,PIXEL02_4,PIXEL12_3
- PIXEL11
- PIXEL20_1M
- PIXEL21_C
- PIXEL22_1M
- jmp .loopx_end
-..@flag222
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL01_3,PIXEL02_4
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL21_C,PIXEL22_C,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag252
- PIXEL00_1M
- PIXEL01_1
- PIXEL02_1U
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL10_3,PIXEL20_4
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_C,PIXEL22_2
- jmp .loopx_end
-..@flag249
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- DiffOrNot w8,w4,PIXEL20_C,PIXEL20_2
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL12_C,PIXEL22_C,PIXEL12_3,PIXEL22_4
- jmp .loopx_end
-..@flag235
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL00_4,PIXEL01_3
- PIXEL02_1M
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_C,PIXEL20_2
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag111
- DiffOrNot w4,w2,PIXEL00_C,PIXEL00_2
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_C,PIXEL21_C,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag63
- DiffOrNot w4,w2,PIXEL00_C,PIXEL00_2
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_C,PIXEL12_C,PIXEL02_4,PIXEL12_3
- PIXEL10_C
- PIXEL11
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1M
- jmp .loopx_end
-..@flag159
- DiffOrNot w4,w2,PIXEL00_C,PIXEL10_C,PIXEL00_4,PIXEL10_3
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_C,PIXEL02_2
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag215
- PIXEL00_1L
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_C,PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL21_C,PIXEL22_C,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag246
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL01_3,PIXEL02_4
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_1L
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_C,PIXEL22_2
- jmp .loopx_end
-..@flag254
- PIXEL00_1M
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL01_3,PIXEL02_4
- PIXEL11
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL10_3,PIXEL20_4
- DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_2
- jmp .loopx_end
-..@flag253
- PIXEL00_1U
- PIXEL01_1
- PIXEL02_1U
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL20_C,PIXEL20_2
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_C,PIXEL22_2
- jmp .loopx_end
-..@flag251
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL00_4,PIXEL01_3
- PIXEL02_1M
- PIXEL11
- DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_2,PIXEL21_3
- DiffOrNot w6,w8,PIXEL12_C,PIXEL22_C,PIXEL12_3,PIXEL22_4
- jmp .loopx_end
-..@flag239
- DiffOrNot w4,w2,PIXEL00_C,PIXEL00_2
- PIXEL01_C
- PIXEL02_1R
- PIXEL10_C
- PIXEL11
- PIXEL12_1
- DiffOrNot w8,w4,PIXEL20_C,PIXEL20_2
- PIXEL21_C
- PIXEL22_1R
- jmp .loopx_end
-..@flag127
- DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_2,PIXEL01_3,PIXEL10_3
- DiffOrNot w2,w6,PIXEL02_C,PIXEL12_C,PIXEL02_4,PIXEL12_3
- PIXEL11
- DiffOrNot w8,w4,PIXEL20_C,PIXEL21_C,PIXEL20_4,PIXEL21_3
- PIXEL22_1M
- jmp .loopx_end
-..@flag191
- DiffOrNot w4,w2,PIXEL00_C,PIXEL00_2
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_C,PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- PIXEL20_1D
- PIXEL21_1
- PIXEL22_1D
- jmp .loopx_end
-..@flag223
- DiffOrNot w4,w2,PIXEL00_C,PIXEL10_C,PIXEL00_4,PIXEL10_3
- DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_2,PIXEL12_3
- PIXEL11
- PIXEL20_1M
- DiffOrNot w6,w8,PIXEL21_C,PIXEL22_C,PIXEL21_3,PIXEL22_4
- jmp .loopx_end
-..@flag247
- PIXEL00_1L
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_C,PIXEL02_2
- PIXEL10_1
- PIXEL11
- PIXEL12_C
- PIXEL20_1L
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_C,PIXEL22_2
- jmp .loopx_end
-..@flag255
- DiffOrNot w4,w2,PIXEL00_C,PIXEL00_2
- PIXEL01_C
- DiffOrNot w2,w6,PIXEL02_C,PIXEL02_2
- PIXEL10_C
- PIXEL11
- PIXEL12_C
- DiffOrNot w8,w4,PIXEL20_C,PIXEL20_2
- PIXEL21_C
- DiffOrNot w6,w8,PIXEL22_C,PIXEL22_2
- jmp .loopx_end
-
-..@cross0
- mov ebx,[ebp+pitch]
- mov [edi],eax
- mov [edi+4],eax
- mov [edi+8],eax
- mov [edi+ebx],eax
- mov [edi+ebx+4],eax
- mov [edi+ebx+8],eax
- mov [edi+ebx*2],eax
- mov [edi+ebx*2+4],eax
- mov [edi+ebx*2+8],eax
- jmp .loopx_end
-..@cross1
- mov ecx,[w2]
- mov edx,eax
- shl edx,2
- add edx,[ebx+ecx*4]
- sub edx,eax
- shr edx,2
- mov ebx,[ebp+pitch]
- mov [edi],edx
- mov [edi+4],edx
- mov [edi+8],edx
- mov [edi+ebx],eax
- mov [edi+ebx+4],eax
- mov [edi+ebx+8],eax
- mov [edi+ebx*2],eax
- mov [edi+ebx*2+4],eax
- mov [edi+ebx*2+8],eax
- jmp .loopx_end
-..@cross2
- mov ecx,[w4]
- mov edx,eax
- shl edx,2
- add edx,[ebx+ecx*4]
- sub edx,eax
- shr edx,2
- mov ebx,[ebp+pitch]
- mov [edi],edx
- mov [edi+4],eax
- mov [edi+8],eax
- mov [edi+ebx],edx
- mov [edi+ebx+4],eax
- mov [edi+ebx+8],eax
- mov [edi+ebx*2],edx
- mov [edi+ebx*2+4],eax
- mov [edi+ebx*2+8],eax
- jmp .loopx_end
-..@cross4
- mov ecx,[w6]
- mov edx,eax
- shl edx,2
- add edx,[ebx+ecx*4]
- sub edx,eax
- shr edx,2
- mov ebx,[ebp+pitch]
- mov [edi],eax
- mov [edi+4],eax
- mov [edi+8],edx
- mov [edi+ebx],eax
- mov [edi+ebx+4],eax
- mov [edi+ebx+8],edx
- mov [edi+ebx*2],eax
- mov [edi+ebx*2+4],eax
- mov [edi+ebx*2+8],edx
- jmp .loopx_end
-..@cross8
- mov ecx,[w8]
- mov edx,eax
- shl edx,2
- add edx,[ebx+ecx*4]
- sub edx,eax
- shr edx,2
- mov ebx,[ebp+pitch]
- mov [edi],eax
- mov [edi+4],eax
- mov [edi+8],eax
- mov [edi+ebx],eax
- mov [edi+ebx+4],eax
- mov [edi+ebx+8],eax
- mov [edi+ebx*2],edx
- mov [edi+ebx*2+4],edx
- mov [edi+ebx*2+8],edx
- jmp .loopx_end
-..@crossN
- mov edx,[w2]
- mov ecx,[ebx+edx*4]
- mov [c2],ecx
- mov edx,[w4]
- mov ecx,[ebx+edx*4]
- mov [c4],ecx
- mov edx,[w6]
- mov ecx,[ebx+edx*4]
- mov [c6],ecx
- mov edx,[w8]
- mov ecx,[ebx+edx*4]
- mov [c8],ecx
- mov ebx,[ebp+pitch]
- jmp ..@flag0
-
-.loopx_end
- add esi,2
- add edi,12
- dec dword[xcounter]
- jle .xres_2
- jmp .loopx
-.xres_2
- ; x=Xres-2 - special case
- jl .xres_1
- mov ebx,[prevline]
- movq mm5,[esi+ebx-4]
- movq mm6,[esi-4]
- mov ebx,[nextline]
- movq mm7,[esi+ebx-4]
- psrlq mm5,16
- psrlq mm6,16
- psrlq mm7,16
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- shr eax,16
- mov [w2],eax
- psrlq mm5,32
- movd eax,mm5
- mov [w3],eax
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- shr eax,16
- mov [w5],eax
- psrlq mm6,32
- movd eax,mm6
- mov [w6],eax
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- shr eax,16
- mov [w8],eax
- psrlq mm7,32
- movd eax,mm7
- mov [w9],eax
- jmp .flags
-.xres_1
- cmp dword[xcounter],-1
- jl .nexty
- ; x=Xres-1 - special case
- mov ebx,[prevline]
- movq mm5,[esi+ebx-6]
- movq mm6,[esi-6]
- mov ebx,[nextline]
- movq mm7,[esi+ebx-6]
- psrlq mm5,32
- psrlq mm6,32
- psrlq mm7,32
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- shr eax,16
- mov [w2],eax
- mov [w3],eax
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- shr eax,16
- mov [w5],eax
- mov [w6],eax
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- shr eax,16
- mov [w8],eax
- mov [w9],eax
- jmp .flags
-.nexty
- add edi,ebx
- add edi,ebx
- dec dword[linesleft]
- jz .fin
- mov ebx,[ebp+Xres]
- shl ebx,1
- cmp dword[linesleft],1
- je .lastline
- mov dword[nextline],ebx
- neg ebx
- mov dword[prevline],ebx
- jmp .loopy
-.lastline
- mov dword[nextline],0
- neg ebx
- mov dword[prevline],ebx
- jmp .loopy
-.fin
- emms
- popad
- mov esp,ebp
- pop ebp
- ret
-
-SECTION .data
-FuncTable
- dd ..@flag0, ..@flag1, ..@flag2, ..@flag3, ..@flag4, ..@flag5, ..@flag6, ..@flag7
- dd ..@flag8, ..@flag9, ..@flag10, ..@flag11, ..@flag12, ..@flag13, ..@flag14, ..@flag15
- dd ..@flag16, ..@flag17, ..@flag18, ..@flag19, ..@flag20, ..@flag21, ..@flag22, ..@flag23
- dd ..@flag24, ..@flag25, ..@flag26, ..@flag27, ..@flag28, ..@flag29, ..@flag30, ..@flag31
- dd ..@flag32, ..@flag33, ..@flag34, ..@flag35, ..@flag36, ..@flag37, ..@flag38, ..@flag39
- dd ..@flag40, ..@flag41, ..@flag42, ..@flag43, ..@flag44, ..@flag45, ..@flag46, ..@flag47
- dd ..@flag48, ..@flag49, ..@flag50, ..@flag51, ..@flag52, ..@flag53, ..@flag54, ..@flag55
- dd ..@flag56, ..@flag57, ..@flag58, ..@flag59, ..@flag60, ..@flag61, ..@flag62, ..@flag63
- dd ..@flag64, ..@flag65, ..@flag66, ..@flag67, ..@flag68, ..@flag69, ..@flag70, ..@flag71
- dd ..@flag72, ..@flag73, ..@flag74, ..@flag75, ..@flag76, ..@flag77, ..@flag78, ..@flag79
- dd ..@flag80, ..@flag81, ..@flag82, ..@flag83, ..@flag84, ..@flag85, ..@flag86, ..@flag87
- dd ..@flag88, ..@flag89, ..@flag90, ..@flag91, ..@flag92, ..@flag93, ..@flag94, ..@flag95
- dd ..@flag96, ..@flag97, ..@flag98, ..@flag99, ..@flag100, ..@flag101, ..@flag102, ..@flag103
- dd ..@flag104, ..@flag105, ..@flag106, ..@flag107, ..@flag108, ..@flag109, ..@flag110, ..@flag111
- dd ..@flag112, ..@flag113, ..@flag114, ..@flag115, ..@flag116, ..@flag117, ..@flag118, ..@flag119
- dd ..@flag120, ..@flag121, ..@flag122, ..@flag123, ..@flag124, ..@flag125, ..@flag126, ..@flag127
- dd ..@flag128, ..@flag129, ..@flag130, ..@flag131, ..@flag132, ..@flag133, ..@flag134, ..@flag135
- dd ..@flag136, ..@flag137, ..@flag138, ..@flag139, ..@flag140, ..@flag141, ..@flag142, ..@flag143
- dd ..@flag144, ..@flag145, ..@flag146, ..@flag147, ..@flag148, ..@flag149, ..@flag150, ..@flag151
- dd ..@flag152, ..@flag153, ..@flag154, ..@flag155, ..@flag156, ..@flag157, ..@flag158, ..@flag159
- dd ..@flag160, ..@flag161, ..@flag162, ..@flag163, ..@flag164, ..@flag165, ..@flag166, ..@flag167
- dd ..@flag168, ..@flag169, ..@flag170, ..@flag171, ..@flag172, ..@flag173, ..@flag174, ..@flag175
- dd ..@flag176, ..@flag177, ..@flag178, ..@flag179, ..@flag180, ..@flag181, ..@flag182, ..@flag183
- dd ..@flag184, ..@flag185, ..@flag186, ..@flag187, ..@flag188, ..@flag189, ..@flag190, ..@flag191
- dd ..@flag192, ..@flag193, ..@flag194, ..@flag195, ..@flag196, ..@flag197, ..@flag198, ..@flag199
- dd ..@flag200, ..@flag201, ..@flag202, ..@flag203, ..@flag204, ..@flag205, ..@flag206, ..@flag207
- dd ..@flag208, ..@flag209, ..@flag210, ..@flag211, ..@flag212, ..@flag213, ..@flag214, ..@flag215
- dd ..@flag216, ..@flag217, ..@flag218, ..@flag219, ..@flag220, ..@flag221, ..@flag222, ..@flag223
- dd ..@flag224, ..@flag225, ..@flag226, ..@flag227, ..@flag228, ..@flag229, ..@flag230, ..@flag231
- dd ..@flag232, ..@flag233, ..@flag234, ..@flag235, ..@flag236, ..@flag237, ..@flag238, ..@flag239
- dd ..@flag240, ..@flag241, ..@flag242, ..@flag243, ..@flag244, ..@flag245, ..@flag246, ..@flag247
- dd ..@flag248, ..@flag249, ..@flag250, ..@flag251, ..@flag252, ..@flag253, ..@flag254, ..@flag255
-
-FuncTable2
- dd ..@cross0, ..@cross1, ..@cross2, ..@crossN,
- dd ..@cross4, ..@crossN, ..@crossN, ..@crossN,
- dd ..@cross8, ..@crossN, ..@crossN, ..@crossN,
- dd ..@crossN, ..@crossN, ..@crossN, ..@crossN
-
+++ /dev/null
-;hq4x filter
-;16bpp output
-;----------------------------------------------------------
-;Copyright (C) 2003 MaxSt ( maxst@hiend3d.com )
-;
-;This program is free software; you can redistribute it and/or
-;modify it under the terms of the GNU General Public License
-;as published by the Free Software Foundation; either
-;version 2 of the License, or (at your option) any later
-;version.
-;
-;This program is distributed in the hope that it will be useful,
-;but WITHOUT ANY WARRANTY; without even the implied warranty of
-;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;GNU General Public License for more details.
-;
-;You should have received a copy of the GNU General Public License
-;along with this program; if not, write to the Free Software
-;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-GLOBAL _hq4x_16
-
-EXTERN _LUT16to32
-EXTERN _RGBtoYUV
-
-SECTION .bss
-linesleft resd 1
-xcounter resd 1
-cross resd 1
-nextline resd 1
-prevline resd 1
-w1 resd 1
-w2 resd 1
-w3 resd 1
-w4 resd 1
-w5 resd 1
-w6 resd 1
-w7 resd 1
-w8 resd 1
-w9 resd 1
-
-SECTION .data
-
-reg_blank dd 0,0
-const3 dd 0x00030003,0x00000003
-const5 dd 0x00050005,0x00000005
-const6 dd 0x00060006,0x00000006
-const7 dd 0x00070007,0x00000007
-threshold dd 0x00300706,0x00000000
-zerolowbits dd 0xF7DEF7DE
-
-SECTION .text
-
-%macro AUXADDRESS 0
- mov ecx, edi
- add ecx, ebx
- add ecx, ebx
-%endmacro
-
-%macro TestDiff 2
- mov edx,[%1]
- sub edx,[%2]
- jz %%fin
- mov edx,[%1]
- shl edx,2
- add edx,_RGBtoYUV
- movd mm1,[edx]
- movq mm5,mm1
- mov edx,[%2]
- shl edx,2
- add edx,_RGBtoYUV
- movd mm2,[edx]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
-%%fin:
-%endmacro
-
-%macro DiffOrNot 4
- TestDiff %1,%2
- test edx,edx
- jz %%same
- %3
- jmp %%fin
-%%same:
- %4
-%%fin
-%endmacro
-
-%macro DiffOrNot 8
- TestDiff %1,%2
- test edx,edx
- jz %%same
- %3
- %4
- %5
- jmp %%fin
-%%same:
- %6
- %7
- %8
-%%fin
-%endmacro
-
-%macro DiffOrNot 10
- TestDiff %1,%2
- test edx,edx
- jz %%same
- %3
- %4
- %5
- %6
- jmp %%fin
-%%same:
- %7
- %8
- %9
- %10
-%%fin
-%endmacro
-
-%macro DiffOrNot 14
- TestDiff %1,%2
- test edx,edx
- jz %%same
- %3
- %4
- %5
- %6
- %7
- %8
- jmp %%fin
-%%same:
- %9
- %10
- %11
- %12
- %13
- %14
-%%fin
-%endmacro
-
-%macro Interp1 3
- mov edx,%2
- mov eax,%3
- cmp edx,eax
- je %%fin
- and edx,[zerolowbits]
- and eax,[zerolowbits]
- add eax,edx
- shr eax,1
- add eax,0x0821
- and eax,[zerolowbits]
- add edx,eax
- shr edx,1
-%%fin
- mov %1,dx
-%endmacro
-
-%macro Interp2 4
- mov edx,%3
- mov eax,%4
- cmp edx,eax
- je %%fin1
- and edx,[zerolowbits]
- and eax,[zerolowbits]
- add eax,edx
- shr eax,1
- add eax,0x0821
-%%fin1
- mov edx,%2
- cmp edx,eax
- je %%fin2
- and eax,[zerolowbits]
- and edx,[zerolowbits]
- add edx,eax
- shr edx,1
-%%fin2
- mov %1,dx
-%endmacro
-
-%macro Interp3 3
- mov eax, _LUT16to32
- mov edx, %2
- movd mm1, [eax+edx*4]
- mov edx, %3
- movd mm2, [eax+edx*4]
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- pmullw mm1, [const7]
- paddw mm1, mm2
- psrlw mm1, 5
- packuswb mm1, [reg_blank]
- movd edx, mm1
- shl dl, 2
- shr edx, 1
- shl dx, 3
- shr edx, 5
- mov %1, dx
-%endmacro
-
-%macro Interp5 3
- mov edx,%2
- mov eax,%3
- cmp edx,eax
- je %%fin
- and edx,[zerolowbits]
- and eax,[zerolowbits]
- add edx,eax
- shr edx,1
-%%fin
- mov %1,dx
-%endmacro
-
-%macro Interp6 4
- mov eax, _LUT16to32
- mov edx, %2
- movd mm1, [eax+edx*4]
- mov edx, %3
- movd mm2, [eax+edx*4]
- mov edx, %4
- movd mm3, [eax+edx*4]
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- punpcklbw mm3, [reg_blank]
- pmullw mm1, [const5]
- psllw mm2, 1
- paddw mm1, mm3
- paddw mm1, mm2
- psrlw mm1, 5
- packuswb mm1, [reg_blank]
- movd edx, mm1
- shl dl, 2
- shr edx, 1
- shl dx, 3
- shr edx, 5
- mov %1, dx
-%endmacro
-
-%macro Interp7 4
- mov eax, _LUT16to32
- mov edx, %2
- movd mm1, [eax+edx*4]
- mov edx, %3
- movd mm2, [eax+edx*4]
- mov edx, %4
- movd mm3, [eax+edx*4]
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- punpcklbw mm3, [reg_blank]
- pmullw mm1, [const6]
- paddw mm2, mm3
- paddw mm1, mm2
- psrlw mm1, 5
- packuswb mm1, [reg_blank]
- movd edx, mm1
- shl dl, 2
- shr edx, 1
- shl dx, 3
- shr edx, 5
- mov %1, dx
-%endmacro
-
-%macro Interp8 3
- mov eax, _LUT16to32
- mov edx, %2
- movd mm1, [eax+edx*4]
- mov edx, %3
- movd mm2, [eax+edx*4]
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- pmullw mm1, [const5]
- pmullw mm2, [const3]
- paddw mm1, mm2
- psrlw mm1, 5
- packuswb mm1, [reg_blank]
- movd edx, mm1
- shl dl, 2
- shr edx, 1
- shl dx, 3
- shr edx, 5
- mov %1, dx
-%endmacro
-
-%macro PIXEL00_0 0
- mov eax,[w5]
- mov [edi],ax
-%endmacro
-
-%macro PIXEL00_11 0
- Interp1 [edi],[w5],[w4]
-%endmacro
-
-%macro PIXEL00_12 0
- Interp1 [edi],[w5],[w2]
-%endmacro
-
-%macro PIXEL00_20 0
- Interp2 [edi],[w5],[w2],[w4]
-%endmacro
-
-%macro PIXEL00_50 0
- Interp5 [edi],[w2],[w4]
-%endmacro
-
-%macro PIXEL00_80 0
- Interp8 [edi],[w5],[w1]
-%endmacro
-
-%macro PIXEL00_81 0
- Interp8 [edi],[w5],[w4]
-%endmacro
-
-%macro PIXEL00_82 0
- Interp8 [edi],[w5],[w2]
-%endmacro
-
-%macro PIXEL01_0 0
- mov eax,[w5]
- mov [edi+2],ax
-%endmacro
-
-%macro PIXEL01_10 0
- Interp1 [edi+2],[w5],[w1]
-%endmacro
-
-%macro PIXEL01_12 0
- Interp1 [edi+2],[w5],[w2]
-%endmacro
-
-%macro PIXEL01_14 0
- Interp1 [edi+2],[w2],[w5]
-%endmacro
-
-%macro PIXEL01_21 0
- Interp2 [edi+2],[w2],[w5],[w4]
-%endmacro
-
-%macro PIXEL01_31 0
- Interp3 [edi+2],[w5],[w4]
-%endmacro
-
-%macro PIXEL01_50 0
- Interp5 [edi+2],[w2],[w5]
-%endmacro
-
-%macro PIXEL01_60 0
- Interp6 [edi+2],[w5],[w2],[w4]
-%endmacro
-
-%macro PIXEL01_61 0
- Interp6 [edi+2],[w5],[w2],[w1]
-%endmacro
-
-%macro PIXEL01_82 0
- Interp8 [edi+2],[w5],[w2]
-%endmacro
-
-%macro PIXEL01_83 0
- Interp8 [edi+2],[w2],[w4]
-%endmacro
-
-%macro PIXEL02_0 0
- mov eax,[w5]
- mov [edi+4],ax
-%endmacro
-
-%macro PIXEL02_10 0
- Interp1 [edi+4],[w5],[w3]
-%endmacro
-
-%macro PIXEL02_11 0
- Interp1 [edi+4],[w5],[w2]
-%endmacro
-
-%macro PIXEL02_13 0
- Interp1 [edi+4],[w2],[w5]
-%endmacro
-
-%macro PIXEL02_21 0
- Interp2 [edi+4],[w2],[w5],[w6]
-%endmacro
-
-%macro PIXEL02_32 0
- Interp3 [edi+4],[w5],[w6]
-%endmacro
-
-%macro PIXEL02_50 0
- Interp5 [edi+4],[w2],[w5]
-%endmacro
-
-%macro PIXEL02_60 0
- Interp6 [edi+4],[w5],[w2],[w6]
-%endmacro
-
-%macro PIXEL02_61 0
- Interp6 [edi+4],[w5],[w2],[w3]
-%endmacro
-
-%macro PIXEL02_81 0
- Interp8 [edi+4],[w5],[w2]
-%endmacro
-
-%macro PIXEL02_83 0
- Interp8 [edi+4],[w2],[w6]
-%endmacro
-
-%macro PIXEL03_0 0
- mov eax,[w5]
- mov [edi+6],ax
-%endmacro
-
-%macro PIXEL03_11 0
- Interp1 [edi+6],[w5],[w2]
-%endmacro
-
-%macro PIXEL03_12 0
- Interp1 [edi+6],[w5],[w6]
-%endmacro
-
-%macro PIXEL03_20 0
- Interp2 [edi+6],[w5],[w2],[w6]
-%endmacro
-
-%macro PIXEL03_50 0
- Interp5 [edi+6],[w2],[w6]
-%endmacro
-
-%macro PIXEL03_80 0
- Interp8 [edi+6],[w5],[w3]
-%endmacro
-
-%macro PIXEL03_81 0
- Interp8 [edi+6],[w5],[w2]
-%endmacro
-
-%macro PIXEL03_82 0
- Interp8 [edi+6],[w5],[w6]
-%endmacro
-
-%macro PIXEL10_0 0
- mov eax,[w5]
- mov [edi+ebx],ax
-%endmacro
-
-%macro PIXEL10_10 0
- Interp1 [edi+ebx],[w5],[w1]
-%endmacro
-
-%macro PIXEL10_11 0
- Interp1 [edi+ebx],[w5],[w4]
-%endmacro
-
-%macro PIXEL10_13 0
- Interp1 [edi+ebx],[w4],[w5]
-%endmacro
-
-%macro PIXEL10_21 0
- Interp2 [edi+ebx],[w4],[w5],[w2]
-%endmacro
-
-%macro PIXEL10_32 0
- Interp3 [edi+ebx],[w5],[w2]
-%endmacro
-
-%macro PIXEL10_50 0
- Interp5 [edi+ebx],[w4],[w5]
-%endmacro
-
-%macro PIXEL10_60 0
- Interp6 [edi+ebx],[w5],[w4],[w2]
-%endmacro
-
-%macro PIXEL10_61 0
- Interp6 [edi+ebx],[w5],[w4],[w1]
-%endmacro
-
-%macro PIXEL10_81 0
- Interp8 [edi+ebx],[w5],[w4]
-%endmacro
-
-%macro PIXEL10_83 0
- Interp8 [edi+ebx],[w4],[w2]
-%endmacro
-
-%macro PIXEL11_0 0
- mov eax,[w5]
- mov [edi+ebx+2],ax
-%endmacro
-
-%macro PIXEL11_30 0
- Interp3 [edi+ebx+2],[w5],[w1]
-%endmacro
-
-%macro PIXEL11_31 0
- Interp3 [edi+ebx+2],[w5],[w4]
-%endmacro
-
-%macro PIXEL11_32 0
- Interp3 [edi+ebx+2],[w5],[w2]
-%endmacro
-
-%macro PIXEL11_70 0
- Interp7 [edi+ebx+2],[w5],[w4],[w2]
-%endmacro
-
-%macro PIXEL12_0 0
- mov eax,[w5]
- mov [edi+ebx+4],ax
-%endmacro
-
-%macro PIXEL12_30 0
- Interp3 [edi+ebx+4],[w5],[w3]
-%endmacro
-
-%macro PIXEL12_31 0
- Interp3 [edi+ebx+4],[w5],[w2]
-%endmacro
-
-%macro PIXEL12_32 0
- Interp3 [edi+ebx+4],[w5],[w6]
-%endmacro
-
-%macro PIXEL12_70 0
- Interp7 [edi+ebx+4],[w5],[w6],[w2]
-%endmacro
-
-%macro PIXEL13_0 0
- mov eax,[w5]
- mov [edi+ebx+6],ax
-%endmacro
-
-%macro PIXEL13_10 0
- Interp1 [edi+ebx+6],[w5],[w3]
-%endmacro
-
-%macro PIXEL13_12 0
- Interp1 [edi+ebx+6],[w5],[w6]
-%endmacro
-
-%macro PIXEL13_14 0
- Interp1 [edi+ebx+6],[w6],[w5]
-%endmacro
-
-%macro PIXEL13_21 0
- Interp2 [edi+ebx+6],[w6],[w5],[w2]
-%endmacro
-
-%macro PIXEL13_31 0
- Interp3 [edi+ebx+6],[w5],[w2]
-%endmacro
-
-%macro PIXEL13_50 0
- Interp5 [edi+ebx+6],[w6],[w5]
-%endmacro
-
-%macro PIXEL13_60 0
- Interp6 [edi+ebx+6],[w5],[w6],[w2]
-%endmacro
-
-%macro PIXEL13_61 0
- Interp6 [edi+ebx+6],[w5],[w6],[w3]
-%endmacro
-
-%macro PIXEL13_82 0
- Interp8 [edi+ebx+6],[w5],[w6]
-%endmacro
-
-%macro PIXEL13_83 0
- Interp8 [edi+ebx+6],[w6],[w2]
-%endmacro
-
-%macro PIXEL20_0 0
- mov eax,[w5]
- mov [ecx],ax
-%endmacro
-
-%macro PIXEL20_10 0
- Interp1 [ecx],[w5],[w7]
-%endmacro
-
-%macro PIXEL20_12 0
- Interp1 [ecx],[w5],[w4]
-%endmacro
-
-%macro PIXEL20_14 0
- Interp1 [ecx],[w4],[w5]
-%endmacro
-
-%macro PIXEL20_21 0
- Interp2 [ecx],[w4],[w5],[w8]
-%endmacro
-
-%macro PIXEL20_31 0
- Interp3 [ecx],[w5],[w8]
-%endmacro
-
-%macro PIXEL20_50 0
- Interp5 [ecx],[w4],[w5]
-%endmacro
-
-%macro PIXEL20_60 0
- Interp6 [ecx],[w5],[w4],[w8]
-%endmacro
-
-%macro PIXEL20_61 0
- Interp6 [ecx],[w5],[w4],[w7]
-%endmacro
-
-%macro PIXEL20_82 0
- Interp8 [ecx],[w5],[w4]
-%endmacro
-
-%macro PIXEL20_83 0
- Interp8 [ecx],[w4],[w8]
-%endmacro
-
-%macro PIXEL21_0 0
- mov eax,[w5]
- mov [ecx+2],ax
-%endmacro
-
-%macro PIXEL21_30 0
- Interp3 [ecx+2],[w5],[w7]
-%endmacro
-
-%macro PIXEL21_31 0
- Interp3 [ecx+2],[w5],[w8]
-%endmacro
-
-%macro PIXEL21_32 0
- Interp3 [ecx+2],[w5],[w4]
-%endmacro
-
-%macro PIXEL21_70 0
- Interp7 [ecx+2],[w5],[w4],[w8]
-%endmacro
-
-%macro PIXEL22_0 0
- mov eax,[w5]
- mov [ecx+4],ax
-%endmacro
-
-%macro PIXEL22_30 0
- Interp3 [ecx+4],[w5],[w9]
-%endmacro
-
-%macro PIXEL22_31 0
- Interp3 [ecx+4],[w5],[w6]
-%endmacro
-
-%macro PIXEL22_32 0
- Interp3 [ecx+4],[w5],[w8]
-%endmacro
-
-%macro PIXEL22_70 0
- Interp7 [ecx+4],[w5],[w6],[w8]
-%endmacro
-
-%macro PIXEL23_0 0
- mov eax,[w5]
- mov [ecx+6],ax
-%endmacro
-
-%macro PIXEL23_10 0
- Interp1 [ecx+6],[w5],[w9]
-%endmacro
-
-%macro PIXEL23_11 0
- Interp1 [ecx+6],[w5],[w6]
-%endmacro
-
-%macro PIXEL23_13 0
- Interp1 [ecx+6],[w6],[w5]
-%endmacro
-
-%macro PIXEL23_21 0
- Interp2 [ecx+6],[w6],[w5],[w8]
-%endmacro
-
-%macro PIXEL23_32 0
- Interp3 [ecx+6],[w5],[w8]
-%endmacro
-
-%macro PIXEL23_50 0
- Interp5 [ecx+6],[w6],[w5]
-%endmacro
-
-%macro PIXEL23_60 0
- Interp6 [ecx+6],[w5],[w6],[w8]
-%endmacro
-
-%macro PIXEL23_61 0
- Interp6 [ecx+6],[w5],[w6],[w9]
-%endmacro
-
-%macro PIXEL23_81 0
- Interp8 [ecx+6],[w5],[w6]
-%endmacro
-
-%macro PIXEL23_83 0
- Interp8 [ecx+6],[w6],[w8]
-%endmacro
-
-%macro PIXEL30_0 0
- mov eax,[w5]
- mov [ecx+ebx],ax
-%endmacro
-
-%macro PIXEL30_11 0
- Interp1 [ecx+ebx],[w5],[w8]
-%endmacro
-
-%macro PIXEL30_12 0
- Interp1 [ecx+ebx],[w5],[w4]
-%endmacro
-
-%macro PIXEL30_20 0
- Interp2 [ecx+ebx],[w5],[w8],[w4]
-%endmacro
-
-%macro PIXEL30_50 0
- Interp5 [ecx+ebx],[w8],[w4]
-%endmacro
-
-%macro PIXEL30_80 0
- Interp8 [ecx+ebx],[w5],[w7]
-%endmacro
-
-%macro PIXEL30_81 0
- Interp8 [ecx+ebx],[w5],[w8]
-%endmacro
-
-%macro PIXEL30_82 0
- Interp8 [ecx+ebx],[w5],[w4]
-%endmacro
-
-%macro PIXEL31_0 0
- mov eax,[w5]
- mov [ecx+ebx+2],ax
-%endmacro
-
-%macro PIXEL31_10 0
- Interp1 [ecx+ebx+2],[w5],[w7]
-%endmacro
-
-%macro PIXEL31_11 0
- Interp1 [ecx+ebx+2],[w5],[w8]
-%endmacro
-
-%macro PIXEL31_13 0
- Interp1 [ecx+ebx+2],[w8],[w5]
-%endmacro
-
-%macro PIXEL31_21 0
- Interp2 [ecx+ebx+2],[w8],[w5],[w4]
-%endmacro
-
-%macro PIXEL31_32 0
- Interp3 [ecx+ebx+2],[w5],[w4]
-%endmacro
-
-%macro PIXEL31_50 0
- Interp5 [ecx+ebx+2],[w8],[w5]
-%endmacro
-
-%macro PIXEL31_60 0
- Interp6 [ecx+ebx+2],[w5],[w8],[w4]
-%endmacro
-
-%macro PIXEL31_61 0
- Interp6 [ecx+ebx+2],[w5],[w8],[w7]
-%endmacro
-
-%macro PIXEL31_81 0
- Interp8 [ecx+ebx+2],[w5],[w8]
-%endmacro
-
-%macro PIXEL31_83 0
- Interp8 [ecx+ebx+2],[w8],[w4]
-%endmacro
-
-%macro PIXEL32_0 0
- mov eax,[w5]
- mov [ecx+ebx+4],ax
-%endmacro
-
-%macro PIXEL32_10 0
- Interp1 [ecx+ebx+4],[w5],[w9]
-%endmacro
-
-%macro PIXEL32_12 0
- Interp1 [ecx+ebx+4],[w5],[w8]
-%endmacro
-
-%macro PIXEL32_14 0
- Interp1 [ecx+ebx+4],[w8],[w5]
-%endmacro
-
-%macro PIXEL32_21 0
- Interp2 [ecx+ebx+4],[w8],[w5],[w6]
-%endmacro
-
-%macro PIXEL32_31 0
- Interp3 [ecx+ebx+4],[w5],[w6]
-%endmacro
-
-%macro PIXEL32_50 0
- Interp5 [ecx+ebx+4],[w8],[w5]
-%endmacro
-
-%macro PIXEL32_60 0
- Interp6 [ecx+ebx+4],[w5],[w8],[w6]
-%endmacro
-
-%macro PIXEL32_61 0
- Interp6 [ecx+ebx+4],[w5],[w8],[w9]
-%endmacro
-
-%macro PIXEL32_82 0
- Interp8 [ecx+ebx+4],[w5],[w8]
-%endmacro
-
-%macro PIXEL32_83 0
- Interp8 [ecx+ebx+4],[w8],[w6]
-%endmacro
-
-%macro PIXEL33_0 0
- mov eax,[w5]
- mov [ecx+ebx+6],ax
-%endmacro
-
-%macro PIXEL33_11 0
- Interp1 [ecx+ebx+6],[w5],[w6]
-%endmacro
-
-%macro PIXEL33_12 0
- Interp1 [ecx+ebx+6],[w5],[w8]
-%endmacro
-
-%macro PIXEL33_20 0
- Interp2 [ecx+ebx+6],[w5],[w8],[w6]
-%endmacro
-
-%macro PIXEL33_50 0
- Interp5 [ecx+ebx+6],[w8],[w6]
-%endmacro
-
-%macro PIXEL33_80 0
- Interp8 [ecx+ebx+6],[w5],[w9]
-%endmacro
-
-%macro PIXEL33_81 0
- Interp8 [ecx+ebx+6],[w5],[w6]
-%endmacro
-
-%macro PIXEL33_82 0
- Interp8 [ecx+ebx+6],[w5],[w8]
-%endmacro
-
-inbuffer equ 8
-outbuffer equ 12
-Xres equ 16
-Yres equ 20
-pitch equ 24
-
-_hq4x_16:
- push ebp
- mov ebp,esp
- pushad
-
- mov esi,[ebp+inbuffer]
- mov edi,[ebp+outbuffer]
- mov edx,[ebp+Yres]
- mov [linesleft],edx
- mov ebx,[ebp+Xres]
- shl ebx,1
- mov dword[prevline],0
- mov dword[nextline],ebx
-.loopy
- mov ecx,[ebp+Xres]
- sub ecx,2 ; x={Xres-2, Xres-1} are special cases.
- mov dword[xcounter],ecx
- ; x=0 - special case
- mov ebx,[prevline]
- movq mm5,[esi+ebx]
- movq mm6,[esi]
- mov ebx,[nextline]
- movq mm7,[esi+ebx]
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- mov [w2],edx
- shr eax,16
- mov [w3],eax
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- mov [w5],edx
- shr eax,16
- mov [w6],eax
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- mov [w8],edx
- shr eax,16
- mov [w9],eax
- jmp .flags
-.loopx
- mov ebx,[prevline]
- movq mm5,[esi+ebx-2]
- movq mm6,[esi-2]
- mov ebx,[nextline]
- movq mm7,[esi+ebx-2]
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- shr eax,16
- mov [w2],eax
- psrlq mm5,32
- movd eax,mm5
- movzx edx,ax
- mov [w3],edx
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- shr eax,16
- mov [w5],eax
- psrlq mm6,32
- movd eax,mm6
- movzx edx,ax
- mov [w6],edx
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- shr eax,16
- mov [w8],eax
- psrlq mm7,32
- movd eax,mm7
- movzx edx,ax
- mov [w9],edx
-.flags
- mov ebx,_RGBtoYUV
- mov eax,[w5]
- xor ecx,ecx
- movd mm5,[ebx+eax*4]
- mov dword[cross],0
-
- mov edx,[w2]
- cmp eax,edx
- je .noflag2
- or dword[cross],1
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag2
- or ecx,2
-.noflag2
- mov edx,[w4]
- cmp eax,edx
- je .noflag4
- or dword[cross],2
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag4
- or ecx,8
-.noflag4
- mov edx,[w6]
- cmp eax,edx
- je .noflag6
- or dword[cross],4
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag6
- or ecx,16
-.noflag6
- mov edx,[w8]
- cmp eax,edx
- je .noflag8
- or dword[cross],8
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag8
- or ecx,64
-.noflag8
- cmp dword[cross],0
- jnz .testflag1
- mov ebx,[ebp+pitch]
- mov edx,eax
- shl eax,16
- or eax,edx
- AUXADDRESS
- mov [edi],eax
- mov [edi+4],eax
- mov [edi+ebx],eax
- mov [edi+ebx+4],eax
- mov [ecx],eax
- mov [ecx+4],eax
- mov [ecx+ebx],eax
- mov [ecx+ebx+4],eax
- jmp .loopx_end
-.testflag1
- mov edx,[w1]
- cmp eax,edx
- je .noflag1
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag1
- or ecx,1
-.noflag1
- mov edx,[w3]
- cmp eax,edx
- je .noflag3
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag3
- or ecx,4
-.noflag3
- mov edx,[w7]
- cmp eax,edx
- je .noflag7
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag7
- or ecx,32
-.noflag7
- mov edx,[w9]
- cmp eax,edx
- je .noflag9
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag9
- or ecx,128
-.noflag9
- mov ebx,[ebp+pitch]
- jmp [FuncTable+ecx*4]
-
-..@flag0
-..@flag1
-..@flag4
-..@flag32
-..@flag128
-..@flag5
-..@flag132
-..@flag160
-..@flag33
-..@flag129
-..@flag36
-..@flag133
-..@flag164
-..@flag161
-..@flag37
-..@flag165
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_60
- PIXEL03_20
- PIXEL10_60
- PIXEL11_70
- PIXEL12_70
- PIXEL13_60
- PIXEL20_60
- PIXEL21_70
- PIXEL22_70
- PIXEL23_60
- PIXEL30_20
- PIXEL31_60
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag2
-..@flag34
-..@flag130
-..@flag162
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_10
- PIXEL03_80
- PIXEL10_61
- PIXEL11_30
- PIXEL12_30
- PIXEL13_61
- PIXEL20_60
- PIXEL21_70
- PIXEL22_70
- PIXEL23_60
- PIXEL30_20
- PIXEL31_60
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag16
-..@flag17
-..@flag48
-..@flag49
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_61
- PIXEL03_80
- PIXEL10_60
- PIXEL11_70
- PIXEL12_30
- PIXEL13_10
- PIXEL20_60
- PIXEL21_70
- PIXEL22_30
- PIXEL23_10
- PIXEL30_20
- PIXEL31_60
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag64
-..@flag65
-..@flag68
-..@flag69
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_60
- PIXEL03_20
- PIXEL10_60
- PIXEL11_70
- PIXEL12_70
- PIXEL13_60
- PIXEL20_61
- PIXEL21_30
- PIXEL22_30
- PIXEL23_61
- PIXEL30_80
- PIXEL31_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag8
-..@flag12
-..@flag136
-..@flag140
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_60
- PIXEL03_20
- PIXEL10_10
- PIXEL11_30
- PIXEL12_70
- PIXEL13_60
- PIXEL20_10
- PIXEL21_30
- PIXEL22_70
- PIXEL23_60
- PIXEL30_80
- PIXEL31_61
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag3
-..@flag35
-..@flag131
-..@flag163
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_10
- PIXEL03_80
- PIXEL10_81
- PIXEL11_31
- PIXEL12_30
- PIXEL13_61
- PIXEL20_60
- PIXEL21_70
- PIXEL22_70
- PIXEL23_60
- PIXEL30_20
- PIXEL31_60
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag6
-..@flag38
-..@flag134
-..@flag166
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_32
- PIXEL03_82
- PIXEL10_61
- PIXEL11_30
- PIXEL12_32
- PIXEL13_82
- PIXEL20_60
- PIXEL21_70
- PIXEL22_70
- PIXEL23_60
- PIXEL30_20
- PIXEL31_60
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag20
-..@flag21
-..@flag52
-..@flag53
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_81
- PIXEL03_81
- PIXEL10_60
- PIXEL11_70
- PIXEL12_31
- PIXEL13_31
- PIXEL20_60
- PIXEL21_70
- PIXEL22_30
- PIXEL23_10
- PIXEL30_20
- PIXEL31_60
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag144
-..@flag145
-..@flag176
-..@flag177
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_61
- PIXEL03_80
- PIXEL10_60
- PIXEL11_70
- PIXEL12_30
- PIXEL13_10
- PIXEL20_60
- PIXEL21_70
- PIXEL22_32
- PIXEL23_32
- PIXEL30_20
- PIXEL31_60
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag192
-..@flag193
-..@flag196
-..@flag197
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_60
- PIXEL03_20
- PIXEL10_60
- PIXEL11_70
- PIXEL12_70
- PIXEL13_60
- PIXEL20_61
- PIXEL21_30
- PIXEL22_31
- PIXEL23_81
- PIXEL30_80
- PIXEL31_10
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag96
-..@flag97
-..@flag100
-..@flag101
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_60
- PIXEL03_20
- PIXEL10_60
- PIXEL11_70
- PIXEL12_70
- PIXEL13_60
- PIXEL20_82
- PIXEL21_32
- PIXEL22_30
- PIXEL23_61
- PIXEL30_82
- PIXEL31_32
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag40
-..@flag44
-..@flag168
-..@flag172
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_60
- PIXEL03_20
- PIXEL10_10
- PIXEL11_30
- PIXEL12_70
- PIXEL13_60
- PIXEL20_31
- PIXEL21_31
- PIXEL22_70
- PIXEL23_60
- PIXEL30_81
- PIXEL31_81
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag9
-..@flag13
-..@flag137
-..@flag141
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_60
- PIXEL03_20
- PIXEL10_32
- PIXEL11_32
- PIXEL12_70
- PIXEL13_60
- PIXEL20_10
- PIXEL21_30
- PIXEL22_70
- PIXEL23_60
- PIXEL30_80
- PIXEL31_61
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag18
-..@flag50
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_50,PIXEL03_50,PIXEL12_0,PIXEL13_50
- PIXEL10_61
- PIXEL11_30
- PIXEL20_60
- PIXEL21_70
- PIXEL22_30
- PIXEL23_10
- PIXEL30_20
- PIXEL31_60
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag80
-..@flag81
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_61
- PIXEL03_80
- PIXEL10_60
- PIXEL11_70
- PIXEL12_30
- PIXEL13_10
- PIXEL20_61
- PIXEL21_30
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag72
-..@flag76
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_60
- PIXEL03_20
- PIXEL10_10
- PIXEL11_30
- PIXEL12_70
- PIXEL13_60
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_50,PIXEL21_0,PIXEL30_50,PIXEL31_50
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag10
-..@flag138
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_50,PIXEL01_50,PIXEL10_50,PIXEL11_0
- PIXEL02_10
- PIXEL03_80
- PIXEL12_30
- PIXEL13_61
- PIXEL20_10
- PIXEL21_30
- PIXEL22_70
- PIXEL23_60
- PIXEL30_80
- PIXEL31_61
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag66
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_10
- PIXEL03_80
- PIXEL10_61
- PIXEL11_30
- PIXEL12_30
- PIXEL13_61
- PIXEL20_61
- PIXEL21_30
- PIXEL22_30
- PIXEL23_61
- PIXEL30_80
- PIXEL31_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag24
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_61
- PIXEL03_80
- PIXEL10_10
- PIXEL11_30
- PIXEL12_30
- PIXEL13_10
- PIXEL20_10
- PIXEL21_30
- PIXEL22_30
- PIXEL23_10
- PIXEL30_80
- PIXEL31_61
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag7
-..@flag39
-..@flag135
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_32
- PIXEL03_82
- PIXEL10_81
- PIXEL11_31
- PIXEL12_32
- PIXEL13_82
- PIXEL20_60
- PIXEL21_70
- PIXEL22_70
- PIXEL23_60
- PIXEL30_20
- PIXEL31_60
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag148
-..@flag149
-..@flag180
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_81
- PIXEL03_81
- PIXEL10_60
- PIXEL11_70
- PIXEL12_31
- PIXEL13_31
- PIXEL20_60
- PIXEL21_70
- PIXEL22_32
- PIXEL23_32
- PIXEL30_20
- PIXEL31_60
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag224
-..@flag228
-..@flag225
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_60
- PIXEL03_20
- PIXEL10_60
- PIXEL11_70
- PIXEL12_70
- PIXEL13_60
- PIXEL20_82
- PIXEL21_32
- PIXEL22_31
- PIXEL23_81
- PIXEL30_82
- PIXEL31_32
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag41
-..@flag169
-..@flag45
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_60
- PIXEL03_20
- PIXEL10_32
- PIXEL11_32
- PIXEL12_70
- PIXEL13_60
- PIXEL20_31
- PIXEL21_31
- PIXEL22_70
- PIXEL23_60
- PIXEL30_81
- PIXEL31_81
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag22
-..@flag54
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_61
- PIXEL11_30
- PIXEL12_0
- PIXEL20_60
- PIXEL21_70
- PIXEL22_30
- PIXEL23_10
- PIXEL30_20
- PIXEL31_60
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag208
-..@flag209
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_61
- PIXEL03_80
- PIXEL10_60
- PIXEL11_70
- PIXEL12_30
- PIXEL13_10
- PIXEL20_61
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag104
-..@flag108
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_60
- PIXEL03_20
- PIXEL10_10
- PIXEL11_30
- PIXEL12_70
- PIXEL13_60
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag11
-..@flag139
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_61
- PIXEL20_10
- PIXEL21_30
- PIXEL22_70
- PIXEL23_60
- PIXEL30_80
- PIXEL31_61
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag19
-..@flag51
- AUXADDRESS
- DiffOrNot w2,w6,PIXEL00_81,PIXEL01_31,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL00_12,PIXEL01_14,PIXEL02_83,PIXEL03_50,PIXEL12_70,PIXEL13_21
- PIXEL10_81
- PIXEL11_31
- PIXEL20_60
- PIXEL21_70
- PIXEL22_30
- PIXEL23_10
- PIXEL30_20
- PIXEL31_60
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag146
-..@flag178
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL23_32,PIXEL33_82,PIXEL02_21,PIXEL03_50,PIXEL12_70,PIXEL13_83,PIXEL23_13,PIXEL33_11
- PIXEL10_61
- PIXEL11_30
- PIXEL20_60
- PIXEL21_70
- PIXEL22_32
- PIXEL30_20
- PIXEL31_60
- PIXEL32_82
- jmp .loopx_end
-..@flag84
-..@flag85
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_81
- DiffOrNot w6,w8,PIXEL03_81,PIXEL13_31,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL03_12,PIXEL13_14,PIXEL22_70,PIXEL23_83,PIXEL32_21,PIXEL33_50
- PIXEL10_60
- PIXEL11_70
- PIXEL12_31
- PIXEL20_61
- PIXEL21_30
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag112
-..@flag113
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_61
- PIXEL03_80
- PIXEL10_60
- PIXEL11_70
- PIXEL12_30
- PIXEL13_10
- PIXEL20_82
- PIXEL21_32
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL30_82,PIXEL31_32,PIXEL32_10,PIXEL33_80,PIXEL22_70,PIXEL23_21,PIXEL30_11,PIXEL31_13,PIXEL32_83,PIXEL33_50
- jmp .loopx_end
-..@flag200
-..@flag204
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_60
- PIXEL03_20
- PIXEL10_10
- PIXEL11_30
- PIXEL12_70
- PIXEL13_60
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL32_31,PIXEL33_81,PIXEL20_21,PIXEL21_70,PIXEL30_50,PIXEL31_83,PIXEL32_14,PIXEL33_12
- PIXEL22_31
- PIXEL23_81
- jmp .loopx_end
-..@flag73
-..@flag77
- AUXADDRESS
- DiffOrNot w8,w4,PIXEL00_82,PIXEL10_32,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL00_11,PIXEL10_13,PIXEL20_83,PIXEL21_70,PIXEL30_50,PIXEL31_21
- PIXEL01_82
- PIXEL02_60
- PIXEL03_20
- PIXEL11_32
- PIXEL12_70
- PIXEL13_60
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag42
-..@flag170
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL20_31,PIXEL30_81,PIXEL00_50,PIXEL01_21,PIXEL10_83,PIXEL11_70,PIXEL20_14,PIXEL30_12
- PIXEL02_10
- PIXEL03_80
- PIXEL12_30
- PIXEL13_61
- PIXEL21_31
- PIXEL22_70
- PIXEL23_60
- PIXEL31_81
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag14
-..@flag142
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL02_32,PIXEL03_82,PIXEL10_10,PIXEL11_30,PIXEL00_50,PIXEL01_83,PIXEL02_13,PIXEL03_11,PIXEL10_21,PIXEL11_70
- PIXEL12_32
- PIXEL13_82
- PIXEL20_10
- PIXEL21_30
- PIXEL22_70
- PIXEL23_60
- PIXEL30_80
- PIXEL31_61
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag67
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_10
- PIXEL03_80
- PIXEL10_81
- PIXEL11_31
- PIXEL12_30
- PIXEL13_61
- PIXEL20_61
- PIXEL21_30
- PIXEL22_30
- PIXEL23_61
- PIXEL30_80
- PIXEL31_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag70
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_32
- PIXEL03_82
- PIXEL10_61
- PIXEL11_30
- PIXEL12_32
- PIXEL13_82
- PIXEL20_61
- PIXEL21_30
- PIXEL22_30
- PIXEL23_61
- PIXEL30_80
- PIXEL31_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag28
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_81
- PIXEL03_81
- PIXEL10_10
- PIXEL11_30
- PIXEL12_31
- PIXEL13_31
- PIXEL20_10
- PIXEL21_30
- PIXEL22_30
- PIXEL23_10
- PIXEL30_80
- PIXEL31_61
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag152
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_61
- PIXEL03_80
- PIXEL10_10
- PIXEL11_30
- PIXEL12_30
- PIXEL13_10
- PIXEL20_10
- PIXEL21_30
- PIXEL22_32
- PIXEL23_32
- PIXEL30_80
- PIXEL31_61
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag194
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_10
- PIXEL03_80
- PIXEL10_61
- PIXEL11_30
- PIXEL12_30
- PIXEL13_61
- PIXEL20_61
- PIXEL21_30
- PIXEL22_31
- PIXEL23_81
- PIXEL30_80
- PIXEL31_10
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag98
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_10
- PIXEL03_80
- PIXEL10_61
- PIXEL11_30
- PIXEL12_30
- PIXEL13_61
- PIXEL20_82
- PIXEL21_32
- PIXEL22_30
- PIXEL23_61
- PIXEL30_82
- PIXEL31_32
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag56
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_61
- PIXEL03_80
- PIXEL10_10
- PIXEL11_30
- PIXEL12_30
- PIXEL13_10
- PIXEL20_31
- PIXEL21_31
- PIXEL22_30
- PIXEL23_10
- PIXEL30_81
- PIXEL31_81
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag25
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_61
- PIXEL03_80
- PIXEL10_32
- PIXEL11_32
- PIXEL12_30
- PIXEL13_10
- PIXEL20_10
- PIXEL21_30
- PIXEL22_30
- PIXEL23_10
- PIXEL30_80
- PIXEL31_61
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag26
-..@flag31
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL11_0
- PIXEL12_0
- PIXEL20_10
- PIXEL21_30
- PIXEL22_30
- PIXEL23_10
- PIXEL30_80
- PIXEL31_61
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag82
-..@flag214
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_61
- PIXEL11_30
- PIXEL12_0
- PIXEL20_61
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag88
-..@flag248
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_61
- PIXEL03_80
- PIXEL10_10
- PIXEL11_30
- PIXEL12_30
- PIXEL13_10
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- jmp .loopx_end
-..@flag74
-..@flag107
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_61
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag27
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_10
- PIXEL20_10
- PIXEL21_30
- PIXEL22_30
- PIXEL23_10
- PIXEL30_80
- PIXEL31_61
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag86
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_61
- PIXEL11_30
- PIXEL12_0
- PIXEL20_61
- PIXEL21_30
- PIXEL22_30
- PIXEL23_10
- PIXEL30_80
- PIXEL31_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag216
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_61
- PIXEL03_80
- PIXEL10_10
- PIXEL11_30
- PIXEL12_30
- PIXEL13_10
- PIXEL20_10
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag106
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_10
- PIXEL03_80
- PIXEL10_10
- PIXEL11_30
- PIXEL12_30
- PIXEL13_61
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag30
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_10
- PIXEL11_30
- PIXEL12_0
- PIXEL20_10
- PIXEL21_30
- PIXEL22_30
- PIXEL23_10
- PIXEL30_80
- PIXEL31_61
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag210
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_10
- PIXEL03_80
- PIXEL10_61
- PIXEL11_30
- PIXEL12_30
- PIXEL13_10
- PIXEL20_61
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag120
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_61
- PIXEL03_80
- PIXEL10_10
- PIXEL11_30
- PIXEL12_30
- PIXEL13_10
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag75
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_61
- PIXEL20_10
- PIXEL21_30
- PIXEL22_30
- PIXEL23_61
- PIXEL30_80
- PIXEL31_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag29
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_81
- PIXEL03_81
- PIXEL10_32
- PIXEL11_32
- PIXEL12_31
- PIXEL13_31
- PIXEL20_10
- PIXEL21_30
- PIXEL22_30
- PIXEL23_10
- PIXEL30_80
- PIXEL31_61
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag198
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_32
- PIXEL03_82
- PIXEL10_61
- PIXEL11_30
- PIXEL12_32
- PIXEL13_82
- PIXEL20_61
- PIXEL21_30
- PIXEL22_31
- PIXEL23_81
- PIXEL30_80
- PIXEL31_10
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag184
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_61
- PIXEL03_80
- PIXEL10_10
- PIXEL11_30
- PIXEL12_30
- PIXEL13_10
- PIXEL20_31
- PIXEL21_31
- PIXEL22_32
- PIXEL23_32
- PIXEL30_81
- PIXEL31_81
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag99
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_10
- PIXEL03_80
- PIXEL10_81
- PIXEL11_31
- PIXEL12_30
- PIXEL13_61
- PIXEL20_82
- PIXEL21_32
- PIXEL22_30
- PIXEL23_61
- PIXEL30_82
- PIXEL31_32
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag57
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_61
- PIXEL03_80
- PIXEL10_32
- PIXEL11_32
- PIXEL12_30
- PIXEL13_10
- PIXEL20_31
- PIXEL21_31
- PIXEL22_30
- PIXEL23_10
- PIXEL30_81
- PIXEL31_81
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag71
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_32
- PIXEL03_82
- PIXEL10_81
- PIXEL11_31
- PIXEL12_32
- PIXEL13_82
- PIXEL20_61
- PIXEL21_30
- PIXEL22_30
- PIXEL23_61
- PIXEL30_80
- PIXEL31_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag156
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_81
- PIXEL03_81
- PIXEL10_10
- PIXEL11_30
- PIXEL12_31
- PIXEL13_31
- PIXEL20_10
- PIXEL21_30
- PIXEL22_32
- PIXEL23_32
- PIXEL30_80
- PIXEL31_61
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag226
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_10
- PIXEL03_80
- PIXEL10_61
- PIXEL11_30
- PIXEL12_30
- PIXEL13_61
- PIXEL20_82
- PIXEL21_32
- PIXEL22_31
- PIXEL23_81
- PIXEL30_82
- PIXEL31_32
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag60
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_81
- PIXEL03_81
- PIXEL10_10
- PIXEL11_30
- PIXEL12_31
- PIXEL13_31
- PIXEL20_31
- PIXEL21_31
- PIXEL22_30
- PIXEL23_10
- PIXEL30_81
- PIXEL31_81
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag195
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_10
- PIXEL03_80
- PIXEL10_81
- PIXEL11_31
- PIXEL12_30
- PIXEL13_61
- PIXEL20_61
- PIXEL21_30
- PIXEL22_31
- PIXEL23_81
- PIXEL30_80
- PIXEL31_10
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag102
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_32
- PIXEL03_82
- PIXEL10_61
- PIXEL11_30
- PIXEL12_32
- PIXEL13_82
- PIXEL20_82
- PIXEL21_32
- PIXEL22_30
- PIXEL23_61
- PIXEL30_82
- PIXEL31_32
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag153
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_61
- PIXEL03_80
- PIXEL10_32
- PIXEL11_32
- PIXEL12_30
- PIXEL13_10
- PIXEL20_10
- PIXEL21_30
- PIXEL22_32
- PIXEL23_32
- PIXEL30_80
- PIXEL31_61
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag58
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL20_31
- PIXEL21_31
- PIXEL22_30
- PIXEL23_10
- PIXEL30_81
- PIXEL31_81
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag83
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL10_81
- PIXEL11_31
- PIXEL20_61
- PIXEL21_30
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag92
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_81
- PIXEL03_81
- PIXEL10_10
- PIXEL11_30
- PIXEL12_31
- PIXEL13_31
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- jmp .loopx_end
-..@flag202
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- PIXEL02_10
- PIXEL03_80
- PIXEL12_30
- PIXEL13_61
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- PIXEL22_31
- PIXEL23_81
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag78
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- PIXEL02_32
- PIXEL03_82
- PIXEL12_32
- PIXEL13_82
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag154
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL20_10
- PIXEL21_30
- PIXEL22_32
- PIXEL23_32
- PIXEL30_80
- PIXEL31_61
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag114
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL10_61
- PIXEL11_30
- PIXEL20_82
- PIXEL21_32
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- PIXEL30_82
- PIXEL31_32
- jmp .loopx_end
-..@flag89
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_61
- PIXEL03_80
- PIXEL10_32
- PIXEL11_32
- PIXEL12_30
- PIXEL13_10
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- jmp .loopx_end
-..@flag90
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- jmp .loopx_end
-..@flag55
-..@flag23
- AUXADDRESS
- DiffOrNot w2,w6,PIXEL00_81,PIXEL01_31,PIXEL02_0,PIXEL03_0,PIXEL12_0,PIXEL13_0,PIXEL00_12,PIXEL01_14,PIXEL02_83,PIXEL03_50,PIXEL12_70,PIXEL13_21
- PIXEL10_81
- PIXEL11_31
- PIXEL20_60
- PIXEL21_70
- PIXEL22_30
- PIXEL23_10
- PIXEL30_20
- PIXEL31_60
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag182
-..@flag150
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL12_0,PIXEL13_0,PIXEL23_32,PIXEL33_82,PIXEL02_21,PIXEL03_50,PIXEL12_70,PIXEL13_83,PIXEL23_13,PIXEL33_11
- PIXEL10_61
- PIXEL11_30
- PIXEL20_60
- PIXEL21_70
- PIXEL22_32
- PIXEL30_20
- PIXEL31_60
- PIXEL32_82
- jmp .loopx_end
-..@flag213
-..@flag212
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_81
- DiffOrNot w6,w8,PIXEL03_81,PIXEL13_31,PIXEL22_0,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL03_12,PIXEL13_14,PIXEL22_70,PIXEL23_83,PIXEL32_21,PIXEL33_50
- PIXEL10_60
- PIXEL11_70
- PIXEL12_31
- PIXEL20_61
- PIXEL21_30
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag241
-..@flag240
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_61
- PIXEL03_80
- PIXEL10_60
- PIXEL11_70
- PIXEL12_30
- PIXEL13_10
- PIXEL20_82
- PIXEL21_32
- DiffOrNot w6,w8,PIXEL22_0,PIXEL23_0,PIXEL30_82,PIXEL31_32,PIXEL32_0,PIXEL33_0,PIXEL22_70,PIXEL23_21,PIXEL30_11,PIXEL31_13,PIXEL32_83,PIXEL33_50
- jmp .loopx_end
-..@flag236
-..@flag232
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_60
- PIXEL03_20
- PIXEL10_10
- PIXEL11_30
- PIXEL12_70
- PIXEL13_60
- DiffOrNot w8,w4,PIXEL20_0,PIXEL21_0,PIXEL30_0,PIXEL31_0,PIXEL32_31,PIXEL33_81,PIXEL20_21,PIXEL21_70,PIXEL30_50,PIXEL31_83,PIXEL32_14,PIXEL33_12
- PIXEL22_31
- PIXEL23_81
- jmp .loopx_end
-..@flag109
-..@flag105
- AUXADDRESS
- DiffOrNot w8,w4,PIXEL00_82,PIXEL10_32,PIXEL20_0,PIXEL21_0,PIXEL30_0,PIXEL31_0,PIXEL00_11,PIXEL10_13,PIXEL20_83,PIXEL21_70,PIXEL30_50,PIXEL31_21
- PIXEL01_82
- PIXEL02_60
- PIXEL03_20
- PIXEL11_32
- PIXEL12_70
- PIXEL13_60
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag171
-..@flag43
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL11_0,PIXEL20_31,PIXEL30_81,PIXEL00_50,PIXEL01_21,PIXEL10_83,PIXEL11_70,PIXEL20_14,PIXEL30_12
- PIXEL02_10
- PIXEL03_80
- PIXEL12_30
- PIXEL13_61
- PIXEL21_31
- PIXEL22_70
- PIXEL23_60
- PIXEL31_81
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag143
-..@flag15
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL02_32,PIXEL03_82,PIXEL10_0,PIXEL11_0,PIXEL00_50,PIXEL01_83,PIXEL02_13,PIXEL03_11,PIXEL10_21,PIXEL11_70
- PIXEL12_32
- PIXEL13_82
- PIXEL20_10
- PIXEL21_30
- PIXEL22_70
- PIXEL23_60
- PIXEL30_80
- PIXEL31_61
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag124
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_81
- PIXEL03_81
- PIXEL10_10
- PIXEL11_30
- PIXEL12_31
- PIXEL13_31
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag203
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_61
- PIXEL20_10
- PIXEL21_30
- PIXEL22_31
- PIXEL23_81
- PIXEL30_80
- PIXEL31_10
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag62
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_10
- PIXEL11_30
- PIXEL12_0
- PIXEL20_31
- PIXEL21_31
- PIXEL22_30
- PIXEL23_10
- PIXEL30_81
- PIXEL31_81
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag211
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_10
- PIXEL03_80
- PIXEL10_81
- PIXEL11_31
- PIXEL12_30
- PIXEL13_10
- PIXEL20_61
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag118
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_61
- PIXEL11_30
- PIXEL12_0
- PIXEL20_82
- PIXEL21_32
- PIXEL22_30
- PIXEL23_10
- PIXEL30_82
- PIXEL31_32
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag217
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_61
- PIXEL03_80
- PIXEL10_32
- PIXEL11_32
- PIXEL12_30
- PIXEL13_10
- PIXEL20_10
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag110
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_32
- PIXEL03_82
- PIXEL10_10
- PIXEL11_30
- PIXEL12_32
- PIXEL13_82
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag155
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_10
- PIXEL20_10
- PIXEL21_30
- PIXEL22_32
- PIXEL23_32
- PIXEL30_80
- PIXEL31_61
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag188
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_81
- PIXEL03_81
- PIXEL10_10
- PIXEL11_30
- PIXEL12_31
- PIXEL13_31
- PIXEL20_31
- PIXEL21_31
- PIXEL22_32
- PIXEL23_32
- PIXEL30_81
- PIXEL31_81
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag185
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_61
- PIXEL03_80
- PIXEL10_32
- PIXEL11_32
- PIXEL12_30
- PIXEL13_10
- PIXEL20_31
- PIXEL21_31
- PIXEL22_32
- PIXEL23_32
- PIXEL30_81
- PIXEL31_81
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag61
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_81
- PIXEL03_81
- PIXEL10_32
- PIXEL11_32
- PIXEL12_31
- PIXEL13_31
- PIXEL20_31
- PIXEL21_31
- PIXEL22_30
- PIXEL23_10
- PIXEL30_81
- PIXEL31_81
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag157
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_81
- PIXEL03_81
- PIXEL10_32
- PIXEL11_32
- PIXEL12_31
- PIXEL13_31
- PIXEL20_10
- PIXEL21_30
- PIXEL22_32
- PIXEL23_32
- PIXEL30_80
- PIXEL31_61
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag103
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_32
- PIXEL03_82
- PIXEL10_81
- PIXEL11_31
- PIXEL12_32
- PIXEL13_82
- PIXEL20_82
- PIXEL21_32
- PIXEL22_30
- PIXEL23_61
- PIXEL30_82
- PIXEL31_32
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag227
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_10
- PIXEL03_80
- PIXEL10_81
- PIXEL11_31
- PIXEL12_30
- PIXEL13_61
- PIXEL20_82
- PIXEL21_32
- PIXEL22_31
- PIXEL23_81
- PIXEL30_82
- PIXEL31_32
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag230
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_32
- PIXEL03_82
- PIXEL10_61
- PIXEL11_30
- PIXEL12_32
- PIXEL13_82
- PIXEL20_82
- PIXEL21_32
- PIXEL22_31
- PIXEL23_81
- PIXEL30_82
- PIXEL31_32
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag199
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_32
- PIXEL03_82
- PIXEL10_81
- PIXEL11_31
- PIXEL12_32
- PIXEL13_82
- PIXEL20_61
- PIXEL21_30
- PIXEL22_31
- PIXEL23_81
- PIXEL30_80
- PIXEL31_10
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag220
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_81
- PIXEL03_81
- PIXEL10_10
- PIXEL11_30
- PIXEL12_31
- PIXEL13_31
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- jmp .loopx_end
-..@flag158
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL12_0
- PIXEL20_10
- PIXEL21_30
- PIXEL22_32
- PIXEL23_32
- PIXEL30_80
- PIXEL31_61
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag234
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- PIXEL02_10
- PIXEL03_80
- PIXEL12_30
- PIXEL13_61
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_31
- PIXEL23_81
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag242
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL10_61
- PIXEL11_30
- PIXEL20_82
- PIXEL21_32
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_82
- PIXEL31_32
- jmp .loopx_end
-..@flag59
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL11_0
- PIXEL20_31
- PIXEL21_31
- PIXEL22_30
- PIXEL23_10
- PIXEL30_81
- PIXEL31_81
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag121
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_61
- PIXEL03_80
- PIXEL10_32
- PIXEL11_32
- PIXEL12_30
- PIXEL13_10
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- jmp .loopx_end
-..@flag87
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_81
- PIXEL11_31
- PIXEL12_0
- PIXEL20_61
- PIXEL21_30
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag79
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_32
- PIXEL03_82
- PIXEL11_0
- PIXEL12_32
- PIXEL13_82
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag122
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- jmp .loopx_end
-..@flag94
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL12_0
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- jmp .loopx_end
-..@flag218
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- jmp .loopx_end
-..@flag91
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL11_0
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- jmp .loopx_end
-..@flag229
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_60
- PIXEL03_20
- PIXEL10_60
- PIXEL11_70
- PIXEL12_70
- PIXEL13_60
- PIXEL20_82
- PIXEL21_32
- PIXEL22_31
- PIXEL23_81
- PIXEL30_82
- PIXEL31_32
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag167
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_32
- PIXEL03_82
- PIXEL10_81
- PIXEL11_31
- PIXEL12_32
- PIXEL13_82
- PIXEL20_60
- PIXEL21_70
- PIXEL22_70
- PIXEL23_60
- PIXEL30_20
- PIXEL31_60
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag173
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_60
- PIXEL03_20
- PIXEL10_32
- PIXEL11_32
- PIXEL12_70
- PIXEL13_60
- PIXEL20_31
- PIXEL21_31
- PIXEL22_70
- PIXEL23_60
- PIXEL30_81
- PIXEL31_81
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag181
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_81
- PIXEL03_81
- PIXEL10_60
- PIXEL11_70
- PIXEL12_31
- PIXEL13_31
- PIXEL20_60
- PIXEL21_70
- PIXEL22_32
- PIXEL23_32
- PIXEL30_20
- PIXEL31_60
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag186
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL20_31
- PIXEL21_31
- PIXEL22_32
- PIXEL23_32
- PIXEL30_81
- PIXEL31_81
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag115
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL10_81
- PIXEL11_31
- PIXEL20_82
- PIXEL21_32
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- PIXEL30_82
- PIXEL31_32
- jmp .loopx_end
-..@flag93
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_81
- PIXEL03_81
- PIXEL10_32
- PIXEL11_32
- PIXEL12_31
- PIXEL13_31
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- jmp .loopx_end
-..@flag206
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- PIXEL02_32
- PIXEL03_82
- PIXEL12_32
- PIXEL13_82
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- PIXEL22_31
- PIXEL23_81
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag205
-..@flag201
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_60
- PIXEL03_20
- PIXEL10_32
- PIXEL11_32
- PIXEL12_70
- PIXEL13_60
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- PIXEL22_31
- PIXEL23_81
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag174
-..@flag46
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- PIXEL02_32
- PIXEL03_82
- PIXEL12_32
- PIXEL13_82
- PIXEL20_31
- PIXEL21_31
- PIXEL22_70
- PIXEL23_60
- PIXEL30_81
- PIXEL31_81
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag179
-..@flag147
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL10_81
- PIXEL11_31
- PIXEL20_60
- PIXEL21_70
- PIXEL22_32
- PIXEL23_32
- PIXEL30_20
- PIXEL31_60
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag117
-..@flag116
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_81
- PIXEL03_81
- PIXEL10_60
- PIXEL11_70
- PIXEL12_31
- PIXEL13_31
- PIXEL20_82
- PIXEL21_32
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- PIXEL30_82
- PIXEL31_32
- jmp .loopx_end
-..@flag189
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_81
- PIXEL03_81
- PIXEL10_32
- PIXEL11_32
- PIXEL12_31
- PIXEL13_31
- PIXEL20_31
- PIXEL21_31
- PIXEL22_32
- PIXEL23_32
- PIXEL30_81
- PIXEL31_81
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag231
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_32
- PIXEL03_82
- PIXEL10_81
- PIXEL11_31
- PIXEL12_32
- PIXEL13_82
- PIXEL20_82
- PIXEL21_32
- PIXEL22_31
- PIXEL23_81
- PIXEL30_82
- PIXEL31_32
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag126
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_10
- PIXEL11_30
- PIXEL12_0
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag219
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_10
- PIXEL20_10
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag125
- AUXADDRESS
- DiffOrNot w8,w4,PIXEL00_82,PIXEL10_32,PIXEL20_0,PIXEL21_0,PIXEL30_0,PIXEL31_0,PIXEL00_11,PIXEL10_13,PIXEL20_83,PIXEL21_70,PIXEL30_50,PIXEL31_21
- PIXEL01_82
- PIXEL02_81
- PIXEL03_81
- PIXEL11_32
- PIXEL12_31
- PIXEL13_31
- PIXEL22_30
- PIXEL23_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag221
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_81
- DiffOrNot w6,w8,PIXEL03_81,PIXEL13_31,PIXEL22_0,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL03_12,PIXEL13_14,PIXEL22_70,PIXEL23_83,PIXEL32_21,PIXEL33_50
- PIXEL10_32
- PIXEL11_32
- PIXEL12_31
- PIXEL20_10
- PIXEL21_30
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag207
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL02_32,PIXEL03_82,PIXEL10_0,PIXEL11_0,PIXEL00_50,PIXEL01_83,PIXEL02_13,PIXEL03_11,PIXEL10_21,PIXEL11_70
- PIXEL12_32
- PIXEL13_82
- PIXEL20_10
- PIXEL21_30
- PIXEL22_31
- PIXEL23_81
- PIXEL30_80
- PIXEL31_10
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag238
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_32
- PIXEL03_82
- PIXEL10_10
- PIXEL11_30
- PIXEL12_32
- PIXEL13_82
- DiffOrNot w8,w4,PIXEL20_0,PIXEL21_0,PIXEL30_0,PIXEL31_0,PIXEL32_31,PIXEL33_81,PIXEL20_21,PIXEL21_70,PIXEL30_50,PIXEL31_83,PIXEL32_14,PIXEL33_12
- PIXEL22_31
- PIXEL23_81
- jmp .loopx_end
-..@flag190
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL12_0,PIXEL13_0,PIXEL23_32,PIXEL33_82,PIXEL02_21,PIXEL03_50,PIXEL12_70,PIXEL13_83,PIXEL23_13,PIXEL33_11
- PIXEL10_10
- PIXEL11_30
- PIXEL20_31
- PIXEL21_31
- PIXEL22_32
- PIXEL30_81
- PIXEL31_81
- PIXEL32_82
- jmp .loopx_end
-..@flag187
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL11_0,PIXEL20_31,PIXEL30_81,PIXEL00_50,PIXEL01_21,PIXEL10_83,PIXEL11_70,PIXEL20_14,PIXEL30_12
- PIXEL02_10
- PIXEL03_80
- PIXEL12_30
- PIXEL13_10
- PIXEL21_31
- PIXEL22_32
- PIXEL23_32
- PIXEL31_81
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag243
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_10
- PIXEL03_80
- PIXEL10_81
- PIXEL11_31
- PIXEL12_30
- PIXEL13_10
- PIXEL20_82
- PIXEL21_32
- DiffOrNot w6,w8,PIXEL22_0,PIXEL23_0,PIXEL30_82,PIXEL31_32,PIXEL32_0,PIXEL33_0,PIXEL22_70,PIXEL23_21,PIXEL30_11,PIXEL31_13,PIXEL32_83,PIXEL33_50
- jmp .loopx_end
-..@flag119
- AUXADDRESS
- DiffOrNot w2,w6,PIXEL00_81,PIXEL01_31,PIXEL02_0,PIXEL03_0,PIXEL12_0,PIXEL13_0,PIXEL00_12,PIXEL01_14,PIXEL02_83,PIXEL03_50,PIXEL12_70,PIXEL13_21
- PIXEL10_81
- PIXEL11_31
- PIXEL20_82
- PIXEL21_32
- PIXEL22_30
- PIXEL23_10
- PIXEL30_82
- PIXEL31_32
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag237
-..@flag233
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_60
- PIXEL03_20
- PIXEL10_32
- PIXEL11_32
- PIXEL12_70
- PIXEL13_60
- PIXEL20_0
- PIXEL21_0
- PIXEL22_31
- PIXEL23_81
- DiffOrNot w8,w4,PIXEL30_0,PIXEL30_20
- PIXEL31_0
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag175
-..@flag47
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_0
- PIXEL02_32
- PIXEL03_82
- PIXEL10_0
- PIXEL11_0
- PIXEL12_32
- PIXEL13_82
- PIXEL20_31
- PIXEL21_31
- PIXEL22_70
- PIXEL23_60
- PIXEL30_81
- PIXEL31_81
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag183
-..@flag151
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_0
- DiffOrNot w2,w6,PIXEL03_0,PIXEL03_20
- PIXEL10_81
- PIXEL11_31
- PIXEL12_0
- PIXEL13_0
- PIXEL20_60
- PIXEL21_70
- PIXEL22_32
- PIXEL23_32
- PIXEL30_20
- PIXEL31_60
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag245
-..@flag244
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_81
- PIXEL03_81
- PIXEL10_60
- PIXEL11_70
- PIXEL12_31
- PIXEL13_31
- PIXEL20_82
- PIXEL21_32
- PIXEL22_0
- PIXEL23_0
- PIXEL30_82
- PIXEL31_32
- PIXEL32_0
- DiffOrNot w6,w8,PIXEL33_0,PIXEL33_20
- jmp .loopx_end
-..@flag250
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_10
- PIXEL03_80
- PIXEL10_10
- PIXEL11_30
- PIXEL12_30
- PIXEL13_10
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- jmp .loopx_end
-..@flag123
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_10
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag95
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL11_0
- PIXEL12_0
- PIXEL20_10
- PIXEL21_30
- PIXEL22_30
- PIXEL23_10
- PIXEL30_80
- PIXEL31_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag222
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_10
- PIXEL11_30
- PIXEL12_0
- PIXEL20_10
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag252
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_81
- PIXEL03_81
- PIXEL10_10
- PIXEL11_30
- PIXEL12_31
- PIXEL13_31
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_0
- PIXEL23_0
- PIXEL32_0
- DiffOrNot w6,w8,PIXEL33_0,PIXEL33_20
- jmp .loopx_end
-..@flag249
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_61
- PIXEL03_80
- PIXEL10_32
- PIXEL11_32
- PIXEL12_30
- PIXEL13_10
- PIXEL20_0
- PIXEL21_0
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- DiffOrNot w8,w4,PIXEL30_0,PIXEL30_20
- PIXEL31_0
- jmp .loopx_end
-..@flag235
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_61
- PIXEL20_0
- PIXEL21_0
- PIXEL22_31
- PIXEL23_81
- DiffOrNot w8,w4,PIXEL30_0,PIXEL30_20
- PIXEL31_0
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag111
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_0
- PIXEL02_32
- PIXEL03_82
- PIXEL10_0
- PIXEL11_0
- PIXEL12_32
- PIXEL13_82
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag63
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_0
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_0
- PIXEL11_0
- PIXEL12_0
- PIXEL20_31
- PIXEL21_31
- PIXEL22_30
- PIXEL23_10
- PIXEL30_81
- PIXEL31_81
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag159
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_0
- DiffOrNot w2,w6,PIXEL03_0,PIXEL03_20
- PIXEL11_0
- PIXEL12_0
- PIXEL13_0
- PIXEL20_10
- PIXEL21_30
- PIXEL22_32
- PIXEL23_32
- PIXEL30_80
- PIXEL31_61
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag215
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_0
- DiffOrNot w2,w6,PIXEL03_0,PIXEL03_20
- PIXEL10_81
- PIXEL11_31
- PIXEL12_0
- PIXEL13_0
- PIXEL20_61
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag246
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_61
- PIXEL11_30
- PIXEL12_0
- PIXEL20_82
- PIXEL21_32
- PIXEL22_0
- PIXEL23_0
- PIXEL30_82
- PIXEL31_32
- PIXEL32_0
- DiffOrNot w6,w8,PIXEL33_0,PIXEL33_20
- jmp .loopx_end
-..@flag254
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_10
- PIXEL11_30
- PIXEL12_0
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_0
- PIXEL23_0
- PIXEL32_0
- DiffOrNot w6,w8,PIXEL33_0,PIXEL33_20
- jmp .loopx_end
-..@flag253
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_81
- PIXEL03_81
- PIXEL10_32
- PIXEL11_32
- PIXEL12_31
- PIXEL13_31
- PIXEL20_0
- PIXEL21_0
- PIXEL22_0
- PIXEL23_0
- DiffOrNot w8,w4,PIXEL30_0,PIXEL30_20
- PIXEL31_0
- PIXEL32_0
- DiffOrNot w6,w8,PIXEL33_0,PIXEL33_20
- jmp .loopx_end
-..@flag251
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_10
- PIXEL20_0
- PIXEL21_0
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- DiffOrNot w8,w4,PIXEL30_0,PIXEL30_20
- PIXEL31_0
- jmp .loopx_end
-..@flag239
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_0
- PIXEL02_32
- PIXEL03_82
- PIXEL10_0
- PIXEL11_0
- PIXEL12_32
- PIXEL13_82
- PIXEL20_0
- PIXEL21_0
- PIXEL22_31
- PIXEL23_81
- DiffOrNot w8,w4,PIXEL30_0,PIXEL30_20
- PIXEL31_0
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag127
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_0
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_0
- PIXEL11_0
- PIXEL12_0
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag191
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_0
- PIXEL02_0
- DiffOrNot w2,w6,PIXEL03_0,PIXEL03_20
- PIXEL10_0
- PIXEL11_0
- PIXEL12_0
- PIXEL13_0
- PIXEL20_31
- PIXEL21_31
- PIXEL22_32
- PIXEL23_32
- PIXEL30_81
- PIXEL31_81
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag223
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_0
- DiffOrNot w2,w6,PIXEL03_0,PIXEL03_20
- PIXEL11_0
- PIXEL12_0
- PIXEL13_0
- PIXEL20_10
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag247
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_0
- DiffOrNot w2,w6,PIXEL03_0,PIXEL03_20
- PIXEL10_81
- PIXEL11_31
- PIXEL12_0
- PIXEL13_0
- PIXEL20_82
- PIXEL21_32
- PIXEL22_0
- PIXEL23_0
- PIXEL30_82
- PIXEL31_32
- PIXEL32_0
- DiffOrNot w6,w8,PIXEL33_0,PIXEL33_20
- jmp .loopx_end
-..@flag255
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_0
- PIXEL02_0
- DiffOrNot w2,w6,PIXEL03_0,PIXEL03_20
- PIXEL10_0
- PIXEL11_0
- PIXEL12_0
- PIXEL13_0
- PIXEL20_0
- PIXEL21_0
- PIXEL22_0
- PIXEL23_0
- DiffOrNot w8,w4,PIXEL30_0,PIXEL30_20
- PIXEL31_0
- PIXEL32_0
- DiffOrNot w6,w8,PIXEL33_0,PIXEL33_20
- jmp .loopx_end
-
-.loopx_end
- add esi,2
- add edi,8
- dec dword[xcounter]
- jle .xres_2
- jmp .loopx
-.xres_2
- ; x=Xres-2 - special case
- jl .xres_1
- mov ebx,[prevline]
- movq mm5,[esi+ebx-4]
- movq mm6,[esi-4]
- mov ebx,[nextline]
- movq mm7,[esi+ebx-4]
- psrlq mm5,16
- psrlq mm6,16
- psrlq mm7,16
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- shr eax,16
- mov [w2],eax
- psrlq mm5,32
- movd eax,mm5
- mov [w3],eax
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- shr eax,16
- mov [w5],eax
- psrlq mm6,32
- movd eax,mm6
- mov [w6],eax
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- shr eax,16
- mov [w8],eax
- psrlq mm7,32
- movd eax,mm7
- mov [w9],eax
- jmp .flags
-.xres_1
- cmp dword[xcounter],-1
- jl .nexty
- ; x=Xres-1 - special case
- mov ebx,[prevline]
- movq mm5,[esi+ebx-6]
- movq mm6,[esi-6]
- mov ebx,[nextline]
- movq mm7,[esi+ebx-6]
- psrlq mm5,32
- psrlq mm6,32
- psrlq mm7,32
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- shr eax,16
- mov [w2],eax
- mov [w3],eax
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- shr eax,16
- mov [w5],eax
- mov [w6],eax
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- shr eax,16
- mov [w8],eax
- mov [w9],eax
- jmp .flags
-.nexty
- add edi,ebx
- add edi,ebx
- add edi,ebx
- dec dword[linesleft]
- jz .fin
- mov ebx,[ebp+Xres]
- shl ebx,1
- cmp dword[linesleft],1
- je .lastline
- mov dword[nextline],ebx
- neg ebx
- mov dword[prevline],ebx
- jmp .loopy
-.lastline
- mov dword[nextline],0
- neg ebx
- mov dword[prevline],ebx
- jmp .loopy
-.fin
- emms
- popad
- mov esp,ebp
- pop ebp
- ret
-
-SECTION .data
-FuncTable
- dd ..@flag0, ..@flag1, ..@flag2, ..@flag3, ..@flag4, ..@flag5, ..@flag6, ..@flag7
- dd ..@flag8, ..@flag9, ..@flag10, ..@flag11, ..@flag12, ..@flag13, ..@flag14, ..@flag15
- dd ..@flag16, ..@flag17, ..@flag18, ..@flag19, ..@flag20, ..@flag21, ..@flag22, ..@flag23
- dd ..@flag24, ..@flag25, ..@flag26, ..@flag27, ..@flag28, ..@flag29, ..@flag30, ..@flag31
- dd ..@flag32, ..@flag33, ..@flag34, ..@flag35, ..@flag36, ..@flag37, ..@flag38, ..@flag39
- dd ..@flag40, ..@flag41, ..@flag42, ..@flag43, ..@flag44, ..@flag45, ..@flag46, ..@flag47
- dd ..@flag48, ..@flag49, ..@flag50, ..@flag51, ..@flag52, ..@flag53, ..@flag54, ..@flag55
- dd ..@flag56, ..@flag57, ..@flag58, ..@flag59, ..@flag60, ..@flag61, ..@flag62, ..@flag63
- dd ..@flag64, ..@flag65, ..@flag66, ..@flag67, ..@flag68, ..@flag69, ..@flag70, ..@flag71
- dd ..@flag72, ..@flag73, ..@flag74, ..@flag75, ..@flag76, ..@flag77, ..@flag78, ..@flag79
- dd ..@flag80, ..@flag81, ..@flag82, ..@flag83, ..@flag84, ..@flag85, ..@flag86, ..@flag87
- dd ..@flag88, ..@flag89, ..@flag90, ..@flag91, ..@flag92, ..@flag93, ..@flag94, ..@flag95
- dd ..@flag96, ..@flag97, ..@flag98, ..@flag99, ..@flag100, ..@flag101, ..@flag102, ..@flag103
- dd ..@flag104, ..@flag105, ..@flag106, ..@flag107, ..@flag108, ..@flag109, ..@flag110, ..@flag111
- dd ..@flag112, ..@flag113, ..@flag114, ..@flag115, ..@flag116, ..@flag117, ..@flag118, ..@flag119
- dd ..@flag120, ..@flag121, ..@flag122, ..@flag123, ..@flag124, ..@flag125, ..@flag126, ..@flag127
- dd ..@flag128, ..@flag129, ..@flag130, ..@flag131, ..@flag132, ..@flag133, ..@flag134, ..@flag135
- dd ..@flag136, ..@flag137, ..@flag138, ..@flag139, ..@flag140, ..@flag141, ..@flag142, ..@flag143
- dd ..@flag144, ..@flag145, ..@flag146, ..@flag147, ..@flag148, ..@flag149, ..@flag150, ..@flag151
- dd ..@flag152, ..@flag153, ..@flag154, ..@flag155, ..@flag156, ..@flag157, ..@flag158, ..@flag159
- dd ..@flag160, ..@flag161, ..@flag162, ..@flag163, ..@flag164, ..@flag165, ..@flag166, ..@flag167
- dd ..@flag168, ..@flag169, ..@flag170, ..@flag171, ..@flag172, ..@flag173, ..@flag174, ..@flag175
- dd ..@flag176, ..@flag177, ..@flag178, ..@flag179, ..@flag180, ..@flag181, ..@flag182, ..@flag183
- dd ..@flag184, ..@flag185, ..@flag186, ..@flag187, ..@flag188, ..@flag189, ..@flag190, ..@flag191
- dd ..@flag192, ..@flag193, ..@flag194, ..@flag195, ..@flag196, ..@flag197, ..@flag198, ..@flag199
- dd ..@flag200, ..@flag201, ..@flag202, ..@flag203, ..@flag204, ..@flag205, ..@flag206, ..@flag207
- dd ..@flag208, ..@flag209, ..@flag210, ..@flag211, ..@flag212, ..@flag213, ..@flag214, ..@flag215
- dd ..@flag216, ..@flag217, ..@flag218, ..@flag219, ..@flag220, ..@flag221, ..@flag222, ..@flag223
- dd ..@flag224, ..@flag225, ..@flag226, ..@flag227, ..@flag228, ..@flag229, ..@flag230, ..@flag231
- dd ..@flag232, ..@flag233, ..@flag234, ..@flag235, ..@flag236, ..@flag237, ..@flag238, ..@flag239
- dd ..@flag240, ..@flag241, ..@flag242, ..@flag243, ..@flag244, ..@flag245, ..@flag246, ..@flag247
- dd ..@flag248, ..@flag249, ..@flag250, ..@flag251, ..@flag252, ..@flag253, ..@flag254, ..@flag255
-
-
+++ /dev/null
-;hq4x filter
-;32bpp output
-;----------------------------------------------------------
-;Copyright (C) 2003 MaxSt ( maxst@hiend3d.com )
-;
-;This program is free software; you can redistribute it and/or
-;modify it under the terms of the GNU General Public License
-;as published by the Free Software Foundation; either
-;version 2 of the License, or (at your option) any later
-;version.
-;
-;This program is distributed in the hope that it will be useful,
-;but WITHOUT ANY WARRANTY; without even the implied warranty of
-;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;GNU General Public License for more details.
-;
-;You should have received a copy of the GNU General Public License
-;along with this program; if not, write to the Free Software
-;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-GLOBAL _hq4x_32
-
-EXTERN _LUT16to32
-EXTERN _RGBtoYUV
-
-SECTION .bss
-linesleft resd 1
-xcounter resd 1
-cross resd 1
-nextline resd 1
-prevline resd 1
-w1 resd 1
-w2 resd 1
-w3 resd 1
-w4 resd 1
-w5 resd 1
-w6 resd 1
-w7 resd 1
-w8 resd 1
-w9 resd 1
-c1 resd 1
-c2 resd 1
-c3 resd 1
-c4 resd 1
-c5 resd 1
-c6 resd 1
-c7 resd 1
-c8 resd 1
-c9 resd 1
-
-SECTION .data
-
-reg_blank dd 0,0
-const3 dd 0x00030003,0x00000003
-const5 dd 0x00050005,0x00000005
-const6 dd 0x00060006,0x00000006
-const7 dd 0x00070007,0x00000007
-threshold dd 0x00300706,0x00000000
-
-SECTION .text
-
-%macro AUXADDRESS 0
- mov ecx, edi
- add ecx, ebx
- add ecx, ebx
-%endmacro
-
-%macro TestDiff 2
- mov edx,[%1]
- sub edx,[%2]
- jz %%fin
- mov edx,[%1]
- shl edx,2
- add edx,_RGBtoYUV
- movd mm1,[edx]
- movq mm5,mm1
- mov edx,[%2]
- shl edx,2
- add edx,_RGBtoYUV
- movd mm2,[edx]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
-%%fin:
-%endmacro
-
-%macro DiffOrNot 4
- TestDiff %1,%2
- test edx,edx
- jz %%same
- %3
- jmp %%fin
-%%same:
- %4
-%%fin
-%endmacro
-
-%macro DiffOrNot 8
- TestDiff %1,%2
- test edx,edx
- jz %%same
- %3
- %4
- %5
- jmp %%fin
-%%same:
- %6
- %7
- %8
-%%fin
-%endmacro
-
-%macro DiffOrNot 10
- TestDiff %1,%2
- test edx,edx
- jz %%same
- %3
- %4
- %5
- %6
- jmp %%fin
-%%same:
- %7
- %8
- %9
- %10
-%%fin
-%endmacro
-
-%macro DiffOrNot 14
- TestDiff %1,%2
- test edx,edx
- jz %%same
- %3
- %4
- %5
- %6
- %7
- %8
- jmp %%fin
-%%same:
- %9
- %10
- %11
- %12
- %13
- %14
-%%fin
-%endmacro
-
-%macro Interp1 3
- mov edx,%2
- shl edx,2
- add edx,%3
- sub edx,%2
- shr edx,2
- mov %1,edx
-%endmacro
-
-%macro Interp2 4
- mov edx,%2
- shl edx,1
- add edx,%3
- add edx,%4
- shr edx,2
- mov %1,edx
-%endmacro
-
-%macro Interp3 2
- movd mm1, eax
- movd mm2, %2
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- pmullw mm1, [const7]
- paddw mm1, mm2
- psrlw mm1, 3
- packuswb mm1, [reg_blank]
- movd %1, mm1
-%endmacro
-
-%macro Interp5 3
- mov edx,%2
- add edx,%3
- shr edx,1
- mov %1,edx
-%endmacro
-
-%macro Interp6 3
- movd mm1, eax
- movd mm2, %2
- movd mm3, %3
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- punpcklbw mm3, [reg_blank]
- pmullw mm1, [const5]
- psllw mm2, 1
- paddw mm1, mm3
- paddw mm1, mm2
- psrlw mm1, 3
- packuswb mm1, [reg_blank]
- movd %1, mm1
-%endmacro
-
-%macro Interp7 3
- movd mm1, eax
- movd mm2, %2
- movd mm3, %3
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- punpcklbw mm3, [reg_blank]
- pmullw mm1, [const6]
- paddw mm2, mm3
- paddw mm1, mm2
- psrlw mm1, 3
- packuswb mm1, [reg_blank]
- movd %1, mm1
-%endmacro
-
-%macro Interp8 3
- movd mm1, %2
- movd mm2, %3
- punpcklbw mm1, [reg_blank]
- punpcklbw mm2, [reg_blank]
- pmullw mm1, [const5]
- pmullw mm2, [const3]
- paddw mm1, mm2
- psrlw mm1, 3
- packuswb mm1, [reg_blank]
- movd %1, mm1
-%endmacro
-
-%macro PIXEL00_0 0
- mov [edi],eax
-%endmacro
-
-%macro PIXEL00_11 0
- Interp1 [edi],eax,[c4]
-%endmacro
-
-%macro PIXEL00_12 0
- Interp1 [edi],eax,[c2]
-%endmacro
-
-%macro PIXEL00_20 0
- Interp2 [edi],eax,[c2],[c4]
-%endmacro
-
-%macro PIXEL00_50 0
- Interp5 [edi],[c2],[c4]
-%endmacro
-
-%macro PIXEL00_80 0
- Interp8 [edi],eax,[c1]
-%endmacro
-
-%macro PIXEL00_81 0
- Interp8 [edi],eax,[c4]
-%endmacro
-
-%macro PIXEL00_82 0
- Interp8 [edi],eax,[c2]
-%endmacro
-
-%macro PIXEL01_0 0
- mov [edi+4],eax
-%endmacro
-
-%macro PIXEL01_10 0
- Interp1 [edi+4],eax,[c1]
-%endmacro
-
-%macro PIXEL01_12 0
- Interp1 [edi+4],eax,[c2]
-%endmacro
-
-%macro PIXEL01_14 0
- Interp1 [edi+4],[c2],eax
-%endmacro
-
-%macro PIXEL01_21 0
- Interp2 [edi+4],[c2],eax,[c4]
-%endmacro
-
-%macro PIXEL01_31 0
- Interp3 [edi+4],[c4]
-%endmacro
-
-%macro PIXEL01_50 0
- Interp5 [edi+4],[c2],eax
-%endmacro
-
-%macro PIXEL01_60 0
- Interp6 [edi+4],[c2],[c4]
-%endmacro
-
-%macro PIXEL01_61 0
- Interp6 [edi+4],[c2],[c1]
-%endmacro
-
-%macro PIXEL01_82 0
- Interp8 [edi+4],eax,[c2]
-%endmacro
-
-%macro PIXEL01_83 0
- Interp8 [edi+4],[c2],[c4]
-%endmacro
-
-%macro PIXEL02_0 0
- mov [edi+8],eax
-%endmacro
-
-%macro PIXEL02_10 0
- Interp1 [edi+8],eax,[c3]
-%endmacro
-
-%macro PIXEL02_11 0
- Interp1 [edi+8],eax,[c2]
-%endmacro
-
-%macro PIXEL02_13 0
- Interp1 [edi+8],[c2],eax
-%endmacro
-
-%macro PIXEL02_21 0
- Interp2 [edi+8],[c2],eax,[c6]
-%endmacro
-
-%macro PIXEL02_32 0
- Interp3 [edi+8],[c6]
-%endmacro
-
-%macro PIXEL02_50 0
- Interp5 [edi+8],[c2],eax
-%endmacro
-
-%macro PIXEL02_60 0
- Interp6 [edi+8],[c2],[c6]
-%endmacro
-
-%macro PIXEL02_61 0
- Interp6 [edi+8],[c2],[c3]
-%endmacro
-
-%macro PIXEL02_81 0
- Interp8 [edi+8],eax,[c2]
-%endmacro
-
-%macro PIXEL02_83 0
- Interp8 [edi+8],[c2],[c6]
-%endmacro
-
-%macro PIXEL03_0 0
- mov [edi+12],eax
-%endmacro
-
-%macro PIXEL03_11 0
- Interp1 [edi+12],eax,[c2]
-%endmacro
-
-%macro PIXEL03_12 0
- Interp1 [edi+12],eax,[c6]
-%endmacro
-
-%macro PIXEL03_20 0
- Interp2 [edi+12],eax,[c2],[c6]
-%endmacro
-
-%macro PIXEL03_50 0
- Interp5 [edi+12],[c2],[c6]
-%endmacro
-
-%macro PIXEL03_80 0
- Interp8 [edi+12],eax,[c3]
-%endmacro
-
-%macro PIXEL03_81 0
- Interp8 [edi+12],eax,[c2]
-%endmacro
-
-%macro PIXEL03_82 0
- Interp8 [edi+12],eax,[c6]
-%endmacro
-
-%macro PIXEL10_0 0
- mov [edi+ebx],eax
-%endmacro
-
-%macro PIXEL10_10 0
- Interp1 [edi+ebx],eax,[c1]
-%endmacro
-
-%macro PIXEL10_11 0
- Interp1 [edi+ebx],eax,[c4]
-%endmacro
-
-%macro PIXEL10_13 0
- Interp1 [edi+ebx],[c4],eax
-%endmacro
-
-%macro PIXEL10_21 0
- Interp2 [edi+ebx],[c4],eax,[c2]
-%endmacro
-
-%macro PIXEL10_32 0
- Interp3 [edi+ebx],[c2]
-%endmacro
-
-%macro PIXEL10_50 0
- Interp5 [edi+ebx],[c4],eax
-%endmacro
-
-%macro PIXEL10_60 0
- Interp6 [edi+ebx],[c4],[c2]
-%endmacro
-
-%macro PIXEL10_61 0
- Interp6 [edi+ebx],[c4],[c1]
-%endmacro
-
-%macro PIXEL10_81 0
- Interp8 [edi+ebx],eax,[c4]
-%endmacro
-
-%macro PIXEL10_83 0
- Interp8 [edi+ebx],[c4],[c2]
-%endmacro
-
-%macro PIXEL11_0 0
- mov [edi+ebx+4],eax
-%endmacro
-
-%macro PIXEL11_30 0
- Interp3 [edi+ebx+4],[c1]
-%endmacro
-
-%macro PIXEL11_31 0
- Interp3 [edi+ebx+4],[c4]
-%endmacro
-
-%macro PIXEL11_32 0
- Interp3 [edi+ebx+4],[c2]
-%endmacro
-
-%macro PIXEL11_70 0
- Interp7 [edi+ebx+4],[c4],[c2]
-%endmacro
-
-%macro PIXEL12_0 0
- mov [edi+ebx+8],eax
-%endmacro
-
-%macro PIXEL12_30 0
- Interp3 [edi+ebx+8],[c3]
-%endmacro
-
-%macro PIXEL12_31 0
- Interp3 [edi+ebx+8],[c2]
-%endmacro
-
-%macro PIXEL12_32 0
- Interp3 [edi+ebx+8],[c6]
-%endmacro
-
-%macro PIXEL12_70 0
- Interp7 [edi+ebx+8],[c6],[c2]
-%endmacro
-
-%macro PIXEL13_0 0
- mov [edi+ebx+12],eax
-%endmacro
-
-%macro PIXEL13_10 0
- Interp1 [edi+ebx+12],eax,[c3]
-%endmacro
-
-%macro PIXEL13_12 0
- Interp1 [edi+ebx+12],eax,[c6]
-%endmacro
-
-%macro PIXEL13_14 0
- Interp1 [edi+ebx+12],[c6],eax
-%endmacro
-
-%macro PIXEL13_21 0
- Interp2 [edi+ebx+12],[c6],eax,[c2]
-%endmacro
-
-%macro PIXEL13_31 0
- Interp3 [edi+ebx+12],[c2]
-%endmacro
-
-%macro PIXEL13_50 0
- Interp5 [edi+ebx+12],[c6],eax
-%endmacro
-
-%macro PIXEL13_60 0
- Interp6 [edi+ebx+12],[c6],[c2]
-%endmacro
-
-%macro PIXEL13_61 0
- Interp6 [edi+ebx+12],[c6],[c3]
-%endmacro
-
-%macro PIXEL13_82 0
- Interp8 [edi+ebx+12],eax,[c6]
-%endmacro
-
-%macro PIXEL13_83 0
- Interp8 [edi+ebx+12],[c6],[c2]
-%endmacro
-
-%macro PIXEL20_0 0
- mov [ecx],eax
-%endmacro
-
-%macro PIXEL20_10 0
- Interp1 [ecx],eax,[c7]
-%endmacro
-
-%macro PIXEL20_12 0
- Interp1 [ecx],eax,[c4]
-%endmacro
-
-%macro PIXEL20_14 0
- Interp1 [ecx],[c4],eax
-%endmacro
-
-%macro PIXEL20_21 0
- Interp2 [ecx],[c4],eax,[c8]
-%endmacro
-
-%macro PIXEL20_31 0
- Interp3 [ecx],[c8]
-%endmacro
-
-%macro PIXEL20_50 0
- Interp5 [ecx],[c4],eax
-%endmacro
-
-%macro PIXEL20_60 0
- Interp6 [ecx],[c4],[c8]
-%endmacro
-
-%macro PIXEL20_61 0
- Interp6 [ecx],[c4],[c7]
-%endmacro
-
-%macro PIXEL20_82 0
- Interp8 [ecx],eax,[c4]
-%endmacro
-
-%macro PIXEL20_83 0
- Interp8 [ecx],[c4],[c8]
-%endmacro
-
-%macro PIXEL21_0 0
- mov [ecx+4],eax
-%endmacro
-
-%macro PIXEL21_30 0
- Interp3 [ecx+4],[c7]
-%endmacro
-
-%macro PIXEL21_31 0
- Interp3 [ecx+4],[c8]
-%endmacro
-
-%macro PIXEL21_32 0
- Interp3 [ecx+4],[c4]
-%endmacro
-
-%macro PIXEL21_70 0
- Interp7 [ecx+4],[c4],[c8]
-%endmacro
-
-%macro PIXEL22_0 0
- mov [ecx+8],eax
-%endmacro
-
-%macro PIXEL22_30 0
- Interp3 [ecx+8],[c9]
-%endmacro
-
-%macro PIXEL22_31 0
- Interp3 [ecx+8],[c6]
-%endmacro
-
-%macro PIXEL22_32 0
- Interp3 [ecx+8],[c8]
-%endmacro
-
-%macro PIXEL22_70 0
- Interp7 [ecx+8],[c6],[c8]
-%endmacro
-
-%macro PIXEL23_0 0
- mov [ecx+12],eax
-%endmacro
-
-%macro PIXEL23_10 0
- Interp1 [ecx+12],eax,[c9]
-%endmacro
-
-%macro PIXEL23_11 0
- Interp1 [ecx+12],eax,[c6]
-%endmacro
-
-%macro PIXEL23_13 0
- Interp1 [ecx+12],[c6],eax
-%endmacro
-
-%macro PIXEL23_21 0
- Interp2 [ecx+12],[c6],eax,[c8]
-%endmacro
-
-%macro PIXEL23_32 0
- Interp3 [ecx+12],[c8]
-%endmacro
-
-%macro PIXEL23_50 0
- Interp5 [ecx+12],[c6],eax
-%endmacro
-
-%macro PIXEL23_60 0
- Interp6 [ecx+12],[c6],[c8]
-%endmacro
-
-%macro PIXEL23_61 0
- Interp6 [ecx+12],[c6],[c9]
-%endmacro
-
-%macro PIXEL23_81 0
- Interp8 [ecx+12],eax,[c6]
-%endmacro
-
-%macro PIXEL23_83 0
- Interp8 [ecx+12],[c6],[c8]
-%endmacro
-
-%macro PIXEL30_0 0
- mov [ecx+ebx],eax
-%endmacro
-
-%macro PIXEL30_11 0
- Interp1 [ecx+ebx],eax,[c8]
-%endmacro
-
-%macro PIXEL30_12 0
- Interp1 [ecx+ebx],eax,[c4]
-%endmacro
-
-%macro PIXEL30_20 0
- Interp2 [ecx+ebx],eax,[c8],[c4]
-%endmacro
-
-%macro PIXEL30_50 0
- Interp5 [ecx+ebx],[c8],[c4]
-%endmacro
-
-%macro PIXEL30_80 0
- Interp8 [ecx+ebx],eax,[c7]
-%endmacro
-
-%macro PIXEL30_81 0
- Interp8 [ecx+ebx],eax,[c8]
-%endmacro
-
-%macro PIXEL30_82 0
- Interp8 [ecx+ebx],eax,[c4]
-%endmacro
-
-%macro PIXEL31_0 0
- mov [ecx+ebx+4],eax
-%endmacro
-
-%macro PIXEL31_10 0
- Interp1 [ecx+ebx+4],eax,[c7]
-%endmacro
-
-%macro PIXEL31_11 0
- Interp1 [ecx+ebx+4],eax,[c8]
-%endmacro
-
-%macro PIXEL31_13 0
- Interp1 [ecx+ebx+4],[c8],eax
-%endmacro
-
-%macro PIXEL31_21 0
- Interp2 [ecx+ebx+4],[c8],eax,[c4]
-%endmacro
-
-%macro PIXEL31_32 0
- Interp3 [ecx+ebx+4],[c4]
-%endmacro
-
-%macro PIXEL31_50 0
- Interp5 [ecx+ebx+4],[c8],eax
-%endmacro
-
-%macro PIXEL31_60 0
- Interp6 [ecx+ebx+4],[c8],[c4]
-%endmacro
-
-%macro PIXEL31_61 0
- Interp6 [ecx+ebx+4],[c8],[c7]
-%endmacro
-
-%macro PIXEL31_81 0
- Interp8 [ecx+ebx+4],eax,[c8]
-%endmacro
-
-%macro PIXEL31_83 0
- Interp8 [ecx+ebx+4],[c8],[c4]
-%endmacro
-
-%macro PIXEL32_0 0
- mov [ecx+ebx+8],eax
-%endmacro
-
-%macro PIXEL32_10 0
- Interp1 [ecx+ebx+8],eax,[c9]
-%endmacro
-
-%macro PIXEL32_12 0
- Interp1 [ecx+ebx+8],eax,[c8]
-%endmacro
-
-%macro PIXEL32_14 0
- Interp1 [ecx+ebx+8],[c8],eax
-%endmacro
-
-%macro PIXEL32_21 0
- Interp2 [ecx+ebx+8],[c8],eax,[c6]
-%endmacro
-
-%macro PIXEL32_31 0
- Interp3 [ecx+ebx+8],[c6]
-%endmacro
-
-%macro PIXEL32_50 0
- Interp5 [ecx+ebx+8],[c8],eax
-%endmacro
-
-%macro PIXEL32_60 0
- Interp6 [ecx+ebx+8],[c8],[c6]
-%endmacro
-
-%macro PIXEL32_61 0
- Interp6 [ecx+ebx+8],[c8],[c9]
-%endmacro
-
-%macro PIXEL32_82 0
- Interp8 [ecx+ebx+8],eax,[c8]
-%endmacro
-
-%macro PIXEL32_83 0
- Interp8 [ecx+ebx+8],[c8],[c6]
-%endmacro
-
-%macro PIXEL33_0 0
- mov [ecx+ebx+12],eax
-%endmacro
-
-%macro PIXEL33_11 0
- Interp1 [ecx+ebx+12],eax,[c6]
-%endmacro
-
-%macro PIXEL33_12 0
- Interp1 [ecx+ebx+12],eax,[c8]
-%endmacro
-
-%macro PIXEL33_20 0
- Interp2 [ecx+ebx+12],eax,[c8],[c6]
-%endmacro
-
-%macro PIXEL33_50 0
- Interp5 [ecx+ebx+12],[c8],[c6]
-%endmacro
-
-%macro PIXEL33_80 0
- Interp8 [ecx+ebx+12],eax,[c9]
-%endmacro
-
-%macro PIXEL33_81 0
- Interp8 [ecx+ebx+12],eax,[c6]
-%endmacro
-
-%macro PIXEL33_82 0
- Interp8 [ecx+ebx+12],eax,[c8]
-%endmacro
-
-inbuffer equ 8
-outbuffer equ 12
-Xres equ 16
-Yres equ 20
-pitch equ 24
-
-_hq4x_32:
- push ebp
- mov ebp,esp
- pushad
-
- mov esi,[ebp+inbuffer]
- mov edi,[ebp+outbuffer]
- mov edx,[ebp+Yres]
- mov [linesleft],edx
- mov ebx,[ebp+Xres]
- shl ebx,1
- mov dword[prevline],0
- mov dword[nextline],ebx
-.loopy
- mov ecx,[ebp+Xres]
- sub ecx,2 ; x={Xres-2, Xres-1} are special cases.
- mov dword[xcounter],ecx
- ; x=0 - special case
- mov ebx,[prevline]
- movq mm5,[esi+ebx]
- movq mm6,[esi]
- mov ebx,[nextline]
- movq mm7,[esi+ebx]
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- mov [w2],edx
- shr eax,16
- mov [w3],eax
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- mov [w5],edx
- shr eax,16
- mov [w6],eax
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- mov [w8],edx
- shr eax,16
- mov [w9],eax
- jmp .flags
-.loopx
- mov ebx,[prevline]
- movq mm5,[esi+ebx-2]
- movq mm6,[esi-2]
- mov ebx,[nextline]
- movq mm7,[esi+ebx-2]
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- shr eax,16
- mov [w2],eax
- psrlq mm5,32
- movd eax,mm5
- movzx edx,ax
- mov [w3],edx
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- shr eax,16
- mov [w5],eax
- psrlq mm6,32
- movd eax,mm6
- movzx edx,ax
- mov [w6],edx
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- shr eax,16
- mov [w8],eax
- psrlq mm7,32
- movd eax,mm7
- movzx edx,ax
- mov [w9],edx
-.flags
- mov ebx,_RGBtoYUV
- mov eax,[w5]
- xor ecx,ecx
- movd mm5,[ebx+eax*4]
- mov dword[cross],0
-
- mov edx,[w2]
- cmp eax,edx
- je .noflag2
- or dword[cross],1
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag2
- or ecx,2
-.noflag2
- mov edx,[w4]
- cmp eax,edx
- je .noflag4
- or dword[cross],2
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag4
- or ecx,8
-.noflag4
- mov edx,[w6]
- cmp eax,edx
- je .noflag6
- or dword[cross],4
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag6
- or ecx,16
-.noflag6
- mov edx,[w8]
- cmp eax,edx
- je .noflag8
- or dword[cross],8
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag8
- or ecx,64
-.noflag8
- cmp dword[cross],0
- jnz .testflag1
- mov ebx,_LUT16to32
- mov eax,[ebx+eax*4]
- mov ebx,[ebp+pitch]
- AUXADDRESS
- mov [edi],eax
- mov [edi+4],eax
- mov [edi+8],eax
- mov [edi+12],eax
- mov [edi+ebx],eax
- mov [edi+ebx+4],eax
- mov [edi+ebx+8],eax
- mov [edi+ebx+12],eax
- mov [ecx],eax
- mov [ecx+4],eax
- mov [ecx+8],eax
- mov [ecx+12],eax
- mov [ecx+ebx],eax
- mov [ecx+ebx+4],eax
- mov [ecx+ebx+8],eax
- mov [ecx+ebx+12],eax
- jmp .loopx_end
-.testflag1
- mov edx,[w1]
- cmp eax,edx
- je .noflag1
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag1
- or ecx,1
-.noflag1
- mov edx,[w3]
- cmp eax,edx
- je .noflag3
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag3
- or ecx,4
-.noflag3
- mov edx,[w7]
- cmp eax,edx
- je .noflag7
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag7
- or ecx,32
-.noflag7
- mov edx,[w9]
- cmp eax,edx
- je .noflag9
- movq mm1,mm5
- movd mm2,[ebx+edx*4]
- psubusb mm1,mm2
- psubusb mm2,mm5
- por mm1,mm2
- psubusb mm1,[threshold]
- movd edx,mm1
- test edx,edx
- jz .noflag9
- or ecx,128
-.noflag9
- mov ebx,_LUT16to32
- mov eax,[ebx+eax*4]
- mov edx,[w2]
- mov edx,[ebx+edx*4]
- mov [c2],edx
- mov edx,[w4]
- mov edx,[ebx+edx*4]
- mov [c4],edx
- mov edx,[w6]
- mov edx,[ebx+edx*4]
- mov [c6],edx
- mov edx,[w8]
- mov edx,[ebx+edx*4]
- mov [c8],edx
- test ecx,0x005A
- jz .switch
- mov edx,[w1]
- mov edx,[ebx+edx*4]
- mov [c1],edx
- mov edx,[w3]
- mov edx,[ebx+edx*4]
- mov [c3],edx
- mov edx,[w7]
- mov edx,[ebx+edx*4]
- mov [c7],edx
- mov edx,[w9]
- mov edx,[ebx+edx*4]
- mov [c9],edx
-.switch
- mov ebx,[ebp+pitch]
- jmp [FuncTable+ecx*4]
-
-..@flag0
-..@flag1
-..@flag4
-..@flag32
-..@flag128
-..@flag5
-..@flag132
-..@flag160
-..@flag33
-..@flag129
-..@flag36
-..@flag133
-..@flag164
-..@flag161
-..@flag37
-..@flag165
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_60
- PIXEL03_20
- PIXEL10_60
- PIXEL11_70
- PIXEL12_70
- PIXEL13_60
- PIXEL20_60
- PIXEL21_70
- PIXEL22_70
- PIXEL23_60
- PIXEL30_20
- PIXEL31_60
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag2
-..@flag34
-..@flag130
-..@flag162
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_10
- PIXEL03_80
- PIXEL10_61
- PIXEL11_30
- PIXEL12_30
- PIXEL13_61
- PIXEL20_60
- PIXEL21_70
- PIXEL22_70
- PIXEL23_60
- PIXEL30_20
- PIXEL31_60
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag16
-..@flag17
-..@flag48
-..@flag49
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_61
- PIXEL03_80
- PIXEL10_60
- PIXEL11_70
- PIXEL12_30
- PIXEL13_10
- PIXEL20_60
- PIXEL21_70
- PIXEL22_30
- PIXEL23_10
- PIXEL30_20
- PIXEL31_60
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag64
-..@flag65
-..@flag68
-..@flag69
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_60
- PIXEL03_20
- PIXEL10_60
- PIXEL11_70
- PIXEL12_70
- PIXEL13_60
- PIXEL20_61
- PIXEL21_30
- PIXEL22_30
- PIXEL23_61
- PIXEL30_80
- PIXEL31_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag8
-..@flag12
-..@flag136
-..@flag140
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_60
- PIXEL03_20
- PIXEL10_10
- PIXEL11_30
- PIXEL12_70
- PIXEL13_60
- PIXEL20_10
- PIXEL21_30
- PIXEL22_70
- PIXEL23_60
- PIXEL30_80
- PIXEL31_61
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag3
-..@flag35
-..@flag131
-..@flag163
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_10
- PIXEL03_80
- PIXEL10_81
- PIXEL11_31
- PIXEL12_30
- PIXEL13_61
- PIXEL20_60
- PIXEL21_70
- PIXEL22_70
- PIXEL23_60
- PIXEL30_20
- PIXEL31_60
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag6
-..@flag38
-..@flag134
-..@flag166
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_32
- PIXEL03_82
- PIXEL10_61
- PIXEL11_30
- PIXEL12_32
- PIXEL13_82
- PIXEL20_60
- PIXEL21_70
- PIXEL22_70
- PIXEL23_60
- PIXEL30_20
- PIXEL31_60
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag20
-..@flag21
-..@flag52
-..@flag53
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_81
- PIXEL03_81
- PIXEL10_60
- PIXEL11_70
- PIXEL12_31
- PIXEL13_31
- PIXEL20_60
- PIXEL21_70
- PIXEL22_30
- PIXEL23_10
- PIXEL30_20
- PIXEL31_60
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag144
-..@flag145
-..@flag176
-..@flag177
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_61
- PIXEL03_80
- PIXEL10_60
- PIXEL11_70
- PIXEL12_30
- PIXEL13_10
- PIXEL20_60
- PIXEL21_70
- PIXEL22_32
- PIXEL23_32
- PIXEL30_20
- PIXEL31_60
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag192
-..@flag193
-..@flag196
-..@flag197
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_60
- PIXEL03_20
- PIXEL10_60
- PIXEL11_70
- PIXEL12_70
- PIXEL13_60
- PIXEL20_61
- PIXEL21_30
- PIXEL22_31
- PIXEL23_81
- PIXEL30_80
- PIXEL31_10
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag96
-..@flag97
-..@flag100
-..@flag101
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_60
- PIXEL03_20
- PIXEL10_60
- PIXEL11_70
- PIXEL12_70
- PIXEL13_60
- PIXEL20_82
- PIXEL21_32
- PIXEL22_30
- PIXEL23_61
- PIXEL30_82
- PIXEL31_32
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag40
-..@flag44
-..@flag168
-..@flag172
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_60
- PIXEL03_20
- PIXEL10_10
- PIXEL11_30
- PIXEL12_70
- PIXEL13_60
- PIXEL20_31
- PIXEL21_31
- PIXEL22_70
- PIXEL23_60
- PIXEL30_81
- PIXEL31_81
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag9
-..@flag13
-..@flag137
-..@flag141
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_60
- PIXEL03_20
- PIXEL10_32
- PIXEL11_32
- PIXEL12_70
- PIXEL13_60
- PIXEL20_10
- PIXEL21_30
- PIXEL22_70
- PIXEL23_60
- PIXEL30_80
- PIXEL31_61
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag18
-..@flag50
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_50,PIXEL03_50,PIXEL12_0,PIXEL13_50
- PIXEL10_61
- PIXEL11_30
- PIXEL20_60
- PIXEL21_70
- PIXEL22_30
- PIXEL23_10
- PIXEL30_20
- PIXEL31_60
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag80
-..@flag81
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_61
- PIXEL03_80
- PIXEL10_60
- PIXEL11_70
- PIXEL12_30
- PIXEL13_10
- PIXEL20_61
- PIXEL21_30
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag72
-..@flag76
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_60
- PIXEL03_20
- PIXEL10_10
- PIXEL11_30
- PIXEL12_70
- PIXEL13_60
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_50,PIXEL21_0,PIXEL30_50,PIXEL31_50
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag10
-..@flag138
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_50,PIXEL01_50,PIXEL10_50,PIXEL11_0
- PIXEL02_10
- PIXEL03_80
- PIXEL12_30
- PIXEL13_61
- PIXEL20_10
- PIXEL21_30
- PIXEL22_70
- PIXEL23_60
- PIXEL30_80
- PIXEL31_61
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag66
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_10
- PIXEL03_80
- PIXEL10_61
- PIXEL11_30
- PIXEL12_30
- PIXEL13_61
- PIXEL20_61
- PIXEL21_30
- PIXEL22_30
- PIXEL23_61
- PIXEL30_80
- PIXEL31_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag24
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_61
- PIXEL03_80
- PIXEL10_10
- PIXEL11_30
- PIXEL12_30
- PIXEL13_10
- PIXEL20_10
- PIXEL21_30
- PIXEL22_30
- PIXEL23_10
- PIXEL30_80
- PIXEL31_61
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag7
-..@flag39
-..@flag135
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_32
- PIXEL03_82
- PIXEL10_81
- PIXEL11_31
- PIXEL12_32
- PIXEL13_82
- PIXEL20_60
- PIXEL21_70
- PIXEL22_70
- PIXEL23_60
- PIXEL30_20
- PIXEL31_60
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag148
-..@flag149
-..@flag180
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_81
- PIXEL03_81
- PIXEL10_60
- PIXEL11_70
- PIXEL12_31
- PIXEL13_31
- PIXEL20_60
- PIXEL21_70
- PIXEL22_32
- PIXEL23_32
- PIXEL30_20
- PIXEL31_60
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag224
-..@flag228
-..@flag225
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_60
- PIXEL03_20
- PIXEL10_60
- PIXEL11_70
- PIXEL12_70
- PIXEL13_60
- PIXEL20_82
- PIXEL21_32
- PIXEL22_31
- PIXEL23_81
- PIXEL30_82
- PIXEL31_32
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag41
-..@flag169
-..@flag45
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_60
- PIXEL03_20
- PIXEL10_32
- PIXEL11_32
- PIXEL12_70
- PIXEL13_60
- PIXEL20_31
- PIXEL21_31
- PIXEL22_70
- PIXEL23_60
- PIXEL30_81
- PIXEL31_81
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag22
-..@flag54
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_61
- PIXEL11_30
- PIXEL12_0
- PIXEL20_60
- PIXEL21_70
- PIXEL22_30
- PIXEL23_10
- PIXEL30_20
- PIXEL31_60
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag208
-..@flag209
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_61
- PIXEL03_80
- PIXEL10_60
- PIXEL11_70
- PIXEL12_30
- PIXEL13_10
- PIXEL20_61
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag104
-..@flag108
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_60
- PIXEL03_20
- PIXEL10_10
- PIXEL11_30
- PIXEL12_70
- PIXEL13_60
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag11
-..@flag139
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_61
- PIXEL20_10
- PIXEL21_30
- PIXEL22_70
- PIXEL23_60
- PIXEL30_80
- PIXEL31_61
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag19
-..@flag51
- AUXADDRESS
- DiffOrNot w2,w6,PIXEL00_81,PIXEL01_31,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL00_12,PIXEL01_14,PIXEL02_83,PIXEL03_50,PIXEL12_70,PIXEL13_21
- PIXEL10_81
- PIXEL11_31
- PIXEL20_60
- PIXEL21_70
- PIXEL22_30
- PIXEL23_10
- PIXEL30_20
- PIXEL31_60
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag146
-..@flag178
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL23_32,PIXEL33_82,PIXEL02_21,PIXEL03_50,PIXEL12_70,PIXEL13_83,PIXEL23_13,PIXEL33_11
- PIXEL10_61
- PIXEL11_30
- PIXEL20_60
- PIXEL21_70
- PIXEL22_32
- PIXEL30_20
- PIXEL31_60
- PIXEL32_82
- jmp .loopx_end
-..@flag84
-..@flag85
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_81
- DiffOrNot w6,w8,PIXEL03_81,PIXEL13_31,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL03_12,PIXEL13_14,PIXEL22_70,PIXEL23_83,PIXEL32_21,PIXEL33_50
- PIXEL10_60
- PIXEL11_70
- PIXEL12_31
- PIXEL20_61
- PIXEL21_30
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag112
-..@flag113
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_61
- PIXEL03_80
- PIXEL10_60
- PIXEL11_70
- PIXEL12_30
- PIXEL13_10
- PIXEL20_82
- PIXEL21_32
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL30_82,PIXEL31_32,PIXEL32_10,PIXEL33_80,PIXEL22_70,PIXEL23_21,PIXEL30_11,PIXEL31_13,PIXEL32_83,PIXEL33_50
- jmp .loopx_end
-..@flag200
-..@flag204
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_60
- PIXEL03_20
- PIXEL10_10
- PIXEL11_30
- PIXEL12_70
- PIXEL13_60
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL32_31,PIXEL33_81,PIXEL20_21,PIXEL21_70,PIXEL30_50,PIXEL31_83,PIXEL32_14,PIXEL33_12
- PIXEL22_31
- PIXEL23_81
- jmp .loopx_end
-..@flag73
-..@flag77
- AUXADDRESS
- DiffOrNot w8,w4,PIXEL00_82,PIXEL10_32,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL00_11,PIXEL10_13,PIXEL20_83,PIXEL21_70,PIXEL30_50,PIXEL31_21
- PIXEL01_82
- PIXEL02_60
- PIXEL03_20
- PIXEL11_32
- PIXEL12_70
- PIXEL13_60
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag42
-..@flag170
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL20_31,PIXEL30_81,PIXEL00_50,PIXEL01_21,PIXEL10_83,PIXEL11_70,PIXEL20_14,PIXEL30_12
- PIXEL02_10
- PIXEL03_80
- PIXEL12_30
- PIXEL13_61
- PIXEL21_31
- PIXEL22_70
- PIXEL23_60
- PIXEL31_81
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag14
-..@flag142
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL02_32,PIXEL03_82,PIXEL10_10,PIXEL11_30,PIXEL00_50,PIXEL01_83,PIXEL02_13,PIXEL03_11,PIXEL10_21,PIXEL11_70
- PIXEL12_32
- PIXEL13_82
- PIXEL20_10
- PIXEL21_30
- PIXEL22_70
- PIXEL23_60
- PIXEL30_80
- PIXEL31_61
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag67
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_10
- PIXEL03_80
- PIXEL10_81
- PIXEL11_31
- PIXEL12_30
- PIXEL13_61
- PIXEL20_61
- PIXEL21_30
- PIXEL22_30
- PIXEL23_61
- PIXEL30_80
- PIXEL31_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag70
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_32
- PIXEL03_82
- PIXEL10_61
- PIXEL11_30
- PIXEL12_32
- PIXEL13_82
- PIXEL20_61
- PIXEL21_30
- PIXEL22_30
- PIXEL23_61
- PIXEL30_80
- PIXEL31_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag28
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_81
- PIXEL03_81
- PIXEL10_10
- PIXEL11_30
- PIXEL12_31
- PIXEL13_31
- PIXEL20_10
- PIXEL21_30
- PIXEL22_30
- PIXEL23_10
- PIXEL30_80
- PIXEL31_61
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag152
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_61
- PIXEL03_80
- PIXEL10_10
- PIXEL11_30
- PIXEL12_30
- PIXEL13_10
- PIXEL20_10
- PIXEL21_30
- PIXEL22_32
- PIXEL23_32
- PIXEL30_80
- PIXEL31_61
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag194
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_10
- PIXEL03_80
- PIXEL10_61
- PIXEL11_30
- PIXEL12_30
- PIXEL13_61
- PIXEL20_61
- PIXEL21_30
- PIXEL22_31
- PIXEL23_81
- PIXEL30_80
- PIXEL31_10
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag98
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_10
- PIXEL03_80
- PIXEL10_61
- PIXEL11_30
- PIXEL12_30
- PIXEL13_61
- PIXEL20_82
- PIXEL21_32
- PIXEL22_30
- PIXEL23_61
- PIXEL30_82
- PIXEL31_32
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag56
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_61
- PIXEL03_80
- PIXEL10_10
- PIXEL11_30
- PIXEL12_30
- PIXEL13_10
- PIXEL20_31
- PIXEL21_31
- PIXEL22_30
- PIXEL23_10
- PIXEL30_81
- PIXEL31_81
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag25
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_61
- PIXEL03_80
- PIXEL10_32
- PIXEL11_32
- PIXEL12_30
- PIXEL13_10
- PIXEL20_10
- PIXEL21_30
- PIXEL22_30
- PIXEL23_10
- PIXEL30_80
- PIXEL31_61
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag26
-..@flag31
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL11_0
- PIXEL12_0
- PIXEL20_10
- PIXEL21_30
- PIXEL22_30
- PIXEL23_10
- PIXEL30_80
- PIXEL31_61
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag82
-..@flag214
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_61
- PIXEL11_30
- PIXEL12_0
- PIXEL20_61
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag88
-..@flag248
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_61
- PIXEL03_80
- PIXEL10_10
- PIXEL11_30
- PIXEL12_30
- PIXEL13_10
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- jmp .loopx_end
-..@flag74
-..@flag107
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_61
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag27
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_10
- PIXEL20_10
- PIXEL21_30
- PIXEL22_30
- PIXEL23_10
- PIXEL30_80
- PIXEL31_61
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag86
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_61
- PIXEL11_30
- PIXEL12_0
- PIXEL20_61
- PIXEL21_30
- PIXEL22_30
- PIXEL23_10
- PIXEL30_80
- PIXEL31_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag216
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_61
- PIXEL03_80
- PIXEL10_10
- PIXEL11_30
- PIXEL12_30
- PIXEL13_10
- PIXEL20_10
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag106
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_10
- PIXEL03_80
- PIXEL10_10
- PIXEL11_30
- PIXEL12_30
- PIXEL13_61
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag30
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_10
- PIXEL11_30
- PIXEL12_0
- PIXEL20_10
- PIXEL21_30
- PIXEL22_30
- PIXEL23_10
- PIXEL30_80
- PIXEL31_61
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag210
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_10
- PIXEL03_80
- PIXEL10_61
- PIXEL11_30
- PIXEL12_30
- PIXEL13_10
- PIXEL20_61
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag120
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_61
- PIXEL03_80
- PIXEL10_10
- PIXEL11_30
- PIXEL12_30
- PIXEL13_10
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag75
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_61
- PIXEL20_10
- PIXEL21_30
- PIXEL22_30
- PIXEL23_61
- PIXEL30_80
- PIXEL31_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag29
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_81
- PIXEL03_81
- PIXEL10_32
- PIXEL11_32
- PIXEL12_31
- PIXEL13_31
- PIXEL20_10
- PIXEL21_30
- PIXEL22_30
- PIXEL23_10
- PIXEL30_80
- PIXEL31_61
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag198
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_32
- PIXEL03_82
- PIXEL10_61
- PIXEL11_30
- PIXEL12_32
- PIXEL13_82
- PIXEL20_61
- PIXEL21_30
- PIXEL22_31
- PIXEL23_81
- PIXEL30_80
- PIXEL31_10
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag184
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_61
- PIXEL03_80
- PIXEL10_10
- PIXEL11_30
- PIXEL12_30
- PIXEL13_10
- PIXEL20_31
- PIXEL21_31
- PIXEL22_32
- PIXEL23_32
- PIXEL30_81
- PIXEL31_81
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag99
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_10
- PIXEL03_80
- PIXEL10_81
- PIXEL11_31
- PIXEL12_30
- PIXEL13_61
- PIXEL20_82
- PIXEL21_32
- PIXEL22_30
- PIXEL23_61
- PIXEL30_82
- PIXEL31_32
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag57
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_61
- PIXEL03_80
- PIXEL10_32
- PIXEL11_32
- PIXEL12_30
- PIXEL13_10
- PIXEL20_31
- PIXEL21_31
- PIXEL22_30
- PIXEL23_10
- PIXEL30_81
- PIXEL31_81
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag71
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_32
- PIXEL03_82
- PIXEL10_81
- PIXEL11_31
- PIXEL12_32
- PIXEL13_82
- PIXEL20_61
- PIXEL21_30
- PIXEL22_30
- PIXEL23_61
- PIXEL30_80
- PIXEL31_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag156
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_81
- PIXEL03_81
- PIXEL10_10
- PIXEL11_30
- PIXEL12_31
- PIXEL13_31
- PIXEL20_10
- PIXEL21_30
- PIXEL22_32
- PIXEL23_32
- PIXEL30_80
- PIXEL31_61
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag226
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_10
- PIXEL03_80
- PIXEL10_61
- PIXEL11_30
- PIXEL12_30
- PIXEL13_61
- PIXEL20_82
- PIXEL21_32
- PIXEL22_31
- PIXEL23_81
- PIXEL30_82
- PIXEL31_32
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag60
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_81
- PIXEL03_81
- PIXEL10_10
- PIXEL11_30
- PIXEL12_31
- PIXEL13_31
- PIXEL20_31
- PIXEL21_31
- PIXEL22_30
- PIXEL23_10
- PIXEL30_81
- PIXEL31_81
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag195
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_10
- PIXEL03_80
- PIXEL10_81
- PIXEL11_31
- PIXEL12_30
- PIXEL13_61
- PIXEL20_61
- PIXEL21_30
- PIXEL22_31
- PIXEL23_81
- PIXEL30_80
- PIXEL31_10
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag102
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_32
- PIXEL03_82
- PIXEL10_61
- PIXEL11_30
- PIXEL12_32
- PIXEL13_82
- PIXEL20_82
- PIXEL21_32
- PIXEL22_30
- PIXEL23_61
- PIXEL30_82
- PIXEL31_32
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag153
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_61
- PIXEL03_80
- PIXEL10_32
- PIXEL11_32
- PIXEL12_30
- PIXEL13_10
- PIXEL20_10
- PIXEL21_30
- PIXEL22_32
- PIXEL23_32
- PIXEL30_80
- PIXEL31_61
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag58
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL20_31
- PIXEL21_31
- PIXEL22_30
- PIXEL23_10
- PIXEL30_81
- PIXEL31_81
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag83
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL10_81
- PIXEL11_31
- PIXEL20_61
- PIXEL21_30
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag92
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_81
- PIXEL03_81
- PIXEL10_10
- PIXEL11_30
- PIXEL12_31
- PIXEL13_31
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- jmp .loopx_end
-..@flag202
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- PIXEL02_10
- PIXEL03_80
- PIXEL12_30
- PIXEL13_61
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- PIXEL22_31
- PIXEL23_81
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag78
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- PIXEL02_32
- PIXEL03_82
- PIXEL12_32
- PIXEL13_82
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag154
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL20_10
- PIXEL21_30
- PIXEL22_32
- PIXEL23_32
- PIXEL30_80
- PIXEL31_61
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag114
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL10_61
- PIXEL11_30
- PIXEL20_82
- PIXEL21_32
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- PIXEL30_82
- PIXEL31_32
- jmp .loopx_end
-..@flag89
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_61
- PIXEL03_80
- PIXEL10_32
- PIXEL11_32
- PIXEL12_30
- PIXEL13_10
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- jmp .loopx_end
-..@flag90
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- jmp .loopx_end
-..@flag55
-..@flag23
- AUXADDRESS
- DiffOrNot w2,w6,PIXEL00_81,PIXEL01_31,PIXEL02_0,PIXEL03_0,PIXEL12_0,PIXEL13_0,PIXEL00_12,PIXEL01_14,PIXEL02_83,PIXEL03_50,PIXEL12_70,PIXEL13_21
- PIXEL10_81
- PIXEL11_31
- PIXEL20_60
- PIXEL21_70
- PIXEL22_30
- PIXEL23_10
- PIXEL30_20
- PIXEL31_60
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag182
-..@flag150
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL12_0,PIXEL13_0,PIXEL23_32,PIXEL33_82,PIXEL02_21,PIXEL03_50,PIXEL12_70,PIXEL13_83,PIXEL23_13,PIXEL33_11
- PIXEL10_61
- PIXEL11_30
- PIXEL20_60
- PIXEL21_70
- PIXEL22_32
- PIXEL30_20
- PIXEL31_60
- PIXEL32_82
- jmp .loopx_end
-..@flag213
-..@flag212
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_81
- DiffOrNot w6,w8,PIXEL03_81,PIXEL13_31,PIXEL22_0,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL03_12,PIXEL13_14,PIXEL22_70,PIXEL23_83,PIXEL32_21,PIXEL33_50
- PIXEL10_60
- PIXEL11_70
- PIXEL12_31
- PIXEL20_61
- PIXEL21_30
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag241
-..@flag240
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_61
- PIXEL03_80
- PIXEL10_60
- PIXEL11_70
- PIXEL12_30
- PIXEL13_10
- PIXEL20_82
- PIXEL21_32
- DiffOrNot w6,w8,PIXEL22_0,PIXEL23_0,PIXEL30_82,PIXEL31_32,PIXEL32_0,PIXEL33_0,PIXEL22_70,PIXEL23_21,PIXEL30_11,PIXEL31_13,PIXEL32_83,PIXEL33_50
- jmp .loopx_end
-..@flag236
-..@flag232
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_60
- PIXEL03_20
- PIXEL10_10
- PIXEL11_30
- PIXEL12_70
- PIXEL13_60
- DiffOrNot w8,w4,PIXEL20_0,PIXEL21_0,PIXEL30_0,PIXEL31_0,PIXEL32_31,PIXEL33_81,PIXEL20_21,PIXEL21_70,PIXEL30_50,PIXEL31_83,PIXEL32_14,PIXEL33_12
- PIXEL22_31
- PIXEL23_81
- jmp .loopx_end
-..@flag109
-..@flag105
- AUXADDRESS
- DiffOrNot w8,w4,PIXEL00_82,PIXEL10_32,PIXEL20_0,PIXEL21_0,PIXEL30_0,PIXEL31_0,PIXEL00_11,PIXEL10_13,PIXEL20_83,PIXEL21_70,PIXEL30_50,PIXEL31_21
- PIXEL01_82
- PIXEL02_60
- PIXEL03_20
- PIXEL11_32
- PIXEL12_70
- PIXEL13_60
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag171
-..@flag43
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL11_0,PIXEL20_31,PIXEL30_81,PIXEL00_50,PIXEL01_21,PIXEL10_83,PIXEL11_70,PIXEL20_14,PIXEL30_12
- PIXEL02_10
- PIXEL03_80
- PIXEL12_30
- PIXEL13_61
- PIXEL21_31
- PIXEL22_70
- PIXEL23_60
- PIXEL31_81
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag143
-..@flag15
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL02_32,PIXEL03_82,PIXEL10_0,PIXEL11_0,PIXEL00_50,PIXEL01_83,PIXEL02_13,PIXEL03_11,PIXEL10_21,PIXEL11_70
- PIXEL12_32
- PIXEL13_82
- PIXEL20_10
- PIXEL21_30
- PIXEL22_70
- PIXEL23_60
- PIXEL30_80
- PIXEL31_61
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag124
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_81
- PIXEL03_81
- PIXEL10_10
- PIXEL11_30
- PIXEL12_31
- PIXEL13_31
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag203
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_61
- PIXEL20_10
- PIXEL21_30
- PIXEL22_31
- PIXEL23_81
- PIXEL30_80
- PIXEL31_10
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag62
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_10
- PIXEL11_30
- PIXEL12_0
- PIXEL20_31
- PIXEL21_31
- PIXEL22_30
- PIXEL23_10
- PIXEL30_81
- PIXEL31_81
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag211
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_10
- PIXEL03_80
- PIXEL10_81
- PIXEL11_31
- PIXEL12_30
- PIXEL13_10
- PIXEL20_61
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag118
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_61
- PIXEL11_30
- PIXEL12_0
- PIXEL20_82
- PIXEL21_32
- PIXEL22_30
- PIXEL23_10
- PIXEL30_82
- PIXEL31_32
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag217
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_61
- PIXEL03_80
- PIXEL10_32
- PIXEL11_32
- PIXEL12_30
- PIXEL13_10
- PIXEL20_10
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag110
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_32
- PIXEL03_82
- PIXEL10_10
- PIXEL11_30
- PIXEL12_32
- PIXEL13_82
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag155
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_10
- PIXEL20_10
- PIXEL21_30
- PIXEL22_32
- PIXEL23_32
- PIXEL30_80
- PIXEL31_61
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag188
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_81
- PIXEL03_81
- PIXEL10_10
- PIXEL11_30
- PIXEL12_31
- PIXEL13_31
- PIXEL20_31
- PIXEL21_31
- PIXEL22_32
- PIXEL23_32
- PIXEL30_81
- PIXEL31_81
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag185
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_61
- PIXEL03_80
- PIXEL10_32
- PIXEL11_32
- PIXEL12_30
- PIXEL13_10
- PIXEL20_31
- PIXEL21_31
- PIXEL22_32
- PIXEL23_32
- PIXEL30_81
- PIXEL31_81
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag61
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_81
- PIXEL03_81
- PIXEL10_32
- PIXEL11_32
- PIXEL12_31
- PIXEL13_31
- PIXEL20_31
- PIXEL21_31
- PIXEL22_30
- PIXEL23_10
- PIXEL30_81
- PIXEL31_81
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag157
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_81
- PIXEL03_81
- PIXEL10_32
- PIXEL11_32
- PIXEL12_31
- PIXEL13_31
- PIXEL20_10
- PIXEL21_30
- PIXEL22_32
- PIXEL23_32
- PIXEL30_80
- PIXEL31_61
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag103
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_32
- PIXEL03_82
- PIXEL10_81
- PIXEL11_31
- PIXEL12_32
- PIXEL13_82
- PIXEL20_82
- PIXEL21_32
- PIXEL22_30
- PIXEL23_61
- PIXEL30_82
- PIXEL31_32
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag227
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_10
- PIXEL03_80
- PIXEL10_81
- PIXEL11_31
- PIXEL12_30
- PIXEL13_61
- PIXEL20_82
- PIXEL21_32
- PIXEL22_31
- PIXEL23_81
- PIXEL30_82
- PIXEL31_32
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag230
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_32
- PIXEL03_82
- PIXEL10_61
- PIXEL11_30
- PIXEL12_32
- PIXEL13_82
- PIXEL20_82
- PIXEL21_32
- PIXEL22_31
- PIXEL23_81
- PIXEL30_82
- PIXEL31_32
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag199
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_32
- PIXEL03_82
- PIXEL10_81
- PIXEL11_31
- PIXEL12_32
- PIXEL13_82
- PIXEL20_61
- PIXEL21_30
- PIXEL22_31
- PIXEL23_81
- PIXEL30_80
- PIXEL31_10
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag220
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_81
- PIXEL03_81
- PIXEL10_10
- PIXEL11_30
- PIXEL12_31
- PIXEL13_31
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- jmp .loopx_end
-..@flag158
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL12_0
- PIXEL20_10
- PIXEL21_30
- PIXEL22_32
- PIXEL23_32
- PIXEL30_80
- PIXEL31_61
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag234
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- PIXEL02_10
- PIXEL03_80
- PIXEL12_30
- PIXEL13_61
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_31
- PIXEL23_81
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag242
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL10_61
- PIXEL11_30
- PIXEL20_82
- PIXEL21_32
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_82
- PIXEL31_32
- jmp .loopx_end
-..@flag59
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL11_0
- PIXEL20_31
- PIXEL21_31
- PIXEL22_30
- PIXEL23_10
- PIXEL30_81
- PIXEL31_81
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag121
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_61
- PIXEL03_80
- PIXEL10_32
- PIXEL11_32
- PIXEL12_30
- PIXEL13_10
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- jmp .loopx_end
-..@flag87
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_81
- PIXEL11_31
- PIXEL12_0
- PIXEL20_61
- PIXEL21_30
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag79
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_32
- PIXEL03_82
- PIXEL11_0
- PIXEL12_32
- PIXEL13_82
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag122
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- jmp .loopx_end
-..@flag94
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL12_0
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- jmp .loopx_end
-..@flag218
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- jmp .loopx_end
-..@flag91
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL11_0
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- jmp .loopx_end
-..@flag229
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_60
- PIXEL03_20
- PIXEL10_60
- PIXEL11_70
- PIXEL12_70
- PIXEL13_60
- PIXEL20_82
- PIXEL21_32
- PIXEL22_31
- PIXEL23_81
- PIXEL30_82
- PIXEL31_32
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag167
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_32
- PIXEL03_82
- PIXEL10_81
- PIXEL11_31
- PIXEL12_32
- PIXEL13_82
- PIXEL20_60
- PIXEL21_70
- PIXEL22_70
- PIXEL23_60
- PIXEL30_20
- PIXEL31_60
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag173
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_60
- PIXEL03_20
- PIXEL10_32
- PIXEL11_32
- PIXEL12_70
- PIXEL13_60
- PIXEL20_31
- PIXEL21_31
- PIXEL22_70
- PIXEL23_60
- PIXEL30_81
- PIXEL31_81
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag181
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_81
- PIXEL03_81
- PIXEL10_60
- PIXEL11_70
- PIXEL12_31
- PIXEL13_31
- PIXEL20_60
- PIXEL21_70
- PIXEL22_32
- PIXEL23_32
- PIXEL30_20
- PIXEL31_60
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag186
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL20_31
- PIXEL21_31
- PIXEL22_32
- PIXEL23_32
- PIXEL30_81
- PIXEL31_81
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag115
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL10_81
- PIXEL11_31
- PIXEL20_82
- PIXEL21_32
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- PIXEL30_82
- PIXEL31_32
- jmp .loopx_end
-..@flag93
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_81
- PIXEL03_81
- PIXEL10_32
- PIXEL11_32
- PIXEL12_31
- PIXEL13_31
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- jmp .loopx_end
-..@flag206
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- PIXEL02_32
- PIXEL03_82
- PIXEL12_32
- PIXEL13_82
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- PIXEL22_31
- PIXEL23_81
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag205
-..@flag201
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_60
- PIXEL03_20
- PIXEL10_32
- PIXEL11_32
- PIXEL12_70
- PIXEL13_60
- DiffOrNot w8,w4,PIXEL20_10,PIXEL21_30,PIXEL30_80,PIXEL31_10,PIXEL20_12,PIXEL21_0,PIXEL30_20,PIXEL31_11
- PIXEL22_31
- PIXEL23_81
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag174
-..@flag46
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_80,PIXEL01_10,PIXEL10_10,PIXEL11_30,PIXEL00_20,PIXEL01_12,PIXEL10_11,PIXEL11_0
- PIXEL02_32
- PIXEL03_82
- PIXEL12_32
- PIXEL13_82
- PIXEL20_31
- PIXEL21_31
- PIXEL22_70
- PIXEL23_60
- PIXEL30_81
- PIXEL31_81
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag179
-..@flag147
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- DiffOrNot w2,w6,PIXEL02_10,PIXEL03_80,PIXEL12_30,PIXEL13_10,PIXEL02_11,PIXEL03_20,PIXEL12_0,PIXEL13_12
- PIXEL10_81
- PIXEL11_31
- PIXEL20_60
- PIXEL21_70
- PIXEL22_32
- PIXEL23_32
- PIXEL30_20
- PIXEL31_60
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag117
-..@flag116
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_81
- PIXEL03_81
- PIXEL10_60
- PIXEL11_70
- PIXEL12_31
- PIXEL13_31
- PIXEL20_82
- PIXEL21_32
- DiffOrNot w6,w8,PIXEL22_30,PIXEL23_10,PIXEL32_10,PIXEL33_80,PIXEL22_0,PIXEL23_11,PIXEL32_12,PIXEL33_20
- PIXEL30_82
- PIXEL31_32
- jmp .loopx_end
-..@flag189
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_81
- PIXEL03_81
- PIXEL10_32
- PIXEL11_32
- PIXEL12_31
- PIXEL13_31
- PIXEL20_31
- PIXEL21_31
- PIXEL22_32
- PIXEL23_32
- PIXEL30_81
- PIXEL31_81
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag231
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_32
- PIXEL03_82
- PIXEL10_81
- PIXEL11_31
- PIXEL12_32
- PIXEL13_82
- PIXEL20_82
- PIXEL21_32
- PIXEL22_31
- PIXEL23_81
- PIXEL30_82
- PIXEL31_32
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag126
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_10
- PIXEL11_30
- PIXEL12_0
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag219
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_10
- PIXEL20_10
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag125
- AUXADDRESS
- DiffOrNot w8,w4,PIXEL00_82,PIXEL10_32,PIXEL20_0,PIXEL21_0,PIXEL30_0,PIXEL31_0,PIXEL00_11,PIXEL10_13,PIXEL20_83,PIXEL21_70,PIXEL30_50,PIXEL31_21
- PIXEL01_82
- PIXEL02_81
- PIXEL03_81
- PIXEL11_32
- PIXEL12_31
- PIXEL13_31
- PIXEL22_30
- PIXEL23_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag221
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_81
- DiffOrNot w6,w8,PIXEL03_81,PIXEL13_31,PIXEL22_0,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL03_12,PIXEL13_14,PIXEL22_70,PIXEL23_83,PIXEL32_21,PIXEL33_50
- PIXEL10_32
- PIXEL11_32
- PIXEL12_31
- PIXEL20_10
- PIXEL21_30
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag207
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL02_32,PIXEL03_82,PIXEL10_0,PIXEL11_0,PIXEL00_50,PIXEL01_83,PIXEL02_13,PIXEL03_11,PIXEL10_21,PIXEL11_70
- PIXEL12_32
- PIXEL13_82
- PIXEL20_10
- PIXEL21_30
- PIXEL22_31
- PIXEL23_81
- PIXEL30_80
- PIXEL31_10
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag238
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_32
- PIXEL03_82
- PIXEL10_10
- PIXEL11_30
- PIXEL12_32
- PIXEL13_82
- DiffOrNot w8,w4,PIXEL20_0,PIXEL21_0,PIXEL30_0,PIXEL31_0,PIXEL32_31,PIXEL33_81,PIXEL20_21,PIXEL21_70,PIXEL30_50,PIXEL31_83,PIXEL32_14,PIXEL33_12
- PIXEL22_31
- PIXEL23_81
- jmp .loopx_end
-..@flag190
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL12_0,PIXEL13_0,PIXEL23_32,PIXEL33_82,PIXEL02_21,PIXEL03_50,PIXEL12_70,PIXEL13_83,PIXEL23_13,PIXEL33_11
- PIXEL10_10
- PIXEL11_30
- PIXEL20_31
- PIXEL21_31
- PIXEL22_32
- PIXEL30_81
- PIXEL31_81
- PIXEL32_82
- jmp .loopx_end
-..@flag187
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL11_0,PIXEL20_31,PIXEL30_81,PIXEL00_50,PIXEL01_21,PIXEL10_83,PIXEL11_70,PIXEL20_14,PIXEL30_12
- PIXEL02_10
- PIXEL03_80
- PIXEL12_30
- PIXEL13_10
- PIXEL21_31
- PIXEL22_32
- PIXEL23_32
- PIXEL31_81
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag243
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_10
- PIXEL03_80
- PIXEL10_81
- PIXEL11_31
- PIXEL12_30
- PIXEL13_10
- PIXEL20_82
- PIXEL21_32
- DiffOrNot w6,w8,PIXEL22_0,PIXEL23_0,PIXEL30_82,PIXEL31_32,PIXEL32_0,PIXEL33_0,PIXEL22_70,PIXEL23_21,PIXEL30_11,PIXEL31_13,PIXEL32_83,PIXEL33_50
- jmp .loopx_end
-..@flag119
- AUXADDRESS
- DiffOrNot w2,w6,PIXEL00_81,PIXEL01_31,PIXEL02_0,PIXEL03_0,PIXEL12_0,PIXEL13_0,PIXEL00_12,PIXEL01_14,PIXEL02_83,PIXEL03_50,PIXEL12_70,PIXEL13_21
- PIXEL10_81
- PIXEL11_31
- PIXEL20_82
- PIXEL21_32
- PIXEL22_30
- PIXEL23_10
- PIXEL30_82
- PIXEL31_32
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag237
-..@flag233
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_60
- PIXEL03_20
- PIXEL10_32
- PIXEL11_32
- PIXEL12_70
- PIXEL13_60
- PIXEL20_0
- PIXEL21_0
- PIXEL22_31
- PIXEL23_81
- DiffOrNot w8,w4,PIXEL30_0,PIXEL30_20
- PIXEL31_0
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag175
-..@flag47
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_0
- PIXEL02_32
- PIXEL03_82
- PIXEL10_0
- PIXEL11_0
- PIXEL12_32
- PIXEL13_82
- PIXEL20_31
- PIXEL21_31
- PIXEL22_70
- PIXEL23_60
- PIXEL30_81
- PIXEL31_81
- PIXEL32_60
- PIXEL33_20
- jmp .loopx_end
-..@flag183
-..@flag151
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_0
- DiffOrNot w2,w6,PIXEL03_0,PIXEL03_20
- PIXEL10_81
- PIXEL11_31
- PIXEL12_0
- PIXEL13_0
- PIXEL20_60
- PIXEL21_70
- PIXEL22_32
- PIXEL23_32
- PIXEL30_20
- PIXEL31_60
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag245
-..@flag244
- AUXADDRESS
- PIXEL00_20
- PIXEL01_60
- PIXEL02_81
- PIXEL03_81
- PIXEL10_60
- PIXEL11_70
- PIXEL12_31
- PIXEL13_31
- PIXEL20_82
- PIXEL21_32
- PIXEL22_0
- PIXEL23_0
- PIXEL30_82
- PIXEL31_32
- PIXEL32_0
- DiffOrNot w6,w8,PIXEL33_0,PIXEL33_20
- jmp .loopx_end
-..@flag250
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- PIXEL02_10
- PIXEL03_80
- PIXEL10_10
- PIXEL11_30
- PIXEL12_30
- PIXEL13_10
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- jmp .loopx_end
-..@flag123
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_10
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag95
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL11_0
- PIXEL12_0
- PIXEL20_10
- PIXEL21_30
- PIXEL22_30
- PIXEL23_10
- PIXEL30_80
- PIXEL31_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag222
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_10
- PIXEL11_30
- PIXEL12_0
- PIXEL20_10
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag252
- AUXADDRESS
- PIXEL00_80
- PIXEL01_61
- PIXEL02_81
- PIXEL03_81
- PIXEL10_10
- PIXEL11_30
- PIXEL12_31
- PIXEL13_31
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_0
- PIXEL23_0
- PIXEL32_0
- DiffOrNot w6,w8,PIXEL33_0,PIXEL33_20
- jmp .loopx_end
-..@flag249
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_61
- PIXEL03_80
- PIXEL10_32
- PIXEL11_32
- PIXEL12_30
- PIXEL13_10
- PIXEL20_0
- PIXEL21_0
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- DiffOrNot w8,w4,PIXEL30_0,PIXEL30_20
- PIXEL31_0
- jmp .loopx_end
-..@flag235
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_61
- PIXEL20_0
- PIXEL21_0
- PIXEL22_31
- PIXEL23_81
- DiffOrNot w8,w4,PIXEL30_0,PIXEL30_20
- PIXEL31_0
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag111
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_0
- PIXEL02_32
- PIXEL03_82
- PIXEL10_0
- PIXEL11_0
- PIXEL12_32
- PIXEL13_82
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_61
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag63
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_0
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_0
- PIXEL11_0
- PIXEL12_0
- PIXEL20_31
- PIXEL21_31
- PIXEL22_30
- PIXEL23_10
- PIXEL30_81
- PIXEL31_81
- PIXEL32_61
- PIXEL33_80
- jmp .loopx_end
-..@flag159
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_0
- DiffOrNot w2,w6,PIXEL03_0,PIXEL03_20
- PIXEL11_0
- PIXEL12_0
- PIXEL13_0
- PIXEL20_10
- PIXEL21_30
- PIXEL22_32
- PIXEL23_32
- PIXEL30_80
- PIXEL31_61
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag215
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_0
- DiffOrNot w2,w6,PIXEL03_0,PIXEL03_20
- PIXEL10_81
- PIXEL11_31
- PIXEL12_0
- PIXEL13_0
- PIXEL20_61
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag246
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_61
- PIXEL11_30
- PIXEL12_0
- PIXEL20_82
- PIXEL21_32
- PIXEL22_0
- PIXEL23_0
- PIXEL30_82
- PIXEL31_32
- PIXEL32_0
- DiffOrNot w6,w8,PIXEL33_0,PIXEL33_20
- jmp .loopx_end
-..@flag254
- AUXADDRESS
- PIXEL00_80
- PIXEL01_10
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_10
- PIXEL11_30
- PIXEL12_0
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_0
- PIXEL23_0
- PIXEL32_0
- DiffOrNot w6,w8,PIXEL33_0,PIXEL33_20
- jmp .loopx_end
-..@flag253
- AUXADDRESS
- PIXEL00_82
- PIXEL01_82
- PIXEL02_81
- PIXEL03_81
- PIXEL10_32
- PIXEL11_32
- PIXEL12_31
- PIXEL13_31
- PIXEL20_0
- PIXEL21_0
- PIXEL22_0
- PIXEL23_0
- DiffOrNot w8,w4,PIXEL30_0,PIXEL30_20
- PIXEL31_0
- PIXEL32_0
- DiffOrNot w6,w8,PIXEL33_0,PIXEL33_20
- jmp .loopx_end
-..@flag251
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_10
- PIXEL03_80
- PIXEL11_0
- PIXEL12_30
- PIXEL13_10
- PIXEL20_0
- PIXEL21_0
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- DiffOrNot w8,w4,PIXEL30_0,PIXEL30_20
- PIXEL31_0
- jmp .loopx_end
-..@flag239
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_0
- PIXEL02_32
- PIXEL03_82
- PIXEL10_0
- PIXEL11_0
- PIXEL12_32
- PIXEL13_82
- PIXEL20_0
- PIXEL21_0
- PIXEL22_31
- PIXEL23_81
- DiffOrNot w8,w4,PIXEL30_0,PIXEL30_20
- PIXEL31_0
- PIXEL32_31
- PIXEL33_81
- jmp .loopx_end
-..@flag127
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_0
- DiffOrNot w2,w6,PIXEL02_0,PIXEL03_0,PIXEL13_0,PIXEL02_50,PIXEL03_50,PIXEL13_50
- PIXEL10_0
- PIXEL11_0
- PIXEL12_0
- DiffOrNot w8,w4,PIXEL20_0,PIXEL30_0,PIXEL31_0,PIXEL20_50,PIXEL30_50,PIXEL31_50
- PIXEL21_0
- PIXEL22_30
- PIXEL23_10
- PIXEL32_10
- PIXEL33_80
- jmp .loopx_end
-..@flag191
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_0
- PIXEL02_0
- DiffOrNot w2,w6,PIXEL03_0,PIXEL03_20
- PIXEL10_0
- PIXEL11_0
- PIXEL12_0
- PIXEL13_0
- PIXEL20_31
- PIXEL21_31
- PIXEL22_32
- PIXEL23_32
- PIXEL30_81
- PIXEL31_81
- PIXEL32_82
- PIXEL33_82
- jmp .loopx_end
-..@flag223
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL01_0,PIXEL10_0,PIXEL00_50,PIXEL01_50,PIXEL10_50
- PIXEL02_0
- DiffOrNot w2,w6,PIXEL03_0,PIXEL03_20
- PIXEL11_0
- PIXEL12_0
- PIXEL13_0
- PIXEL20_10
- PIXEL21_30
- PIXEL22_0
- DiffOrNot w6,w8,PIXEL23_0,PIXEL32_0,PIXEL33_0,PIXEL23_50,PIXEL32_50,PIXEL33_50
- PIXEL30_80
- PIXEL31_10
- jmp .loopx_end
-..@flag247
- AUXADDRESS
- PIXEL00_81
- PIXEL01_31
- PIXEL02_0
- DiffOrNot w2,w6,PIXEL03_0,PIXEL03_20
- PIXEL10_81
- PIXEL11_31
- PIXEL12_0
- PIXEL13_0
- PIXEL20_82
- PIXEL21_32
- PIXEL22_0
- PIXEL23_0
- PIXEL30_82
- PIXEL31_32
- PIXEL32_0
- DiffOrNot w6,w8,PIXEL33_0,PIXEL33_20
- jmp .loopx_end
-..@flag255
- AUXADDRESS
- DiffOrNot w4,w2,PIXEL00_0,PIXEL00_20
- PIXEL01_0
- PIXEL02_0
- DiffOrNot w2,w6,PIXEL03_0,PIXEL03_20
- PIXEL10_0
- PIXEL11_0
- PIXEL12_0
- PIXEL13_0
- PIXEL20_0
- PIXEL21_0
- PIXEL22_0
- PIXEL23_0
- DiffOrNot w8,w4,PIXEL30_0,PIXEL30_20
- PIXEL31_0
- PIXEL32_0
- DiffOrNot w6,w8,PIXEL33_0,PIXEL33_20
- jmp .loopx_end
-
-.loopx_end
- add esi,2
- add edi,16
- dec dword[xcounter]
- jle .xres_2
- jmp .loopx
-.xres_2
- ; x=Xres-2 - special case
- jl .xres_1
- mov ebx,[prevline]
- movq mm5,[esi+ebx-4]
- movq mm6,[esi-4]
- mov ebx,[nextline]
- movq mm7,[esi+ebx-4]
- psrlq mm5,16
- psrlq mm6,16
- psrlq mm7,16
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- shr eax,16
- mov [w2],eax
- psrlq mm5,32
- movd eax,mm5
- mov [w3],eax
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- shr eax,16
- mov [w5],eax
- psrlq mm6,32
- movd eax,mm6
- mov [w6],eax
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- shr eax,16
- mov [w8],eax
- psrlq mm7,32
- movd eax,mm7
- mov [w9],eax
- jmp .flags
-.xres_1
- cmp dword[xcounter],-1
- jl .nexty
- ; x=Xres-1 - special case
- mov ebx,[prevline]
- movq mm5,[esi+ebx-6]
- movq mm6,[esi-6]
- mov ebx,[nextline]
- movq mm7,[esi+ebx-6]
- psrlq mm5,32
- psrlq mm6,32
- psrlq mm7,32
- movd eax,mm5
- movzx edx,ax
- mov [w1],edx
- shr eax,16
- mov [w2],eax
- mov [w3],eax
- movd eax,mm6
- movzx edx,ax
- mov [w4],edx
- shr eax,16
- mov [w5],eax
- mov [w6],eax
- movd eax,mm7
- movzx edx,ax
- mov [w7],edx
- shr eax,16
- mov [w8],eax
- mov [w9],eax
- jmp .flags
-.nexty
- add edi,ebx
- add edi,ebx
- add edi,ebx
- dec dword[linesleft]
- jz .fin
- mov ebx,[ebp+Xres]
- shl ebx,1
- cmp dword[linesleft],1
- je .lastline
- mov dword[nextline],ebx
- neg ebx
- mov dword[prevline],ebx
- jmp .loopy
-.lastline
- mov dword[nextline],0
- neg ebx
- mov dword[prevline],ebx
- jmp .loopy
-.fin
- emms
- popad
- mov esp,ebp
- pop ebp
- ret
-
-SECTION .data
-FuncTable
- dd ..@flag0, ..@flag1, ..@flag2, ..@flag3, ..@flag4, ..@flag5, ..@flag6, ..@flag7
- dd ..@flag8, ..@flag9, ..@flag10, ..@flag11, ..@flag12, ..@flag13, ..@flag14, ..@flag15
- dd ..@flag16, ..@flag17, ..@flag18, ..@flag19, ..@flag20, ..@flag21, ..@flag22, ..@flag23
- dd ..@flag24, ..@flag25, ..@flag26, ..@flag27, ..@flag28, ..@flag29, ..@flag30, ..@flag31
- dd ..@flag32, ..@flag33, ..@flag34, ..@flag35, ..@flag36, ..@flag37, ..@flag38, ..@flag39
- dd ..@flag40, ..@flag41, ..@flag42, ..@flag43, ..@flag44, ..@flag45, ..@flag46, ..@flag47
- dd ..@flag48, ..@flag49, ..@flag50, ..@flag51, ..@flag52, ..@flag53, ..@flag54, ..@flag55
- dd ..@flag56, ..@flag57, ..@flag58, ..@flag59, ..@flag60, ..@flag61, ..@flag62, ..@flag63
- dd ..@flag64, ..@flag65, ..@flag66, ..@flag67, ..@flag68, ..@flag69, ..@flag70, ..@flag71
- dd ..@flag72, ..@flag73, ..@flag74, ..@flag75, ..@flag76, ..@flag77, ..@flag78, ..@flag79
- dd ..@flag80, ..@flag81, ..@flag82, ..@flag83, ..@flag84, ..@flag85, ..@flag86, ..@flag87
- dd ..@flag88, ..@flag89, ..@flag90, ..@flag91, ..@flag92, ..@flag93, ..@flag94, ..@flag95
- dd ..@flag96, ..@flag97, ..@flag98, ..@flag99, ..@flag100, ..@flag101, ..@flag102, ..@flag103
- dd ..@flag104, ..@flag105, ..@flag106, ..@flag107, ..@flag108, ..@flag109, ..@flag110, ..@flag111
- dd ..@flag112, ..@flag113, ..@flag114, ..@flag115, ..@flag116, ..@flag117, ..@flag118, ..@flag119
- dd ..@flag120, ..@flag121, ..@flag122, ..@flag123, ..@flag124, ..@flag125, ..@flag126, ..@flag127
- dd ..@flag128, ..@flag129, ..@flag130, ..@flag131, ..@flag132, ..@flag133, ..@flag134, ..@flag135
- dd ..@flag136, ..@flag137, ..@flag138, ..@flag139, ..@flag140, ..@flag141, ..@flag142, ..@flag143
- dd ..@flag144, ..@flag145, ..@flag146, ..@flag147, ..@flag148, ..@flag149, ..@flag150, ..@flag151
- dd ..@flag152, ..@flag153, ..@flag154, ..@flag155, ..@flag156, ..@flag157, ..@flag158, ..@flag159
- dd ..@flag160, ..@flag161, ..@flag162, ..@flag163, ..@flag164, ..@flag165, ..@flag166, ..@flag167
- dd ..@flag168, ..@flag169, ..@flag170, ..@flag171, ..@flag172, ..@flag173, ..@flag174, ..@flag175
- dd ..@flag176, ..@flag177, ..@flag178, ..@flag179, ..@flag180, ..@flag181, ..@flag182, ..@flag183
- dd ..@flag184, ..@flag185, ..@flag186, ..@flag187, ..@flag188, ..@flag189, ..@flag190, ..@flag191
- dd ..@flag192, ..@flag193, ..@flag194, ..@flag195, ..@flag196, ..@flag197, ..@flag198, ..@flag199
- dd ..@flag200, ..@flag201, ..@flag202, ..@flag203, ..@flag204, ..@flag205, ..@flag206, ..@flag207
- dd ..@flag208, ..@flag209, ..@flag210, ..@flag211, ..@flag212, ..@flag213, ..@flag214, ..@flag215
- dd ..@flag216, ..@flag217, ..@flag218, ..@flag219, ..@flag220, ..@flag221, ..@flag222, ..@flag223
- dd ..@flag224, ..@flag225, ..@flag226, ..@flag227, ..@flag228, ..@flag229, ..@flag230, ..@flag231
- dd ..@flag232, ..@flag233, ..@flag234, ..@flag235, ..@flag236, ..@flag237, ..@flag238, ..@flag239
- dd ..@flag240, ..@flag241, ..@flag242, ..@flag243, ..@flag244, ..@flag245, ..@flag246, ..@flag247
- dd ..@flag248, ..@flag249, ..@flag250, ..@flag251, ..@flag252, ..@flag253, ..@flag254, ..@flag255
-
-
+++ /dev/null
-/* This program is free software; you can redistribute it and/or
-* modify it under the terms of the GNU General Public License
-* as published by the Free Software Foundation; either version 2
-* of the License, or (at your option) any later version.
-
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-
-* You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-/* Scaler (except Scale2x) code borrowed from ScummVM project */
-
-extern int cpu_mmx;
-
-#include "sysconfig.h"
-#include "sysdeps.h"
-
-extern "C"
-{
-
-#include "gfxfilter.h"
-
-static uae_u32 colorMask;
-static uae_u32 lowPixelMask;
-static uae_u32 qcolorMask;
-static uae_u32 qlowpixelMask;
-static uae_u32 redblueMask;
-static uae_u32 redMask;
-static uae_u32 greenMask;
-static uae_u32 blueMask;
-
-unsigned int LUT16to32[65536];
-unsigned int RGBtoYUV[65536];
-
-int Init_2xSaI (int rb, int gb, int bb, int rs, int gs, int bs)
-{
- if (rb + gb + bb == 16) {
- colorMask = 0xF7DEF7DE;
- lowPixelMask = 0x08210821;
- qcolorMask = 0xE79CE79C;
- qlowpixelMask = 0x18631863;
- redblueMask = 0xF81F;
- redMask = 0xF800;
- greenMask = 0x07E0;
- blueMask = 0x001F;
- } else if (rb + gb + bb == 15) {
- colorMask = 0x7BDE7BDE;
- lowPixelMask = 0x04210421;
- qcolorMask = 0x739C739C;
- qlowpixelMask = 0x0C630C63;
- redblueMask = 0x7C1F;
- redMask = 0x7C00;
- greenMask = 0x03E0;
- blueMask = 0x001F;
- } else {
- return 0;
- }
-
- return 1;
-}
-
-static _inline int GetResult(uae_u32 A, uae_u32 B, uae_u32 C, uae_u32 D)
-{
- const bool ac = (A==C);
- const bool bc = (B==C);
- const int x1 = ac;
- const int y1 = (bc & !ac);
- const bool ad = (A==D);
- const bool bd = (B==D);
- const int x2 = ad;
- const int y2 = (bd & !ad);
- const int x = x1+x2;
- const int y = y1+y2;
- static const int rmap[3][3] = {
- {0, 0, -1},
- {0, 0, -1},
- {1, 1, 0}
- };
- return rmap[y][x];
-}
-
-static _inline uae_u32 INTERPOLATE(uae_u32 A, uae_u32 B) {
- if (A != B) {
- return (((A & colorMask) >> 1) + ((B & colorMask) >> 1) + (A & B & lowPixelMask));
- } else
- return A;
-}
-
-static _inline uae_u32 Q_INTERPOLATE(uae_u32 A, uae_u32 B, uae_u32 C, uae_u32 D) {
- uae_u32 x = ((A & qcolorMask) >> 2) + ((B & qcolorMask) >> 2) + ((C & qcolorMask) >> 2) + ((D & qcolorMask) >> 2);
- uae_u32 y = ((A & qlowpixelMask) + (B & qlowpixelMask) + (C & qlowpixelMask) + (D & qlowpixelMask)) >> 2;
-
- y &= qlowpixelMask;
- return x + y;
-}
-
-void Super2xSaI_16(const uae_u8 *srcPtr, uae_u32 srcPitch, uae_u8 *dstPtr, uae_u32 dstPitch, int width, int height) {
- const uae_u16 *bP;
- uae_u16 *dP;
- const uae_u32 nextlineSrc = srcPitch >> 1;
-
- while (height--) {
- int i;
- bP = (const uae_u16 *)srcPtr;
- dP = (uae_u16 *)dstPtr;
-
- for (i = 0; i < width; ++i) {
- uae_u32 color4, color5, color6;
- uae_u32 color1, color2, color3;
- uae_u32 colorA0, colorA1, colorA2, colorA3;
- uae_u32 colorB0, colorB1, colorB2, colorB3;
- uae_u32 colorS1, colorS2;
- uae_u32 product1a, product1b, product2a, product2b;
-
- //--------------------------------------- B1 B2
- // 4 5 6 S2
- // 1 2 3 S1
- // A1 A2
-
- colorB0 = *(bP - nextlineSrc - 1);
- colorB1 = *(bP - nextlineSrc);
- colorB2 = *(bP - nextlineSrc + 1);
- colorB3 = *(bP - nextlineSrc + 2);
-
- color4 = *(bP - 1);
- color5 = *(bP);
- color6 = *(bP + 1);
- colorS2 = *(bP + 2);
-
- color1 = *(bP + nextlineSrc - 1);
- color2 = *(bP + nextlineSrc);
- color3 = *(bP + nextlineSrc + 1);
- colorS1 = *(bP + nextlineSrc + 2);
-
- colorA0 = *(bP + 2 * nextlineSrc - 1);
- colorA1 = *(bP + 2 * nextlineSrc);
- colorA2 = *(bP + 2 * nextlineSrc + 1);
- colorA3 = *(bP + 2 * nextlineSrc + 2);
-
- //--------------------------------------
- if (color2 == color6 && color5 != color3) {
- product2b = product1b = color2;
- } else if (color5 == color3 && color2 != color6) {
- product2b = product1b = color5;
- } else if (color5 == color3 && color2 == color6) {
- int r = 0;
-
- r += GetResult(color6, color5, color1, colorA1);
- r += GetResult(color6, color5, color4, colorB1);
- r += GetResult(color6, color5, colorA2, colorS1);
- r += GetResult(color6, color5, colorB2, colorS2);
-
- if (r > 0)
- product2b = product1b = color6;
- else if (r < 0)
- product2b = product1b = color5;
- else {
- product2b = product1b = INTERPOLATE(color5, color6);
- }
- } else {
- if (color6 == color3 && color3 == colorA1 && color2 != colorA2 && color3 != colorA0)
- product2b = Q_INTERPOLATE(color3, color3, color3, color2);
- else if (color5 == color2 && color2 == colorA2 && colorA1 != color3 && color2 != colorA3)
- product2b = Q_INTERPOLATE(color2, color2, color2, color3);
- else
- product2b = INTERPOLATE(color2, color3);
-
- if (color6 == color3 && color6 == colorB1 && color5 != colorB2 && color6 != colorB0)
- product1b = Q_INTERPOLATE(color6, color6, color6, color5);
- else if (color5 == color2 && color5 == colorB2 && colorB1 != color6 && color5 != colorB3)
- product1b = Q_INTERPOLATE(color6, color5, color5, color5);
- else
- product1b = INTERPOLATE(color5, color6);
- }
-
- if (color5 == color3 && color2 != color6 && color4 == color5 && color5 != colorA2)
- product2a = INTERPOLATE(color2, color5);
- else if (color5 == color1 && color6 == color5 && color4 != color2 && color5 != colorA0)
- product2a = INTERPOLATE(color2, color5);
- else
- product2a = color2;
-
- if (color2 == color6 && color5 != color3 && color1 == color2 && color2 != colorB2)
- product1a = INTERPOLATE(color2, color5);
- else if (color4 == color2 && color3 == color2 && color1 != color5 && color2 != colorB0)
- product1a = INTERPOLATE(color2, color5);
- else
- product1a = color5;
-
- *(dP + 0) = (uae_u16) product1a;
- *(dP + 1) = (uae_u16) product1b;
- *(dP + dstPitch/2 + 0) = (uae_u16) product2a;
- *(dP + dstPitch/2 + 1) = (uae_u16) product2b;
-
- bP += 1;
- dP += 2;
- }
-
- srcPtr += srcPitch;
- dstPtr += dstPitch * 2;
- }
-}
-
-void Super2xSaI_32(const uae_u8 *srcPtr, uae_u32 srcPitch, uae_u8 *dstPtr, uae_u32 dstPitch, int width, int height) {
- const uae_u16 *bP;
- uae_u32 *dP;
- const uae_u32 nextlineSrc = srcPitch >> 1;
-
- while (height--) {
- int i;
- bP = (const uae_u16 *)srcPtr;
- dP = (uae_u32 *)dstPtr;
-
- for (i = 0; i < width; ++i) {
- uae_u32 color4, color5, color6;
- uae_u32 color1, color2, color3;
- uae_u32 colorA0, colorA1, colorA2, colorA3;
- uae_u32 colorB0, colorB1, colorB2, colorB3;
- uae_u32 colorS1, colorS2;
- uae_u32 product1a, product1b, product2a, product2b;
-
- //--------------------------------------- B1 B2
- // 4 5 6 S2
- // 1 2 3 S1
- // A1 A2
-
- colorB0 = *(bP - nextlineSrc - 1);
- colorB1 = *(bP - nextlineSrc);
- colorB2 = *(bP - nextlineSrc + 1);
- colorB3 = *(bP - nextlineSrc + 2);
-
- color4 = *(bP - 1);
- color5 = *(bP);
- color6 = *(bP + 1);
- colorS2 = *(bP + 2);
-
- color1 = *(bP + nextlineSrc - 1);
- color2 = *(bP + nextlineSrc);
- color3 = *(bP + nextlineSrc + 1);
- colorS1 = *(bP + nextlineSrc + 2);
-
- colorA0 = *(bP + 2 * nextlineSrc - 1);
- colorA1 = *(bP + 2 * nextlineSrc);
- colorA2 = *(bP + 2 * nextlineSrc + 1);
- colorA3 = *(bP + 2 * nextlineSrc + 2);
-
- //--------------------------------------
- if (color2 == color6 && color5 != color3) {
- product2b = product1b = color2;
- } else if (color5 == color3 && color2 != color6) {
- product2b = product1b = color5;
- } else if (color5 == color3 && color2 == color6) {
- int r = 0;
-
- r += GetResult(color6, color5, color1, colorA1);
- r += GetResult(color6, color5, color4, colorB1);
- r += GetResult(color6, color5, colorA2, colorS1);
- r += GetResult(color6, color5, colorB2, colorS2);
-
- if (r > 0)
- product2b = product1b = color6;
- else if (r < 0)
- product2b = product1b = color5;
- else {
- product2b = product1b = INTERPOLATE(color5, color6);
- }
- } else {
- if (color6 == color3 && color3 == colorA1 && color2 != colorA2 && color3 != colorA0)
- product2b = Q_INTERPOLATE(color3, color3, color3, color2);
- else if (color5 == color2 && color2 == colorA2 && colorA1 != color3 && color2 != colorA3)
- product2b = Q_INTERPOLATE(color2, color2, color2, color3);
- else
- product2b = INTERPOLATE(color2, color3);
-
- if (color6 == color3 && color6 == colorB1 && color5 != colorB2 && color6 != colorB0)
- product1b = Q_INTERPOLATE(color6, color6, color6, color5);
- else if (color5 == color2 && color5 == colorB2 && colorB1 != color6 && color5 != colorB3)
- product1b = Q_INTERPOLATE(color6, color5, color5, color5);
- else
- product1b = INTERPOLATE(color5, color6);
- }
-
- if (color5 == color3 && color2 != color6 && color4 == color5 && color5 != colorA2)
- product2a = INTERPOLATE(color2, color5);
- else if (color5 == color1 && color6 == color5 && color4 != color2 && color5 != colorA0)
- product2a = INTERPOLATE(color2, color5);
- else
- product2a = color2;
-
- if (color2 == color6 && color5 != color3 && color1 == color2 && color2 != colorB2)
- product1a = INTERPOLATE(color2, color5);
- else if (color4 == color2 && color3 == color2 && color1 != color5 && color2 != colorB0)
- product1a = INTERPOLATE(color2, color5);
- else
- product1a = color5;
-
- *(dP + 0) = LUT16to32[(uae_u16) product1a];
- *(dP + 1) = LUT16to32[(uae_u16) product1b];
- *(dP + dstPitch/4 + 0) = LUT16to32[(uae_u16) product2a];
- *(dP + dstPitch/4 + 1) = LUT16to32[(uae_u16) product2b];
-
- bP += 1;
- dP += 2;
- }
-
- srcPtr += srcPitch;
- dstPtr += dstPitch * 2;
- }
-}
-void SuperEagle_16(const uae_u8 *srcPtr, uae_u32 srcPitch, uae_u8 *dstPtr, uae_u32 dstPitch, int width, int height) {
- const uae_u16 *bP;
- uae_u16 *dP;
- const uae_u32 nextlineSrc = srcPitch >> 1;
-
- while (height--) {
- int i;
- bP = (const uae_u16 *)srcPtr;
- dP = (uae_u16 *)dstPtr;
- for (i = 0; i < width; ++i) {
- uae_u32 color4, color5, color6;
- uae_u32 color1, color2, color3;
- uae_u32 colorA1, colorA2, colorB1, colorB2, colorS1, colorS2;
- uae_u32 product1a, product1b, product2a, product2b;
-
- colorB1 = *(bP - nextlineSrc);
- colorB2 = *(bP - nextlineSrc + 1);
-
- color4 = *(bP - 1);
- color5 = *(bP);
- color6 = *(bP + 1);
- colorS2 = *(bP + 2);
-
- color1 = *(bP + nextlineSrc - 1);
- color2 = *(bP + nextlineSrc);
- color3 = *(bP + nextlineSrc + 1);
- colorS1 = *(bP + nextlineSrc + 2);
-
- colorA1 = *(bP + 2 * nextlineSrc);
- colorA2 = *(bP + 2 * nextlineSrc + 1);
-
- // --------------------------------------
- if (color5 != color3)
- {
- if (color2 == color6)
- {
- product1b = product2a = color2;
- if ((color1 == color2) || (color6 == colorB2)) {
- product1a = INTERPOLATE(color2, color5);
- product1a = INTERPOLATE(color2, product1a);
- } else {
- product1a = INTERPOLATE(color5, color6);
- }
-
- if ((color6 == colorS2) || (color2 == colorA1)) {
- product2b = INTERPOLATE(color2, color3);
- product2b = INTERPOLATE(color2, product2b);
- } else {
- product2b = INTERPOLATE(color2, color3);
- }
- }
- else
- {
- product2b = product1a = INTERPOLATE(color2, color6);
- product2b = Q_INTERPOLATE(color3, color3, color3, product2b);
- product1a = Q_INTERPOLATE(color5, color5, color5, product1a);
-
- product2a = product1b = INTERPOLATE(color5, color3);
- product2a = Q_INTERPOLATE(color2, color2, color2, product2a);
- product1b = Q_INTERPOLATE(color6, color6, color6, product1b);
- }
- }
- else //if (color5 == color3)
- {
- if (color2 != color6)
- {
- product2b = product1a = color5;
-
- if ((colorB1 == color5) || (color3 == colorS1)) {
- product1b = INTERPOLATE(color5, color6);
- product1b = INTERPOLATE(color5, product1b);
- } else {
- product1b = INTERPOLATE(color5, color6);
- }
-
- if ((color3 == colorA2) || (color4 == color5)) {
- product2a = INTERPOLATE(color5, color2);
- product2a = INTERPOLATE(color5, product2a);
- } else {
- product2a = INTERPOLATE(color2, color3);
- }
- }
- else //if (color2 != color6)
- {
- int r = 0;
-
- r += GetResult(color6, color5, color1, colorA1);
- r += GetResult(color6, color5, color4, colorB1);
- r += GetResult(color6, color5, colorA2, colorS1);
- r += GetResult(color6, color5, colorB2, colorS2);
-
- if (r > 0) {
- product1b = product2a = color2;
- product1a = product2b = INTERPOLATE(color5, color6);
- } else if (r < 0) {
- product2b = product1a = color5;
- product1b = product2a = INTERPOLATE(color5, color6);
- } else {
- product2b = product1a = color5;
- product1b = product2a = color2;
- }
- }
- }
-
- *(dP + 0) = (uae_u16) product1a;
- *(dP + 1) = (uae_u16) product1b;
- *(dP + dstPitch/2 + 0) = (uae_u16) product2a;
- *(dP + dstPitch/2 + 1) = (uae_u16) product2b;
-
- bP += 1;
- dP += 2;
- }
-
- srcPtr += srcPitch;
- dstPtr += dstPitch * 2;
- }
-}
-
-void SuperEagle_32(const uae_u8 *srcPtr, uae_u32 srcPitch, uae_u8 *dstPtr, uae_u32 dstPitch, int width, int height) {
- const uae_u16 *bP;
- uae_u32 *dP;
- const uae_u32 nextlineSrc = srcPitch >> 1;
-
- while (height--) {
- int i;
- bP = (const uae_u16 *)srcPtr;
- dP = (uae_u32 *)dstPtr;
- for (i = 0; i < width; ++i) {
- uae_u32 color4, color5, color6;
- uae_u32 color1, color2, color3;
- uae_u32 colorA1, colorA2, colorB1, colorB2, colorS1, colorS2;
- uae_u32 product1a, product1b, product2a, product2b;
-
- colorB1 = *(bP - nextlineSrc);
- colorB2 = *(bP - nextlineSrc + 1);
-
- color4 = *(bP - 1);
- color5 = *(bP);
- color6 = *(bP + 1);
- colorS2 = *(bP + 2);
-
- color1 = *(bP + nextlineSrc - 1);
- color2 = *(bP + nextlineSrc);
- color3 = *(bP + nextlineSrc + 1);
- colorS1 = *(bP + nextlineSrc + 2);
-
- colorA1 = *(bP + 2 * nextlineSrc);
- colorA2 = *(bP + 2 * nextlineSrc + 1);
-
- // --------------------------------------
- if (color5 != color3)
- {
- if (color2 == color6)
- {
- product1b = product2a = color2;
- if ((color1 == color2) || (color6 == colorB2)) {
- product1a = INTERPOLATE(color2, color5);
- product1a = INTERPOLATE(color2, product1a);
- } else {
- product1a = INTERPOLATE(color5, color6);
- }
-
- if ((color6 == colorS2) || (color2 == colorA1)) {
- product2b = INTERPOLATE(color2, color3);
- product2b = INTERPOLATE(color2, product2b);
- } else {
- product2b = INTERPOLATE(color2, color3);
- }
- }
- else
- {
- product2b = product1a = INTERPOLATE(color2, color6);
- product2b = Q_INTERPOLATE(color3, color3, color3, product2b);
- product1a = Q_INTERPOLATE(color5, color5, color5, product1a);
-
- product2a = product1b = INTERPOLATE(color5, color3);
- product2a = Q_INTERPOLATE(color2, color2, color2, product2a);
- product1b = Q_INTERPOLATE(color6, color6, color6, product1b);
- }
- }
- else //if (color5 == color3)
- {
- if (color2 != color6)
- {
- product2b = product1a = color5;
-
- if ((colorB1 == color5) || (color3 == colorS1)) {
- product1b = INTERPOLATE(color5, color6);
- product1b = INTERPOLATE(color5, product1b);
- } else {
- product1b = INTERPOLATE(color5, color6);
- }
-
- if ((color3 == colorA2) || (color4 == color5)) {
- product2a = INTERPOLATE(color5, color2);
- product2a = INTERPOLATE(color5, product2a);
- } else {
- product2a = INTERPOLATE(color2, color3);
- }
- }
- else //if (color2 != color6)
- {
- int r = 0;
-
- r += GetResult(color6, color5, color1, colorA1);
- r += GetResult(color6, color5, color4, colorB1);
- r += GetResult(color6, color5, colorA2, colorS1);
- r += GetResult(color6, color5, colorB2, colorS2);
-
- if (r > 0) {
- product1b = product2a = color2;
- product1a = product2b = INTERPOLATE(color5, color6);
- } else if (r < 0) {
- product2b = product1a = color5;
- product1b = product2a = INTERPOLATE(color5, color6);
- } else {
- product2b = product1a = color5;
- product1b = product2a = color2;
- }
- }
- }
-
- *(dP + 0) = LUT16to32[(uae_u16) product1a];
- *(dP + 1) = LUT16to32[(uae_u16) product1b];
- *(dP + dstPitch/4 + 0) = LUT16to32[(uae_u16) product2a];
- *(dP + dstPitch/4 + 1) = LUT16to32[(uae_u16) product2b];
-
- bP += 1;
- dP += 2;
- }
-
- srcPtr += srcPitch;
- dstPtr += dstPitch * 2;
- }
-}
-void _2xSaI_16(const uae_u8 *srcPtr, uae_u32 srcPitch, uae_u8 *dstPtr, uae_u32 dstPitch, int width, int height) {
- const uae_u16 *bP;
- uae_u16 *dP;
- const uae_u32 nextlineSrc = srcPitch >> 1;
-
- while (height--) {
- int i;
- bP = (const uae_u16 *)srcPtr;
- dP = (uae_u16 *)dstPtr;
-
- for (i = 0; i < width; ++i) {
-
- uae_u32 colorA, colorB;
- uae_u32 colorC, colorD,
- colorE, colorF, colorG, colorH, colorI, colorJ, colorK, colorL, colorM, colorN, colorO, colorP;
- uae_u32 product, product1, product2;
-
- //---------------------------------------
- // Map of the pixels: I|E F|J
- // G|A B|K
- // H|C D|L
- // M|N O|P
- colorI = *(bP - nextlineSrc - 1);
- colorE = *(bP - nextlineSrc);
- colorF = *(bP - nextlineSrc + 1);
- colorJ = *(bP - nextlineSrc + 2);
-
- colorG = *(bP - 1);
- colorA = *(bP);
- colorB = *(bP + 1);
- colorK = *(bP + 2);
-
- colorH = *(bP + nextlineSrc - 1);
- colorC = *(bP + nextlineSrc);
- colorD = *(bP + nextlineSrc + 1);
- colorL = *(bP + nextlineSrc + 2);
-
- colorM = *(bP + 2 * nextlineSrc - 1);
- colorN = *(bP + 2 * nextlineSrc);
- colorO = *(bP + 2 * nextlineSrc + 1);
- colorP = *(bP + 2 * nextlineSrc + 2);
-
- if ((colorA == colorD) && (colorB != colorC)) {
- if (((colorA == colorE) && (colorB == colorL)) ||
- ((colorA == colorC) && (colorA == colorF) && (colorB != colorE) && (colorB == colorJ))) {
- product = colorA;
- } else {
- product = INTERPOLATE(colorA, colorB);
- }
-
- if (((colorA == colorG) && (colorC == colorO)) ||
- ((colorA == colorB) && (colorA == colorH) && (colorG != colorC) && (colorC == colorM))) {
- product1 = colorA;
- } else {
- product1 = INTERPOLATE(colorA, colorC);
- }
- product2 = colorA;
- } else if ((colorB == colorC) && (colorA != colorD)) {
- if (((colorB == colorF) && (colorA == colorH)) ||
- ((colorB == colorE) && (colorB == colorD) && (colorA != colorF) && (colorA == colorI))) {
- product = colorB;
- } else {
- product = INTERPOLATE(colorA, colorB);
- }
-
- if (((colorC == colorH) && (colorA == colorF)) ||
- ((colorC == colorG) && (colorC == colorD) && (colorA != colorH) && (colorA == colorI))) {
- product1 = colorC;
- } else {
- product1 = INTERPOLATE(colorA, colorC);
- }
- product2 = colorB;
- } else if ((colorA == colorD) && (colorB == colorC)) {
- if (colorA == colorB) {
- product = colorA;
- product1 = colorA;
- product2 = colorA;
- } else {
- int r = 0;
-
- product1 = INTERPOLATE(colorA, colorC);
- product = INTERPOLATE(colorA, colorB);
-
- r += GetResult(colorA, colorB, colorG, colorE);
- r -= GetResult(colorB, colorA, colorK, colorF);
- r -= GetResult(colorB, colorA, colorH, colorN);
- r += GetResult(colorA, colorB, colorL, colorO);
-
- if (r > 0)
- product2 = colorA;
- else if (r < 0)
- product2 = colorB;
- else {
- product2 = Q_INTERPOLATE(colorA, colorB, colorC, colorD);
- }
- }
- } else {
- product2 = Q_INTERPOLATE(colorA, colorB, colorC, colorD);
-
- if ((colorA == colorC) && (colorA == colorF)
- && (colorB != colorE) && (colorB == colorJ)) {
- product = colorA;
- } else if ((colorB == colorE) && (colorB == colorD)
- && (colorA != colorF) && (colorA == colorI)) {
- product = colorB;
- } else {
- product = INTERPOLATE(colorA, colorB);
- }
-
- if ((colorA == colorB) && (colorA == colorH)
- && (colorG != colorC) && (colorC == colorM)) {
- product1 = colorA;
- } else if ((colorC == colorG) && (colorC == colorD)
- && (colorA != colorH) && (colorA == colorI)) {
- product1 = colorC;
- } else {
- product1 = INTERPOLATE(colorA, colorC);
- }
- }
-
- *(dP + 0) = (uae_u16) colorA;
- *(dP + 1) = (uae_u16) product;
- *(dP + dstPitch/2 + 0) = (uae_u16) product1;
- *(dP + dstPitch/2 + 1) = (uae_u16) product2;
-
- bP += 1;
- dP += 2;
- }
-
- srcPtr += srcPitch;
- dstPtr += dstPitch * 2;
- }
-}
-
-void _2xSaI_32(const uae_u8 *srcPtr, uae_u32 srcPitch, uae_u8 *dstPtr, uae_u32 dstPitch, int width, int height) {
- const uae_u16 *bP;
- uae_u32 *dP;
- const uae_u32 nextlineSrc = srcPitch >> 1;
-
- while (height--) {
- int i;
- bP = (const uae_u16 *)srcPtr;
- dP = (uae_u32 *)dstPtr;
-
- for (i = 0; i < width; ++i) {
-
- uae_u32 colorA, colorB;
- uae_u32 colorC, colorD,
- colorE, colorF, colorG, colorH, colorI, colorJ, colorK, colorL, colorM, colorN, colorO, colorP;
- uae_u32 product, product1, product2;
-
- //---------------------------------------
- // Map of the pixels: I|E F|J
- // G|A B|K
- // H|C D|L
- // M|N O|P
- colorI = *(bP - nextlineSrc - 1);
- colorE = *(bP - nextlineSrc);
- colorF = *(bP - nextlineSrc + 1);
- colorJ = *(bP - nextlineSrc + 2);
-
- colorG = *(bP - 1);
- colorA = *(bP);
- colorB = *(bP + 1);
- colorK = *(bP + 2);
-
- colorH = *(bP + nextlineSrc - 1);
- colorC = *(bP + nextlineSrc);
- colorD = *(bP + nextlineSrc + 1);
- colorL = *(bP + nextlineSrc + 2);
-
- colorM = *(bP + 2 * nextlineSrc - 1);
- colorN = *(bP + 2 * nextlineSrc);
- colorO = *(bP + 2 * nextlineSrc + 1);
- colorP = *(bP + 2 * nextlineSrc + 2);
-
- if ((colorA == colorD) && (colorB != colorC)) {
- if (((colorA == colorE) && (colorB == colorL)) ||
- ((colorA == colorC) && (colorA == colorF) && (colorB != colorE) && (colorB == colorJ))) {
- product = colorA;
- } else {
- product = INTERPOLATE(colorA, colorB);
- }
-
- if (((colorA == colorG) && (colorC == colorO)) ||
- ((colorA == colorB) && (colorA == colorH) && (colorG != colorC) && (colorC == colorM))) {
- product1 = colorA;
- } else {
- product1 = INTERPOLATE(colorA, colorC);
- }
- product2 = colorA;
- } else if ((colorB == colorC) && (colorA != colorD)) {
- if (((colorB == colorF) && (colorA == colorH)) ||
- ((colorB == colorE) && (colorB == colorD) && (colorA != colorF) && (colorA == colorI))) {
- product = colorB;
- } else {
- product = INTERPOLATE(colorA, colorB);
- }
-
- if (((colorC == colorH) && (colorA == colorF)) ||
- ((colorC == colorG) && (colorC == colorD) && (colorA != colorH) && (colorA == colorI))) {
- product1 = colorC;
- } else {
- product1 = INTERPOLATE(colorA, colorC);
- }
- product2 = colorB;
- } else if ((colorA == colorD) && (colorB == colorC)) {
- if (colorA == colorB) {
- product = colorA;
- product1 = colorA;
- product2 = colorA;
- } else {
- int r = 0;
-
- product1 = INTERPOLATE(colorA, colorC);
- product = INTERPOLATE(colorA, colorB);
-
- r += GetResult(colorA, colorB, colorG, colorE);
- r -= GetResult(colorB, colorA, colorK, colorF);
- r -= GetResult(colorB, colorA, colorH, colorN);
- r += GetResult(colorA, colorB, colorL, colorO);
-
- if (r > 0)
- product2 = colorA;
- else if (r < 0)
- product2 = colorB;
- else {
- product2 = Q_INTERPOLATE(colorA, colorB, colorC, colorD);
- }
- }
- } else {
- product2 = Q_INTERPOLATE(colorA, colorB, colorC, colorD);
-
- if ((colorA == colorC) && (colorA == colorF)
- && (colorB != colorE) && (colorB == colorJ)) {
- product = colorA;
- } else if ((colorB == colorE) && (colorB == colorD)
- && (colorA != colorF) && (colorA == colorI)) {
- product = colorB;
- } else {
- product = INTERPOLATE(colorA, colorB);
- }
-
- if ((colorA == colorB) && (colorA == colorH)
- && (colorG != colorC) && (colorC == colorM)) {
- product1 = colorA;
- } else if ((colorC == colorG) && (colorC == colorD)
- && (colorA != colorH) && (colorA == colorI)) {
- product1 = colorC;
- } else {
- product1 = INTERPOLATE(colorA, colorC);
- }
- }
-
- *(dP + 0) = LUT16to32[(uae_u16) colorA];
- *(dP + 1) = LUT16to32[(uae_u16) product];
- *(dP + dstPitch/4 + 0) = LUT16to32[(uae_u16) product1];
- *(dP + dstPitch/4 + 1) = LUT16to32[(uae_u16) product2];
-
- bP += 1;
- dP += 2;
- }
-
- srcPtr += srcPitch;
- dstPtr += dstPitch * 2;
- }
-}
-
-/*
-* This file is part of the Advance project.
-*
-* Copyright (C) 1999-2002 Andrea Mazzoleni
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; either version 2 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-/*
-* This file contains a C and MMX implentation of the Scale2x effect.
-*
-* You can found an high level description of the effect at :
-*
-* http://scale2x.sourceforge.net/scale2x.html
-*
-* Alternatively at the previous license terms, you are allowed to use this
-* code in your program with these conditions:
-* - the program is not used in commercial activities.
-* - the whole source code of the program is released with the binary.
-* - derivative works of the program are allowed.
-*/
-
-#define MMX
-
-/* Suggested in "Intel Optimization" for Pentium II */
-#define ASM_JUMP_ALIGN ".p2align 4\n"
-
-static void internal_scale2x_16_def(u16 *dst0, u16* dst1, const u16* src0, const u16* src1, const u16* src2, unsigned count) {
- /* first pixel */
- dst0[0] = src1[0];
- dst1[0] = src1[0];
- if (src1[1] == src0[0] && src2[0] != src0[0])
- dst0[1] =src0[0];
- else
- dst0[1] =src1[0];
- if (src1[1] == src2[0] && src0[0] != src2[0])
- dst1[1] =src2[0];
- else
- dst1[1] =src1[0];
- ++src0;
- ++src1;
- ++src2;
- dst0 += 2;
- dst1 += 2;
-
- /* central pixels */
- count -= 2;
- while (count) {
- if (src1[-1] == src0[0] && src2[0] != src0[0] && src1[1] != src0[0])
- dst0[0] = src0[0];
- else
- dst0[0] = src1[0];
- if (src1[1] == src0[0] && src2[0] != src0[0] && src1[-1] != src0[0])
- dst0[1] =src0[0];
- else
- dst0[1] =src1[0];
-
- if (src1[-1] == src2[0] && src0[0] != src2[0] && src1[1] != src2[0])
- dst1[0] =src2[0];
- else
- dst1[0] =src1[0];
- if (src1[1] == src2[0] && src0[0] != src2[0] && src1[-1] != src2[0])
- dst1[1] =src2[0];
- else
- dst1[1] =src1[0];
-
- ++src0;
- ++src1;
- ++src2;
- dst0 += 2;
- dst1 += 2;
- --count;
- }
-
- /* last pixel */
- if (src1[-1] == src0[0] && src2[0] != src0[0])
- dst0[0] =src0[0];
- else
- dst0[0] =src1[0];
- if (src1[-1] == src2[0] && src0[0] != src2[0])
- dst1[0] =src2[0];
- else
- dst1[0] =src1[0];
- dst0[1] =src1[0];
- dst1[1] =src1[0];
-}
-
-static void internal_scale2x_32_def(u32* dst0,
- u32* dst1,
- const u32* src0,
- const u32* src1,
- const u32* src2,
- unsigned count) {
- /* first pixel */
- dst0[0] = src1[0];
- dst1[0] = src1[0];
- if (src1[1] == src0[0] && src2[0] != src0[0])
- dst0[1] = src0[0];
- else
- dst0[1] = src1[0];
- if (src1[1] == src2[0] && src0[0] != src2[0])
- dst1[1] = src2[0];
- else
- dst1[1] = src1[0];
- ++src0;
- ++src1;
- ++src2;
- dst0 += 2;
- dst1 += 2;
-
- /* central pixels */
- count -= 2;
- while (count) {
- if (src1[-1] == src0[0] && src2[0] != src0[0] && src1[1] != src0[0])
- dst0[0] = src0[0];
- else
- dst0[0] = src1[0];
- if (src1[1] == src0[0] && src2[0] != src0[0] && src1[-1] != src0[0])
- dst0[1] = src0[0];
- else
- dst0[1] = src1[0];
-
- if (src1[-1] == src2[0] && src0[0] != src2[0] && src1[1] != src2[0])
- dst1[0] = src2[0];
- else
- dst1[0] = src1[0];
- if (src1[1] == src2[0] && src0[0] != src2[0] && src1[-1] != src2[0])
- dst1[1] = src2[0];
- else
- dst1[1] = src1[0];
-
- ++src0;
- ++src1;
- ++src2;
- dst0 += 2;
- dst1 += 2;
- --count;
- }
-
- /* last pixel */
- if (src1[-1] == src0[0] && src2[0] != src0[0])
- dst0[0] = src0[0];
- else
- dst0[0] = src1[0];
- if (src1[-1] == src2[0] && src0[0] != src2[0])
- dst1[0] = src2[0];
- else
- dst1[0] = src1[0];
- dst0[1] = src1[0];
- dst1[1] = src1[0];
-}
-
-#if defined(MMX) && (defined(X86_ASSEMBLY) || defined(X86_MSVC_ASSEMBLY))
-static void internal_scale2x_16_mmx_single(u16* dst, const u16* src0, const u16* src1, const u16* src2, unsigned count) {
- /* always do the first and last run */
- count -= 2*4;
-
-#ifdef __GNUC__
- __asm__ __volatile__(
- /* first run */
- /* set the current, current_pre, current_next registers */
- "pxor %%mm0,%%mm0\n" /* use a fake black out of screen */
- "movq 0(%1),%%mm7\n"
- "movq 8(%1),%%mm1\n"
- "psrlq $48,%%mm0\n"
- "psllq $48,%%mm1\n"
- "movq %%mm7,%%mm2\n"
- "movq %%mm7,%%mm3\n"
- "psllq $16,%%mm2\n"
- "psrlq $16,%%mm3\n"
- "por %%mm2,%%mm0\n"
- "por %%mm3,%%mm1\n"
-
- /* current_upper */
- "movq (%0),%%mm6\n"
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "movq %%mm0,%%mm3\n"
- "movq %%mm1,%%mm5\n"
- "pcmpeqw %%mm6,%%mm2\n"
- "pcmpeqw %%mm6,%%mm4\n"
- "pcmpeqw (%2),%%mm3\n"
- "pcmpeqw (%2),%%mm5\n"
- "pandn %%mm2,%%mm3\n"
- "pandn %%mm4,%%mm5\n"
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "pcmpeqw %%mm1,%%mm2\n"
- "pcmpeqw %%mm0,%%mm4\n"
- "pandn %%mm3,%%mm2\n"
- "pandn %%mm5,%%mm4\n"
- "movq %%mm2,%%mm3\n"
- "movq %%mm4,%%mm5\n"
- "pand %%mm6,%%mm2\n"
- "pand %%mm6,%%mm4\n"
- "pandn %%mm7,%%mm3\n"
- "pandn %%mm7,%%mm5\n"
- "por %%mm3,%%mm2\n"
- "por %%mm5,%%mm4\n"
-
- /* set *dst0 */
- "movq %%mm2,%%mm3\n"
- "punpcklwd %%mm4,%%mm2\n"
- "punpckhwd %%mm4,%%mm3\n"
- "movq %%mm2,(%3)\n"
- "movq %%mm3,8(%3)\n"
-
- /* next */
- "addl $8,%0\n"
- "addl $8,%1\n"
- "addl $8,%2\n"
- "addl $16,%3\n"
-
- /* central runs */
- "shrl $2,%4\n"
- "jz 1f\n"
- ASM_JUMP_ALIGN
- "0:\n"
-
- /* set the current, current_pre, current_next registers */
- "movq -8(%1),%%mm0\n"
- "movq (%1),%%mm7\n"
- "movq 8(%1),%%mm1\n"
- "psrlq $48,%%mm0\n"
- "psllq $48,%%mm1\n"
- "movq %%mm7,%%mm2\n"
- "movq %%mm7,%%mm3\n"
- "psllq $16,%%mm2\n"
- "psrlq $16,%%mm3\n"
- "por %%mm2,%%mm0\n"
- "por %%mm3,%%mm1\n"
-
- /* current_upper */
- "movq (%0),%%mm6\n"
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "movq %%mm0,%%mm3\n"
- "movq %%mm1,%%mm5\n"
- "pcmpeqw %%mm6,%%mm2\n"
- "pcmpeqw %%mm6,%%mm4\n"
- "pcmpeqw (%2),%%mm3\n"
- "pcmpeqw (%2),%%mm5\n"
- "pandn %%mm2,%%mm3\n"
- "pandn %%mm4,%%mm5\n"
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "pcmpeqw %%mm1,%%mm2\n"
- "pcmpeqw %%mm0,%%mm4\n"
- "pandn %%mm3,%%mm2\n"
- "pandn %%mm5,%%mm4\n"
- "movq %%mm2,%%mm3\n"
- "movq %%mm4,%%mm5\n"
- "pand %%mm6,%%mm2\n"
- "pand %%mm6,%%mm4\n"
- "pandn %%mm7,%%mm3\n"
- "pandn %%mm7,%%mm5\n"
- "por %%mm3,%%mm2\n"
- "por %%mm5,%%mm4\n"
-
- /* set *dst0 */
- "movq %%mm2,%%mm3\n"
- "punpcklwd %%mm4,%%mm2\n"
- "punpckhwd %%mm4,%%mm3\n"
- "movq %%mm2,(%3)\n"
- "movq %%mm3,8(%3)\n"
-
- /* next */
- "addl $8,%0\n"
- "addl $8,%1\n"
- "addl $8,%2\n"
- "addl $16,%3\n"
-
- "decl %4\n"
- "jnz 0b\n"
- "1:\n"
-
- /* final run */
- /* set the current, current_pre, current_next registers */
- "movq -8(%1),%%mm0\n"
- "movq (%1),%%mm7\n"
- "pxor %%mm1,%%mm1\n" /* use a fake black out of screen */
- "psrlq $48,%%mm0\n"
- "psllq $48,%%mm1\n"
- "movq %%mm7,%%mm2\n"
- "movq %%mm7,%%mm3\n"
- "psllq $16,%%mm2\n"
- "psrlq $16,%%mm3\n"
- "por %%mm2,%%mm0\n"
- "por %%mm3,%%mm1\n"
-
- /* current_upper */
- "movq (%0),%%mm6\n"
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "movq %%mm0,%%mm3\n"
- "movq %%mm1,%%mm5\n"
- "pcmpeqw %%mm6,%%mm2\n"
- "pcmpeqw %%mm6,%%mm4\n"
- "pcmpeqw (%2),%%mm3\n"
- "pcmpeqw (%2),%%mm5\n"
- "pandn %%mm2,%%mm3\n"
- "pandn %%mm4,%%mm5\n"
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "pcmpeqw %%mm1,%%mm2\n"
- "pcmpeqw %%mm0,%%mm4\n"
- "pandn %%mm3,%%mm2\n"
- "pandn %%mm5,%%mm4\n"
- "movq %%mm2,%%mm3\n"
- "movq %%mm4,%%mm5\n"
- "pand %%mm6,%%mm2\n"
- "pand %%mm6,%%mm4\n"
- "pandn %%mm7,%%mm3\n"
- "pandn %%mm7,%%mm5\n"
- "por %%mm3,%%mm2\n"
- "por %%mm5,%%mm4\n"
-
- /* set *dst0 */
- "movq %%mm2,%%mm3\n"
- "punpcklwd %%mm4,%%mm2\n"
- "punpckhwd %%mm4,%%mm3\n"
- "movq %%mm2,(%3)\n"
- "movq %%mm3,8(%3)\n"
- "emms\n"
-
- : "+r" (src0), "+r" (src1), "+r" (src2), "+r" (dst), "+r" (count)
- :
- : "cc"
- );
-#else
- __asm {
- mov eax, src0;
- mov ebx, src1;
- mov ecx, src2;
- mov edx, dst;
- mov esi, count;
-
- /* first run */
- /* set the current, current_pre, current_next registers */
- pxor mm0,mm0; /* use a fake black out of screen */
- movq mm7, qword ptr [ebx];
- movq mm1, qword ptr [ebx + 8];
- psrlq mm0, 48;
- psllq mm1, 48;
- movq mm2, mm7;
- movq mm3, mm7;
- psllq mm2, 16;
- psrlq mm3, 16;
- por mm0, mm2;
- por mm1, mm3;
-
- /* current_upper */
- movq mm6, qword ptr [eax];
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- movq mm2, mm0;
- movq mm4, mm1;
- movq mm3, mm0;
- movq mm5, mm1;
- pcmpeqw mm2, mm6;
- pcmpeqw mm4, mm6;
- pcmpeqw mm3, qword ptr [ecx];
- pcmpeqw mm5, qword ptr [ecx];
- pandn mm3,mm2;
- pandn mm5,mm4;
- movq mm2,mm0;
- movq mm4,mm1;
- pcmpeqw mm2,mm1;
- pcmpeqw mm4,mm0;
- pandn mm2,mm3;
- pandn mm4,mm5;
- movq mm3,mm2;
- movq mm5,mm4;
- pand mm2,mm6;
- pand mm4,mm6;
- pandn mm3,mm7;
- pandn mm5,mm7;
- por mm2,mm3;
- por mm4,mm5;
-
- /* set *dst0 */
- movq mm3,mm2;
- punpcklwd mm2,mm4;
- punpckhwd mm3,mm4;
- movq qword ptr [edx], mm2;
- movq qword ptr [edx + 8], mm3;
-
- /* next */
- add eax, 8;
- add ebx, 8;
- add ecx, 8;
- add edx, 16;
-
- /* central runs */
- shr esi, 2;
- jz label1;
- align 4;
-label0:
-
- /* set the current, current_pre, current_next registers */
- movq mm0, qword ptr [ebx-8];
- movq mm7, qword ptr [ebx];
- movq mm1, qword ptr [ebx+8];
- psrlq mm0,48;
- psllq mm1,48;
- movq mm2,mm7;
- movq mm3,mm7;
- psllq mm2,16;
- psrlq mm3,16;
- por mm0,mm2;
- por mm1,mm3;
-
- /* current_upper */
- movq mm6, qword ptr [eax];
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- movq mm2,mm0;
- movq mm4,mm1;
- movq mm3,mm0;
- movq mm5,mm1;
- pcmpeqw mm2,mm6;
- pcmpeqw mm4,mm6;
- pcmpeqw mm3, qword ptr [ecx];
- pcmpeqw mm5, qword ptr [ecx];
- pandn mm3,mm2;
- pandn mm5,mm4;
- movq mm2,mm0;
- movq mm4,mm1;
- pcmpeqw mm2,mm1;
- pcmpeqw mm4,mm0;
- pandn mm2,mm3;
- pandn mm4,mm5;
- movq mm3,mm2;
- movq mm5,mm4;
- pand mm2,mm6;
- pand mm4,mm6;
- pandn mm3,mm7;
- pandn mm5,mm7;
- por mm2,mm3;
- por mm4,mm5;
-
- /* set *dst0 */
- movq mm3,mm2;
- punpcklwd mm2,mm4;
- punpckhwd mm3,mm4;
- movq qword ptr [edx], mm2;
- movq qword ptr [edx+8], mm3;
-
- /* next */
- add eax,8;
- add ebx,8;
- add ecx,8;
- add edx,16;
-
- dec esi;
- jnz label0;
-label1:
-
- /* final run */
- /* set the current, current_pre, current_next registers */
- movq mm0, qword ptr [ebx-8];
- movq mm7, qword ptr [ebx];
- pxor mm1,mm1; /* use a fake black out of screen */
- psrlq mm0,48;
- psllq mm1,48;
- movq mm2,mm7;
- movq mm3,mm7;
- psllq mm2,16;
- psrlq mm3,16;
- por mm0,mm2;
- por mm1,mm3;
-
- /* current_upper */
- movq mm6, qword ptr [eax];
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- movq mm2,mm0;
- movq mm4,mm1;
- movq mm3,mm0;
- movq mm5,mm1;
- pcmpeqw mm2,mm6;
- pcmpeqw mm4,mm6;
- pcmpeqw mm3, qword ptr [ecx];
- pcmpeqw mm5, qword ptr [ecx];
- pandn mm3,mm2;
- pandn mm5,mm4;
- movq mm2,mm0;
- movq mm4,mm1;
- pcmpeqw mm2,mm1;
- pcmpeqw mm4,mm0;
- pandn mm2,mm3;
- pandn mm4,mm5;
- movq mm3,mm2;
- movq mm5,mm4;
- pand mm2,mm6;
- pand mm4,mm6;
- pandn mm3,mm7;
- pandn mm5,mm7;
- por mm2,mm3;
- por mm4,mm5;
-
- /* set *dst0 */
- movq mm3,mm2;
- punpcklwd mm2,mm4;
- punpckhwd mm3,mm4;
- movq qword ptr [edx], mm2;
- movq qword ptr [edx+8], mm3;
-
- mov src0, eax;
- mov src1, ebx;
- mov src2, ecx;
- mov dst, edx;
- mov count, esi;
-
- emms;
- }
-#endif
-}
-
-static void internal_scale2x_32_mmx_single(u32* dst, const u32* src0, const u32* src1, const u32* src2, unsigned count) {
- /* always do the first and last run */
- count -= 2*2;
-
-#ifdef __GNUC__
- __asm__ __volatile__(
- /* first run */
- /* set the current, current_pre, current_next registers */
- "pxor %%mm0,%%mm0\n" /* use a fake black out of screen */
- "movq 0(%1),%%mm7\n"
- "movq 8(%1),%%mm1\n"
- "psrlq $32,%%mm0\n"
- "psllq $32,%%mm1\n"
- "movq %%mm7,%%mm2\n"
- "movq %%mm7,%%mm3\n"
- "psllq $32,%%mm2\n"
- "psrlq $32,%%mm3\n"
- "por %%mm2,%%mm0\n"
- "por %%mm3,%%mm1\n"
-
- /* current_upper */
- "movq (%0),%%mm6\n"
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "movq %%mm0,%%mm3\n"
- "movq %%mm1,%%mm5\n"
- "pcmpeqd %%mm6,%%mm2\n"
- "pcmpeqd %%mm6,%%mm4\n"
- "pcmpeqd (%2),%%mm3\n"
- "pcmpeqd (%2),%%mm5\n"
- "pandn %%mm2,%%mm3\n"
- "pandn %%mm4,%%mm5\n"
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "pcmpeqd %%mm1,%%mm2\n"
- "pcmpeqd %%mm0,%%mm4\n"
- "pandn %%mm3,%%mm2\n"
- "pandn %%mm5,%%mm4\n"
- "movq %%mm2,%%mm3\n"
- "movq %%mm4,%%mm5\n"
- "pand %%mm6,%%mm2\n"
- "pand %%mm6,%%mm4\n"
- "pandn %%mm7,%%mm3\n"
- "pandn %%mm7,%%mm5\n"
- "por %%mm3,%%mm2\n"
- "por %%mm5,%%mm4\n"
-
- /* set *dst0 */
- "movq %%mm2,%%mm3\n"
- "punpckldq %%mm4,%%mm2\n"
- "punpckhdq %%mm4,%%mm3\n"
- "movq %%mm2,(%3)\n"
- "movq %%mm3,8(%3)\n"
-
- /* next */
- "addl $8,%0\n"
- "addl $8,%1\n"
- "addl $8,%2\n"
- "addl $16,%3\n"
-
- /* central runs */
- "shrl $1,%4\n"
- "jz 1f\n"
- ASM_JUMP_ALIGN
- "0:\n"
-
- /* set the current, current_pre, current_next registers */
- "movq -8(%1),%%mm0\n"
- "movq (%1),%%mm7\n"
- "movq 8(%1),%%mm1\n"
- "psrlq $32,%%mm0\n"
- "psllq $32,%%mm1\n"
- "movq %%mm7,%%mm2\n"
- "movq %%mm7,%%mm3\n"
- "psllq $32,%%mm2\n"
- "psrlq $32,%%mm3\n"
- "por %%mm2,%%mm0\n"
- "por %%mm3,%%mm1\n"
-
- /* current_upper */
- "movq (%0),%%mm6\n"
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "movq %%mm0,%%mm3\n"
- "movq %%mm1,%%mm5\n"
- "pcmpeqd %%mm6,%%mm2\n"
- "pcmpeqd %%mm6,%%mm4\n"
- "pcmpeqd (%2),%%mm3\n"
- "pcmpeqd (%2),%%mm5\n"
- "pandn %%mm2,%%mm3\n"
- "pandn %%mm4,%%mm5\n"
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "pcmpeqd %%mm1,%%mm2\n"
- "pcmpeqd %%mm0,%%mm4\n"
- "pandn %%mm3,%%mm2\n"
- "pandn %%mm5,%%mm4\n"
- "movq %%mm2,%%mm3\n"
- "movq %%mm4,%%mm5\n"
- "pand %%mm6,%%mm2\n"
- "pand %%mm6,%%mm4\n"
- "pandn %%mm7,%%mm3\n"
- "pandn %%mm7,%%mm5\n"
- "por %%mm3,%%mm2\n"
- "por %%mm5,%%mm4\n"
-
- /* set *dst0 */
- "movq %%mm2,%%mm3\n"
- "punpckldq %%mm4,%%mm2\n"
- "punpckhdq %%mm4,%%mm3\n"
- "movq %%mm2,(%3)\n"
- "movq %%mm3,8(%3)\n"
-
- /* next */
- "addl $8,%0\n"
- "addl $8,%1\n"
- "addl $8,%2\n"
- "addl $16,%3\n"
-
- "decl %4\n"
- "jnz 0b\n"
- "1:\n"
-
- /* final run */
- /* set the current, current_pre, current_next registers */
- "movq -8(%1),%%mm0\n"
- "movq (%1),%%mm7\n"
- "pxor %%mm1,%%mm1\n" /* use a fake black out of screen */
- "psrlq $32,%%mm0\n"
- "psllq $32,%%mm1\n"
- "movq %%mm7,%%mm2\n"
- "movq %%mm7,%%mm3\n"
- "psllq $32,%%mm2\n"
- "psrlq $32,%%mm3\n"
- "por %%mm2,%%mm0\n"
- "por %%mm3,%%mm1\n"
-
- /* current_upper */
- "movq (%0),%%mm6\n"
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "movq %%mm0,%%mm3\n"
- "movq %%mm1,%%mm5\n"
- "pcmpeqd %%mm6,%%mm2\n"
- "pcmpeqd %%mm6,%%mm4\n"
- "pcmpeqd (%2),%%mm3\n"
- "pcmpeqd (%2),%%mm5\n"
- "pandn %%mm2,%%mm3\n"
- "pandn %%mm4,%%mm5\n"
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "pcmpeqd %%mm1,%%mm2\n"
- "pcmpeqd %%mm0,%%mm4\n"
- "pandn %%mm3,%%mm2\n"
- "pandn %%mm5,%%mm4\n"
- "movq %%mm2,%%mm3\n"
- "movq %%mm4,%%mm5\n"
- "pand %%mm6,%%mm2\n"
- "pand %%mm6,%%mm4\n"
- "pandn %%mm7,%%mm3\n"
- "pandn %%mm7,%%mm5\n"
- "por %%mm3,%%mm2\n"
- "por %%mm5,%%mm4\n"
-
- /* set *dst0 */
- "movq %%mm2,%%mm3\n"
- "punpckldq %%mm4,%%mm2\n"
- "punpckhdq %%mm4,%%mm3\n"
- "movq %%mm2,(%3)\n"
- "movq %%mm3,8(%3)\n"
- "emms\n"
-
- : "+r" (src0), "+r" (src1), "+r" (src2), "+r" (dst), "+r" (count)
- :
- : "cc"
- );
-#else
- __asm {
- mov eax, src0;
- mov ebx, src1;
- mov ecx, src2;
- mov edx, dst;
- mov esi, count;
-
- /* first run */
- /* set the current, current_pre, current_next registers */
- pxor mm0,mm0;
- movq mm7,qword ptr [ebx];
- movq mm1,qword ptr [ebx + 8];
- psrlq mm0,32;
- psllq mm1,32;
- movq mm2,mm7;
- movq mm3,mm7;
- psllq mm2,32;
- psrlq mm3,32;
- por mm0,mm2;
- por mm1,mm3;
-
- /* current_upper */
- movq mm6,qword ptr [eax];
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- movq mm2,mm0;
- movq mm4,mm1;
- movq mm3,mm0;
- movq mm5,mm1;
- pcmpeqd mm2,mm6;
- pcmpeqd mm4,mm6;
- pcmpeqd mm3,qword ptr [ecx];
- pcmpeqd mm5,qword ptr [ecx];
- pandn mm3,mm2;
- pandn mm5,mm4;
- movq mm2,mm0;
- movq mm4,mm1;
- pcmpeqd mm2,mm1;
- pcmpeqd mm4,mm0;
- pandn mm2,mm3;
- pandn mm4,mm5;
- movq mm3,mm2;
- movq mm5,mm4;
- pand mm2,mm6;
- pand mm4,mm6;
- pandn mm3,mm7;
- pandn mm5,mm7;
- por mm2,mm3;
- por mm4,mm5;
-
- /* set *dst0 */
- movq mm3,mm2;
- punpckldq mm2,mm4;
- punpckhdq mm3,mm4;
- movq qword ptr [edx],mm2;
- movq qword ptr [edx+8],mm3;
-
- /* next */
- add eax,8;
- add ebx,8;
- add ecx,8;
- add edx,16;
-
- /* central runs */
- shr esi,1;
- jz label1;
-label0:
-
- /* set the current, current_pre, current_next registers */
- movq mm0,qword ptr [ebx-8];
- movq mm7,qword ptr [ebx];
- movq mm1,qword ptr [ebx+8];
- psrlq mm0,32;
- psllq mm1,32;
- movq mm2,mm7;
- movq mm3,mm7;
- psllq mm2,32;
- psrlq mm3,32;
- por mm0,mm2;
- por mm1,mm3;
-
- /* current_upper */
- movq mm6,qword ptr[eax];
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- movq mm2,mm0;
- movq mm4,mm1;
- movq mm3,mm0;
- movq mm5,mm1;
- pcmpeqd mm2,mm6;
- pcmpeqd mm4,mm6;
- pcmpeqd mm3,qword ptr[ecx];
- pcmpeqd mm5,qword ptr[ecx];
- pandn mm3,mm2;
- pandn mm5,mm4;
- movq mm2,mm0;
- movq mm4,mm1;
- pcmpeqd mm2,mm1;
- pcmpeqd mm4,mm0;
- pandn mm2,mm3;
- pandn mm4,mm5;
- movq mm3,mm2;
- movq mm5,mm4;
- pand mm2,mm6;
- pand mm4,mm6;
- pandn mm3,mm7;
- pandn mm5,mm7;
- por mm2,mm3;
- por mm4,mm5;
-
- /* set *dst0 */
- movq mm3,mm2;
- punpckldq mm2,mm4;
- punpckhdq mm3,mm4;
- movq qword ptr [edx],mm2;
- movq qword ptr [edx+8],mm3;
-
- /* next */
- add eax,8;
- add ebx,8;
- add ecx,8;
- add edx,16;
-
- dec esi;
- jnz label0;
-label1:
-
- /* final run */
- /* set the current, current_pre, current_next registers */
- movq mm0,qword ptr [ebx-8];
- movq mm7,qword ptr [ebx];
- pxor mm1,mm1;
- psrlq mm0,32;
- psllq mm1,32;
- movq mm2,mm7;
- movq mm3,mm7;
- psllq mm2,32;
- psrlq mm3,32;
- por mm0,mm2;
- por mm1,mm3;
-
- /* current_upper */
- movq mm6,qword ptr [eax];
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- movq mm2,mm0;
- movq mm4,mm1;
- movq mm3,mm0;
- movq mm5,mm1;
- pcmpeqd mm2,mm6;
- pcmpeqd mm4,mm6;
- pcmpeqd mm3,qword ptr [ecx];
- pcmpeqd mm5,qword ptr [ecx];
- pandn mm3,mm2;
- pandn mm5,mm4;
- movq mm2,mm0;
- movq mm4,mm1;
- pcmpeqd mm2,mm1;
- pcmpeqd mm4,mm0;
- pandn mm2,mm3;
- pandn mm4,mm5;
- movq mm3,mm2;
- movq mm5,mm4;
- pand mm2,mm6;
- pand mm4,mm6;
- pandn mm3,mm7;
- pandn mm5,mm7;
- por mm2,mm3;
- por mm4,mm5;
-
- /* set *dst0 */
- movq mm3,mm2;
- punpckldq mm2,mm4;
- punpckhdq mm3,mm4;
- movq qword ptr [edx],mm2;
- movq qword ptr [edx+8],mm3;
-
- mov src0, eax;
- mov src1, ebx;
- mov src2, ecx;
- mov dst, edx;
- mov count, esi;
-
- emms;
- }
-#endif
-}
-
-static void internal_scale2x_16_mmx(u16* dst0, u16* dst1, const u16* src0, const u16* src1, const u16* src2, unsigned count) {
- // assert( count >= 2*4 );
- internal_scale2x_16_mmx_single(dst0, src0, src1, src2, count);
- internal_scale2x_16_mmx_single(dst1, src2, src1, src0, count);
-}
-
-static void internal_scale2x_32_mmx(u32* dst0, u32* dst1, const u32* src0, const u32* src1, const u32* src2, unsigned count) {
- // assert( count >= 2*2 );
- internal_scale2x_32_mmx_single(dst0, src0, src1, src2, count);
- internal_scale2x_32_mmx_single(dst1, src2, src1, src0, count);
-}
-#endif
-
-void AdMame2x(u8 *srcPtr, u32 srcPitch, /* u8 deltaPtr, */
- u8 *dstPtr, u32 dstPitch, int width, int height)
-{
- u16 *dst0 = (u16 *)dstPtr;
- u16 *dst1 = dst0 + (dstPitch/2);
-
- u16 *src0 = (u16 *)srcPtr;
- u16 *src1 = src0 + (srcPitch/2);
- u16 *src2 = src1 + (srcPitch/2);
-#if defined(MMX) && (defined(X86_ASSEMBLY) || defined(X86_MSVC_ASSEMBLY))
- if(cpu_mmx) {
- internal_scale2x_16_mmx(dst0, dst1, src0, src0, src1, width);
-
- {
- int count = height;
-
- count -= 2;
- while(count) {
- dst0 += dstPitch;
- dst1 += dstPitch;
- internal_scale2x_16_mmx(dst0, dst1, src0, src1, src2, width);
- src0 = src1;
- src1 = src2;
- src2 += srcPitch/2;
- --count;
- }
- }
- dst0 += dstPitch;
- dst1 += dstPitch;
- internal_scale2x_16_mmx(dst0, dst1, src0, src1, src1, width);
- } else {
-#endif
- internal_scale2x_16_def(dst0, dst1, src0, src0, src1, width);
-
- {
- int count = height;
-
- count -= 2;
- while(count) {
- dst0 += dstPitch;
- dst1 += dstPitch;
- internal_scale2x_16_def(dst0, dst1, src0, src1, src2, width);
- src0 = src1;
- src1 = src2;
- src2 += srcPitch/2;
- --count;
- }
- }
- dst0 += dstPitch;
- dst1 += dstPitch;
- internal_scale2x_16_def(dst0, dst1, src0, src1, src1, width);
-#if defined(MMX) && (defined(X86_ASSEMBLY) || defined(X86_MSVC_ASSEMBLY))
- }
-#endif
-}
-
-void AdMame2x32(u8 *srcPtr, u32 srcPitch, /* u8 deltaPtr, */
- u8 *dstPtr, u32 dstPitch, int width, int height)
-{
- u32 *dst0 = (u32 *)dstPtr;
- u32 *dst1 = dst0 + (dstPitch/4);
-
- u32 *src0 = (u32 *)srcPtr;
- u32 *src1 = src0 + (srcPitch/4);
- u32 *src2 = src1 + (srcPitch/4);
-#if defined(MMX) && (defined(X86_ASSEMBLY) || defined(X86_MSVC_ASSEMBLY))
- if(cpu_mmx) {
- internal_scale2x_32_mmx(dst0, dst1, src0, src0, src1, width);
-
- {
- int count = height;
-
- count -= 2;
- while(count) {
- dst0 += dstPitch/2;
- dst1 += dstPitch/2;
- internal_scale2x_32_mmx(dst0, dst1, src0, src1, src2, width);
- src0 = src1;
- src1 = src2;
- src2 += srcPitch/4;
- --count;
- }
- }
- dst0 += dstPitch/2;
- dst1 += dstPitch/2;
- internal_scale2x_32_mmx(dst0, dst1, src0, src1, src1, width);
- } else {
-#endif
- internal_scale2x_32_def(dst0, dst1, src0, src0, src1, width);
- {
- int count = height;
-
- count -= 2;
- while(count) {
- dst0 += dstPitch/2;
- dst1 += dstPitch/2;
- internal_scale2x_32_def(dst0, dst1, src0, src1, src2, width);
- src0 = src1;
- src1 = src2;
- src2 += srcPitch/4;
- --count;
- }
- }
- dst0 += dstPitch/2;
- dst1 += dstPitch/2;
- internal_scale2x_32_def(dst0, dst1, src0, src1, src1, width);
-#if defined(MMX) && (defined(X86_ASSEMBLY) || defined(X86_MSVC_ASSEMBLY))
- }
-#endif
-}
-
-
-
-#define swap16(x) (((x >> 24) & 0x000000ff) | ((x >> 8) & 0x0000ff00) | ((x << 8) & 0x00ff0000) | ((x << 16) & 0xff000000))
-
-void hq_init (int rb, int gb, int bb, int rs, int gs, int bs)
-{
- int i, j, k, r, g, b, Y, u, v;
- int rmask, gmask, bmask;
-
- rmask = ((1 << rb) - 1) << rs;
- gmask = ((1 << gb) - 1) << gs;
- bmask = ((1 << bb) - 1) << bs;
-
- for (i=0; i<65536; i++)
- LUT16to32[i] = ((i & 0xF800) << 8) + ((i & 0x07E0) << 5) + ((i & 0x001F) << 3);
-
- for (i=0; i<32; i++) {
- for (j=0; j<64; j++) {
- for (k=0; k<32; k++) {
- r = i << 3;
- g = j << 2;
- b = k << 3;
- Y = (r + g + b) >> 2;
- u = 128 + ((r - b) >> 2);
- v = 128 + ((-r + 2*g -b)>>3);
- RGBtoYUV[ (i << 11) + (j << 5) + k ] = (Y<<16) + (u<<8) + v;
- }
- }
- }
-}
-
-}
+++ /dev/null
-/* This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-/* Scaler (except Scale2x) code borrowed from ScummVM project */
-
-#include "filter.h"
-
-static uint32 colorMask;
-static uint32 lowPixelMask;
-static uint32 qcolorMask;
-static uint32 qlowpixelMask;
-static uint32 redblueMask;
-static uint32 redMask;
-static uint32 greenMask;
-static uint32 blueMask;
-
-int Init_2xSaI (int rb, int gb, int bb, int rs, int gs, int bs)
-{
- if (rb + gb + bb == 16) {
- colorMask = 0xF7DEF7DE;
- lowPixelMask = 0x08210821;
- qcolorMask = 0xE79CE79C;
- qlowpixelMask = 0x18631863;
- redblueMask = 0xF81F;
- redMask = 0xF800;
- greenMask = 0x07E0;
- blueMask = 0x001F;
- } else if (rb + gb + bb == 15) {
- colorMask = 0x7BDE7BDE;
- lowPixelMask = 0x04210421;
- qcolorMask = 0x739C739C;
- qlowpixelMask = 0x0C630C63;
- redblueMask = 0x7C1F;
- redMask = 0x7C00;
- greenMask = 0x03E0;
- blueMask = 0x001F;
- } else {
- return 0;
- }
-
- return 1;
-}
-
-static _inline int GetResult(uint32 A, uint32 B, uint32 C, uint32 D)
-{
- const bool ac = (A==C);
- const bool bc = (B==C);
- const int x1 = ac;
- const int y1 = (bc & !ac);
- const bool ad = (A==D);
- const bool bd = (B==D);
- const int x2 = ad;
- const int y2 = (bd & !ad);
- const int x = x1+x2;
- const int y = y1+y2;
- static const int rmap[3][3] = {
- {0, 0, -1},
- {0, 0, -1},
- {1, 1, 0}
- };
- return rmap[y][x];
-}
-
-static _inline uint32 INTERPOLATE(uint32 A, uint32 B) {
- if (A != B) {
- return (((A & colorMask) >> 1) + ((B & colorMask) >> 1) + (A & B & lowPixelMask));
- } else
- return A;
-}
-
-static _inline uint32 Q_INTERPOLATE(uint32 A, uint32 B, uint32 C, uint32 D) {
- register uint32 x = ((A & qcolorMask) >> 2) + ((B & qcolorMask) >> 2) + ((C & qcolorMask) >> 2) + ((D & qcolorMask) >> 2);
- register uint32 y = ((A & qlowpixelMask) + (B & qlowpixelMask) + (C & qlowpixelMask) + (D & qlowpixelMask)) >> 2;
-
- y &= qlowpixelMask;
- return x + y;
-}
-
-void Super2xSaI(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, int width, int height) {
- const uint16 *bP;
- uint16 *dP;
- const uint32 nextlineSrc = srcPitch >> 1;
-
- while (height--) {
- int i;
- bP = (const uint16 *)srcPtr;
- dP = (uint16 *)dstPtr;
-
- for (i = 0; i < width; ++i) {
- uint32 color4, color5, color6;
- uint32 color1, color2, color3;
- uint32 colorA0, colorA1, colorA2, colorA3;
- uint32 colorB0, colorB1, colorB2, colorB3;
- uint32 colorS1, colorS2;
- uint32 product1a, product1b, product2a, product2b;
-
-//--------------------------------------- B1 B2
-// 4 5 6 S2
-// 1 2 3 S1
-// A1 A2
-
- colorB0 = *(bP - nextlineSrc - 1);
- colorB1 = *(bP - nextlineSrc);
- colorB2 = *(bP - nextlineSrc + 1);
- colorB3 = *(bP - nextlineSrc + 2);
-
- color4 = *(bP - 1);
- color5 = *(bP);
- color6 = *(bP + 1);
- colorS2 = *(bP + 2);
-
- color1 = *(bP + nextlineSrc - 1);
- color2 = *(bP + nextlineSrc);
- color3 = *(bP + nextlineSrc + 1);
- colorS1 = *(bP + nextlineSrc + 2);
-
- colorA0 = *(bP + 2 * nextlineSrc - 1);
- colorA1 = *(bP + 2 * nextlineSrc);
- colorA2 = *(bP + 2 * nextlineSrc + 1);
- colorA3 = *(bP + 2 * nextlineSrc + 2);
-
-//--------------------------------------
- if (color2 == color6 && color5 != color3) {
- product2b = product1b = color2;
- } else if (color5 == color3 && color2 != color6) {
- product2b = product1b = color5;
- } else if (color5 == color3 && color2 == color6) {
- register int r = 0;
-
- r += GetResult(color6, color5, color1, colorA1);
- r += GetResult(color6, color5, color4, colorB1);
- r += GetResult(color6, color5, colorA2, colorS1);
- r += GetResult(color6, color5, colorB2, colorS2);
-
- if (r > 0)
- product2b = product1b = color6;
- else if (r < 0)
- product2b = product1b = color5;
- else {
- product2b = product1b = INTERPOLATE(color5, color6);
- }
- } else {
- if (color6 == color3 && color3 == colorA1 && color2 != colorA2 && color3 != colorA0)
- product2b = Q_INTERPOLATE(color3, color3, color3, color2);
- else if (color5 == color2 && color2 == colorA2 && colorA1 != color3 && color2 != colorA3)
- product2b = Q_INTERPOLATE(color2, color2, color2, color3);
- else
- product2b = INTERPOLATE(color2, color3);
-
- if (color6 == color3 && color6 == colorB1 && color5 != colorB2 && color6 != colorB0)
- product1b = Q_INTERPOLATE(color6, color6, color6, color5);
- else if (color5 == color2 && color5 == colorB2 && colorB1 != color6 && color5 != colorB3)
- product1b = Q_INTERPOLATE(color6, color5, color5, color5);
- else
- product1b = INTERPOLATE(color5, color6);
- }
-
- if (color5 == color3 && color2 != color6 && color4 == color5 && color5 != colorA2)
- product2a = INTERPOLATE(color2, color5);
- else if (color5 == color1 && color6 == color5 && color4 != color2 && color5 != colorA0)
- product2a = INTERPOLATE(color2, color5);
- else
- product2a = color2;
-
- if (color2 == color6 && color5 != color3 && color1 == color2 && color2 != colorB2)
- product1a = INTERPOLATE(color2, color5);
- else if (color4 == color2 && color3 == color2 && color1 != color5 && color2 != colorB0)
- product1a = INTERPOLATE(color2, color5);
- else
- product1a = color5;
-
- *(dP + 0) = (uint16) product1a;
- *(dP + 1) = (uint16) product1b;
- *(dP + dstPitch/2 + 0) = (uint16) product2a;
- *(dP + dstPitch/2 + 1) = (uint16) product2b;
-
- bP += 1;
- dP += 2;
- }
-
- srcPtr += srcPitch;
- dstPtr += dstPitch * 2;
- }
-}
-
-void SuperEagle(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, int width, int height) {
- const uint16 *bP;
- uint16 *dP;
- const uint32 nextlineSrc = srcPitch >> 1;
-
- while (height--) {
- int i;
- bP = (const uint16 *)srcPtr;
- dP = (uint16 *)dstPtr;
- for (i = 0; i < width; ++i) {
- uint32 color4, color5, color6;
- uint32 color1, color2, color3;
- uint32 colorA1, colorA2, colorB1, colorB2, colorS1, colorS2;
- uint32 product1a, product1b, product2a, product2b;
-
- colorB1 = *(bP - nextlineSrc);
- colorB2 = *(bP - nextlineSrc + 1);
-
- color4 = *(bP - 1);
- color5 = *(bP);
- color6 = *(bP + 1);
- colorS2 = *(bP + 2);
-
- color1 = *(bP + nextlineSrc - 1);
- color2 = *(bP + nextlineSrc);
- color3 = *(bP + nextlineSrc + 1);
- colorS1 = *(bP + nextlineSrc + 2);
-
- colorA1 = *(bP + 2 * nextlineSrc);
- colorA2 = *(bP + 2 * nextlineSrc + 1);
-
- // --------------------------------------
- if (color5 != color3)
- {
- if (color2 == color6)
- {
- product1b = product2a = color2;
- if ((color1 == color2) || (color6 == colorB2)) {
- product1a = INTERPOLATE(color2, color5);
- product1a = INTERPOLATE(color2, product1a);
- } else {
- product1a = INTERPOLATE(color5, color6);
- }
-
- if ((color6 == colorS2) || (color2 == colorA1)) {
- product2b = INTERPOLATE(color2, color3);
- product2b = INTERPOLATE(color2, product2b);
- } else {
- product2b = INTERPOLATE(color2, color3);
- }
- }
- else
- {
- product2b = product1a = INTERPOLATE(color2, color6);
- product2b = Q_INTERPOLATE(color3, color3, color3, product2b);
- product1a = Q_INTERPOLATE(color5, color5, color5, product1a);
-
- product2a = product1b = INTERPOLATE(color5, color3);
- product2a = Q_INTERPOLATE(color2, color2, color2, product2a);
- product1b = Q_INTERPOLATE(color6, color6, color6, product1b);
- }
- }
- else //if (color5 == color3)
- {
- if (color2 != color6)
- {
- product2b = product1a = color5;
-
- if ((colorB1 == color5) || (color3 == colorS1)) {
- product1b = INTERPOLATE(color5, color6);
- product1b = INTERPOLATE(color5, product1b);
- } else {
- product1b = INTERPOLATE(color5, color6);
- }
-
- if ((color3 == colorA2) || (color4 == color5)) {
- product2a = INTERPOLATE(color5, color2);
- product2a = INTERPOLATE(color5, product2a);
- } else {
- product2a = INTERPOLATE(color2, color3);
- }
- }
- else //if (color2 != color6)
- {
- register int r = 0;
-
- r += GetResult(color6, color5, color1, colorA1);
- r += GetResult(color6, color5, color4, colorB1);
- r += GetResult(color6, color5, colorA2, colorS1);
- r += GetResult(color6, color5, colorB2, colorS2);
-
- if (r > 0) {
- product1b = product2a = color2;
- product1a = product2b = INTERPOLATE(color5, color6);
- } else if (r < 0) {
- product2b = product1a = color5;
- product1b = product2a = INTERPOLATE(color5, color6);
- } else {
- product2b = product1a = color5;
- product1b = product2a = color2;
- }
- }
- }
-
- *(dP + 0) = (uint16) product1a;
- *(dP + 1) = (uint16) product1b;
- *(dP + dstPitch/2 + 0) = (uint16) product2a;
- *(dP + dstPitch/2 + 1) = (uint16) product2b;
-
- bP += 1;
- dP += 2;
- }
-
- srcPtr += srcPitch;
- dstPtr += dstPitch * 2;
- }
-}
-
-void _2xSaI(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, int width, int height) {
- const uint16 *bP;
- uint16 *dP;
- const uint32 nextlineSrc = srcPitch >> 1;
-
- while (height--) {
- int i;
- bP = (const uint16 *)srcPtr;
- dP = (uint16 *)dstPtr;
-
- for (i = 0; i < width; ++i) {
-
- register uint32 colorA, colorB;
- uint32 colorC, colorD,
- colorE, colorF, colorG, colorH, colorI, colorJ, colorK, colorL, colorM, colorN, colorO, colorP;
- uint32 product, product1, product2;
-
-//---------------------------------------
-// Map of the pixels: I|E F|J
-// G|A B|K
-// H|C D|L
-// M|N O|P
- colorI = *(bP - nextlineSrc - 1);
- colorE = *(bP - nextlineSrc);
- colorF = *(bP - nextlineSrc + 1);
- colorJ = *(bP - nextlineSrc + 2);
-
- colorG = *(bP - 1);
- colorA = *(bP);
- colorB = *(bP + 1);
- colorK = *(bP + 2);
-
- colorH = *(bP + nextlineSrc - 1);
- colorC = *(bP + nextlineSrc);
- colorD = *(bP + nextlineSrc + 1);
- colorL = *(bP + nextlineSrc + 2);
-
- colorM = *(bP + 2 * nextlineSrc - 1);
- colorN = *(bP + 2 * nextlineSrc);
- colorO = *(bP + 2 * nextlineSrc + 1);
- colorP = *(bP + 2 * nextlineSrc + 2);
-
- if ((colorA == colorD) && (colorB != colorC)) {
- if (((colorA == colorE) && (colorB == colorL)) ||
- ((colorA == colorC) && (colorA == colorF) && (colorB != colorE) && (colorB == colorJ))) {
- product = colorA;
- } else {
- product = INTERPOLATE(colorA, colorB);
- }
-
- if (((colorA == colorG) && (colorC == colorO)) ||
- ((colorA == colorB) && (colorA == colorH) && (colorG != colorC) && (colorC == colorM))) {
- product1 = colorA;
- } else {
- product1 = INTERPOLATE(colorA, colorC);
- }
- product2 = colorA;
- } else if ((colorB == colorC) && (colorA != colorD)) {
- if (((colorB == colorF) && (colorA == colorH)) ||
- ((colorB == colorE) && (colorB == colorD) && (colorA != colorF) && (colorA == colorI))) {
- product = colorB;
- } else {
- product = INTERPOLATE(colorA, colorB);
- }
-
- if (((colorC == colorH) && (colorA == colorF)) ||
- ((colorC == colorG) && (colorC == colorD) && (colorA != colorH) && (colorA == colorI))) {
- product1 = colorC;
- } else {
- product1 = INTERPOLATE(colorA, colorC);
- }
- product2 = colorB;
- } else if ((colorA == colorD) && (colorB == colorC)) {
- if (colorA == colorB) {
- product = colorA;
- product1 = colorA;
- product2 = colorA;
- } else {
- register int r = 0;
-
- product1 = INTERPOLATE(colorA, colorC);
- product = INTERPOLATE(colorA, colorB);
-
- r += GetResult(colorA, colorB, colorG, colorE);
- r -= GetResult(colorB, colorA, colorK, colorF);
- r -= GetResult(colorB, colorA, colorH, colorN);
- r += GetResult(colorA, colorB, colorL, colorO);
-
- if (r > 0)
- product2 = colorA;
- else if (r < 0)
- product2 = colorB;
- else {
- product2 = Q_INTERPOLATE(colorA, colorB, colorC, colorD);
- }
- }
- } else {
- product2 = Q_INTERPOLATE(colorA, colorB, colorC, colorD);
-
- if ((colorA == colorC) && (colorA == colorF)
- && (colorB != colorE) && (colorB == colorJ)) {
- product = colorA;
- } else if ((colorB == colorE) && (colorB == colorD)
- && (colorA != colorF) && (colorA == colorI)) {
- product = colorB;
- } else {
- product = INTERPOLATE(colorA, colorB);
- }
-
- if ((colorA == colorB) && (colorA == colorH)
- && (colorG != colorC) && (colorC == colorM)) {
- product1 = colorA;
- } else if ((colorC == colorG) && (colorC == colorD)
- && (colorA != colorH) && (colorA == colorI)) {
- product1 = colorC;
- } else {
- product1 = INTERPOLATE(colorA, colorC);
- }
- }
-
- *(dP + 0) = (uint16) colorA;
- *(dP + 1) = (uint16) product;
- *(dP + dstPitch/2 + 0) = (uint16) product1;
- *(dP + dstPitch/2 + 1) = (uint16) product2;
-
- bP += 1;
- dP += 2;
- }
-
- srcPtr += srcPitch;
- dstPtr += dstPitch * 2;
- }
-}
-
-
-/*
- * This file is part of the Advance project.
- *
- * Copyright (C) 1999-2002 Andrea Mazzoleni
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*
- * This file contains a C and MMX implentation of the Scale2x effect.
- *
- * You can found an high level description of the effect at :
- *
- * http://scale2x.sourceforge.net/scale2x.html
- *
- * Alternatively at the previous license terms, you are allowed to use this
- * code in your program with these conditions:
- * - the program is not used in commercial activities.
- * - the whole source code of the program is released with the binary.
- * - derivative works of the program are allowed.
- */
-
-#define MMX
-extern int cpu_mmx;
-
-/* Suggested in "Intel Optimization" for Pentium II */
-#define ASM_JUMP_ALIGN ".p2align 4\n"
-
-static void internal_scale2x_16_def(u16 *dst0, u16* dst1, const u16* src0, const u16* src1, const u16* src2, unsigned count) {
- /* first pixel */
- dst0[0] = src1[0];
- dst1[0] = src1[0];
- if (src1[1] == src0[0] && src2[0] != src0[0])
- dst0[1] =src0[0];
- else
- dst0[1] =src1[0];
- if (src1[1] == src2[0] && src0[0] != src2[0])
- dst1[1] =src2[0];
- else
- dst1[1] =src1[0];
- ++src0;
- ++src1;
- ++src2;
- dst0 += 2;
- dst1 += 2;
-
- /* central pixels */
- count -= 2;
- while (count) {
- if (src1[-1] == src0[0] && src2[0] != src0[0] && src1[1] != src0[0])
- dst0[0] = src0[0];
- else
- dst0[0] = src1[0];
- if (src1[1] == src0[0] && src2[0] != src0[0] && src1[-1] != src0[0])
- dst0[1] =src0[0];
- else
- dst0[1] =src1[0];
-
- if (src1[-1] == src2[0] && src0[0] != src2[0] && src1[1] != src2[0])
- dst1[0] =src2[0];
- else
- dst1[0] =src1[0];
- if (src1[1] == src2[0] && src0[0] != src2[0] && src1[-1] != src2[0])
- dst1[1] =src2[0];
- else
- dst1[1] =src1[0];
-
- ++src0;
- ++src1;
- ++src2;
- dst0 += 2;
- dst1 += 2;
- --count;
- }
-
- /* last pixel */
- if (src1[-1] == src0[0] && src2[0] != src0[0])
- dst0[0] =src0[0];
- else
- dst0[0] =src1[0];
- if (src1[-1] == src2[0] && src0[0] != src2[0])
- dst1[0] =src2[0];
- else
- dst1[0] =src1[0];
- dst0[1] =src1[0];
- dst1[1] =src1[0];
-}
-
-static void internal_scale2x_32_def(u32* dst0,
- u32* dst1,
- const u32* src0,
- const u32* src1,
- const u32* src2,
- unsigned count) {
- /* first pixel */
- dst0[0] = src1[0];
- dst1[0] = src1[0];
- if (src1[1] == src0[0] && src2[0] != src0[0])
- dst0[1] = src0[0];
- else
- dst0[1] = src1[0];
- if (src1[1] == src2[0] && src0[0] != src2[0])
- dst1[1] = src2[0];
- else
- dst1[1] = src1[0];
- ++src0;
- ++src1;
- ++src2;
- dst0 += 2;
- dst1 += 2;
-
- /* central pixels */
- count -= 2;
- while (count) {
- if (src1[-1] == src0[0] && src2[0] != src0[0] && src1[1] != src0[0])
- dst0[0] = src0[0];
- else
- dst0[0] = src1[0];
- if (src1[1] == src0[0] && src2[0] != src0[0] && src1[-1] != src0[0])
- dst0[1] = src0[0];
- else
- dst0[1] = src1[0];
-
- if (src1[-1] == src2[0] && src0[0] != src2[0] && src1[1] != src2[0])
- dst1[0] = src2[0];
- else
- dst1[0] = src1[0];
- if (src1[1] == src2[0] && src0[0] != src2[0] && src1[-1] != src2[0])
- dst1[1] = src2[0];
- else
- dst1[1] = src1[0];
-
- ++src0;
- ++src1;
- ++src2;
- dst0 += 2;
- dst1 += 2;
- --count;
- }
-
- /* last pixel */
- if (src1[-1] == src0[0] && src2[0] != src0[0])
- dst0[0] = src0[0];
- else
- dst0[0] = src1[0];
- if (src1[-1] == src2[0] && src0[0] != src2[0])
- dst1[0] = src2[0];
- else
- dst1[0] = src1[0];
- dst0[1] = src1[0];
- dst1[1] = src1[0];
-}
-
-#ifdef MMX
-static void internal_scale2x_16_mmx_single(u16* dst, const u16* src0, const u16* src1, const u16* src2, unsigned count) {
- /* always do the first and last run */
- count -= 2*4;
-
-#ifdef __GNUC__
- __asm__ __volatile__(
- /* first run */
- /* set the current, current_pre, current_next registers */
- "pxor %%mm0,%%mm0\n" /* use a fake black out of screen */
- "movq 0(%1),%%mm7\n"
- "movq 8(%1),%%mm1\n"
- "psrlq $48,%%mm0\n"
- "psllq $48,%%mm1\n"
- "movq %%mm7,%%mm2\n"
- "movq %%mm7,%%mm3\n"
- "psllq $16,%%mm2\n"
- "psrlq $16,%%mm3\n"
- "por %%mm2,%%mm0\n"
- "por %%mm3,%%mm1\n"
-
- /* current_upper */
- "movq (%0),%%mm6\n"
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "movq %%mm0,%%mm3\n"
- "movq %%mm1,%%mm5\n"
- "pcmpeqw %%mm6,%%mm2\n"
- "pcmpeqw %%mm6,%%mm4\n"
- "pcmpeqw (%2),%%mm3\n"
- "pcmpeqw (%2),%%mm5\n"
- "pandn %%mm2,%%mm3\n"
- "pandn %%mm4,%%mm5\n"
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "pcmpeqw %%mm1,%%mm2\n"
- "pcmpeqw %%mm0,%%mm4\n"
- "pandn %%mm3,%%mm2\n"
- "pandn %%mm5,%%mm4\n"
- "movq %%mm2,%%mm3\n"
- "movq %%mm4,%%mm5\n"
- "pand %%mm6,%%mm2\n"
- "pand %%mm6,%%mm4\n"
- "pandn %%mm7,%%mm3\n"
- "pandn %%mm7,%%mm5\n"
- "por %%mm3,%%mm2\n"
- "por %%mm5,%%mm4\n"
-
- /* set *dst0 */
- "movq %%mm2,%%mm3\n"
- "punpcklwd %%mm4,%%mm2\n"
- "punpckhwd %%mm4,%%mm3\n"
- "movq %%mm2,(%3)\n"
- "movq %%mm3,8(%3)\n"
-
- /* next */
- "addl $8,%0\n"
- "addl $8,%1\n"
- "addl $8,%2\n"
- "addl $16,%3\n"
-
- /* central runs */
- "shrl $2,%4\n"
- "jz 1f\n"
- ASM_JUMP_ALIGN
- "0:\n"
-
- /* set the current, current_pre, current_next registers */
- "movq -8(%1),%%mm0\n"
- "movq (%1),%%mm7\n"
- "movq 8(%1),%%mm1\n"
- "psrlq $48,%%mm0\n"
- "psllq $48,%%mm1\n"
- "movq %%mm7,%%mm2\n"
- "movq %%mm7,%%mm3\n"
- "psllq $16,%%mm2\n"
- "psrlq $16,%%mm3\n"
- "por %%mm2,%%mm0\n"
- "por %%mm3,%%mm1\n"
-
- /* current_upper */
- "movq (%0),%%mm6\n"
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "movq %%mm0,%%mm3\n"
- "movq %%mm1,%%mm5\n"
- "pcmpeqw %%mm6,%%mm2\n"
- "pcmpeqw %%mm6,%%mm4\n"
- "pcmpeqw (%2),%%mm3\n"
- "pcmpeqw (%2),%%mm5\n"
- "pandn %%mm2,%%mm3\n"
- "pandn %%mm4,%%mm5\n"
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "pcmpeqw %%mm1,%%mm2\n"
- "pcmpeqw %%mm0,%%mm4\n"
- "pandn %%mm3,%%mm2\n"
- "pandn %%mm5,%%mm4\n"
- "movq %%mm2,%%mm3\n"
- "movq %%mm4,%%mm5\n"
- "pand %%mm6,%%mm2\n"
- "pand %%mm6,%%mm4\n"
- "pandn %%mm7,%%mm3\n"
- "pandn %%mm7,%%mm5\n"
- "por %%mm3,%%mm2\n"
- "por %%mm5,%%mm4\n"
-
- /* set *dst0 */
- "movq %%mm2,%%mm3\n"
- "punpcklwd %%mm4,%%mm2\n"
- "punpckhwd %%mm4,%%mm3\n"
- "movq %%mm2,(%3)\n"
- "movq %%mm3,8(%3)\n"
-
- /* next */
- "addl $8,%0\n"
- "addl $8,%1\n"
- "addl $8,%2\n"
- "addl $16,%3\n"
-
- "decl %4\n"
- "jnz 0b\n"
- "1:\n"
-
- /* final run */
- /* set the current, current_pre, current_next registers */
- "movq -8(%1),%%mm0\n"
- "movq (%1),%%mm7\n"
- "pxor %%mm1,%%mm1\n" /* use a fake black out of screen */
- "psrlq $48,%%mm0\n"
- "psllq $48,%%mm1\n"
- "movq %%mm7,%%mm2\n"
- "movq %%mm7,%%mm3\n"
- "psllq $16,%%mm2\n"
- "psrlq $16,%%mm3\n"
- "por %%mm2,%%mm0\n"
- "por %%mm3,%%mm1\n"
-
- /* current_upper */
- "movq (%0),%%mm6\n"
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "movq %%mm0,%%mm3\n"
- "movq %%mm1,%%mm5\n"
- "pcmpeqw %%mm6,%%mm2\n"
- "pcmpeqw %%mm6,%%mm4\n"
- "pcmpeqw (%2),%%mm3\n"
- "pcmpeqw (%2),%%mm5\n"
- "pandn %%mm2,%%mm3\n"
- "pandn %%mm4,%%mm5\n"
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "pcmpeqw %%mm1,%%mm2\n"
- "pcmpeqw %%mm0,%%mm4\n"
- "pandn %%mm3,%%mm2\n"
- "pandn %%mm5,%%mm4\n"
- "movq %%mm2,%%mm3\n"
- "movq %%mm4,%%mm5\n"
- "pand %%mm6,%%mm2\n"
- "pand %%mm6,%%mm4\n"
- "pandn %%mm7,%%mm3\n"
- "pandn %%mm7,%%mm5\n"
- "por %%mm3,%%mm2\n"
- "por %%mm5,%%mm4\n"
-
- /* set *dst0 */
- "movq %%mm2,%%mm3\n"
- "punpcklwd %%mm4,%%mm2\n"
- "punpckhwd %%mm4,%%mm3\n"
- "movq %%mm2,(%3)\n"
- "movq %%mm3,8(%3)\n"
- "emms\n"
-
- : "+r" (src0), "+r" (src1), "+r" (src2), "+r" (dst), "+r" (count)
- :
- : "cc"
- );
-#else
- __asm {
- mov eax, src0;
- mov ebx, src1;
- mov ecx, src2;
- mov edx, dst;
- mov esi, count;
-
- /* first run */
- /* set the current, current_pre, current_next registers */
- pxor mm0,mm0; /* use a fake black out of screen */
- movq mm7, qword ptr [ebx];
- movq mm1, qword ptr [ebx + 8];
- psrlq mm0, 48;
- psllq mm1, 48;
- movq mm2, mm7;
- movq mm3, mm7;
- psllq mm2, 16;
- psrlq mm3, 16;
- por mm0, mm2;
- por mm1, mm3;
-
- /* current_upper */
- movq mm6, qword ptr [eax];
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- movq mm2, mm0;
- movq mm4, mm1;
- movq mm3, mm0;
- movq mm5, mm1;
- pcmpeqw mm2, mm6;
- pcmpeqw mm4, mm6;
- pcmpeqw mm3, qword ptr [ecx];
- pcmpeqw mm5, qword ptr [ecx];
- pandn mm3,mm2;
- pandn mm5,mm4;
- movq mm2,mm0;
- movq mm4,mm1;
- pcmpeqw mm2,mm1;
- pcmpeqw mm4,mm0;
- pandn mm2,mm3;
- pandn mm4,mm5;
- movq mm3,mm2;
- movq mm5,mm4;
- pand mm2,mm6;
- pand mm4,mm6;
- pandn mm3,mm7;
- pandn mm5,mm7;
- por mm2,mm3;
- por mm4,mm5;
-
- /* set *dst0 */
- movq mm3,mm2;
- punpcklwd mm2,mm4;
- punpckhwd mm3,mm4;
- movq qword ptr [edx], mm2;
- movq qword ptr [edx + 8], mm3;
-
- /* next */
- add eax, 8;
- add ebx, 8;
- add ecx, 8;
- add edx, 16;
-
- /* central runs */
- shr esi, 2;
- jz label1;
- align 4;
- label0:
-
- /* set the current, current_pre, current_next registers */
- movq mm0, qword ptr [ebx-8];
- movq mm7, qword ptr [ebx];
- movq mm1, qword ptr [ebx+8];
- psrlq mm0,48;
- psllq mm1,48;
- movq mm2,mm7;
- movq mm3,mm7;
- psllq mm2,16;
- psrlq mm3,16;
- por mm0,mm2;
- por mm1,mm3;
-
- /* current_upper */
- movq mm6, qword ptr [eax];
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- movq mm2,mm0;
- movq mm4,mm1;
- movq mm3,mm0;
- movq mm5,mm1;
- pcmpeqw mm2,mm6;
- pcmpeqw mm4,mm6;
- pcmpeqw mm3, qword ptr [ecx];
- pcmpeqw mm5, qword ptr [ecx];
- pandn mm3,mm2;
- pandn mm5,mm4;
- movq mm2,mm0;
- movq mm4,mm1;
- pcmpeqw mm2,mm1;
- pcmpeqw mm4,mm0;
- pandn mm2,mm3;
- pandn mm4,mm5;
- movq mm3,mm2;
- movq mm5,mm4;
- pand mm2,mm6;
- pand mm4,mm6;
- pandn mm3,mm7;
- pandn mm5,mm7;
- por mm2,mm3;
- por mm4,mm5;
-
- /* set *dst0 */
- movq mm3,mm2;
- punpcklwd mm2,mm4;
- punpckhwd mm3,mm4;
- movq qword ptr [edx], mm2;
- movq qword ptr [edx+8], mm3;
-
- /* next */
- add eax,8;
- add ebx,8;
- add ecx,8;
- add edx,16;
-
- dec esi;
- jnz label0;
- label1:
-
- /* final run */
- /* set the current, current_pre, current_next registers */
- movq mm0, qword ptr [ebx-8];
- movq mm7, qword ptr [ebx];
- pxor mm1,mm1; /* use a fake black out of screen */
- psrlq mm0,48;
- psllq mm1,48;
- movq mm2,mm7;
- movq mm3,mm7;
- psllq mm2,16;
- psrlq mm3,16;
- por mm0,mm2;
- por mm1,mm3;
-
- /* current_upper */
- movq mm6, qword ptr [eax];
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- movq mm2,mm0;
- movq mm4,mm1;
- movq mm3,mm0;
- movq mm5,mm1;
- pcmpeqw mm2,mm6;
- pcmpeqw mm4,mm6;
- pcmpeqw mm3, qword ptr [ecx];
- pcmpeqw mm5, qword ptr [ecx];
- pandn mm3,mm2;
- pandn mm5,mm4;
- movq mm2,mm0;
- movq mm4,mm1;
- pcmpeqw mm2,mm1;
- pcmpeqw mm4,mm0;
- pandn mm2,mm3;
- pandn mm4,mm5;
- movq mm3,mm2;
- movq mm5,mm4;
- pand mm2,mm6;
- pand mm4,mm6;
- pandn mm3,mm7;
- pandn mm5,mm7;
- por mm2,mm3;
- por mm4,mm5;
-
- /* set *dst0 */
- movq mm3,mm2;
- punpcklwd mm2,mm4;
- punpckhwd mm3,mm4;
- movq qword ptr [edx], mm2;
- movq qword ptr [edx+8], mm3;
-
- mov src0, eax;
- mov src1, ebx;
- mov src2, ecx;
- mov dst, edx;
- mov count, esi;
-
- emms;
- }
-#endif
-}
-
-static void internal_scale2x_32_mmx_single(u32* dst, const u32* src0, const u32* src1, const u32* src2, unsigned count) {
- /* always do the first and last run */
- count -= 2*2;
-
-#ifdef __GNUC__
- __asm__ __volatile__(
- /* first run */
- /* set the current, current_pre, current_next registers */
- "pxor %%mm0,%%mm0\n" /* use a fake black out of screen */
- "movq 0(%1),%%mm7\n"
- "movq 8(%1),%%mm1\n"
- "psrlq $32,%%mm0\n"
- "psllq $32,%%mm1\n"
- "movq %%mm7,%%mm2\n"
- "movq %%mm7,%%mm3\n"
- "psllq $32,%%mm2\n"
- "psrlq $32,%%mm3\n"
- "por %%mm2,%%mm0\n"
- "por %%mm3,%%mm1\n"
-
- /* current_upper */
- "movq (%0),%%mm6\n"
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "movq %%mm0,%%mm3\n"
- "movq %%mm1,%%mm5\n"
- "pcmpeqd %%mm6,%%mm2\n"
- "pcmpeqd %%mm6,%%mm4\n"
- "pcmpeqd (%2),%%mm3\n"
- "pcmpeqd (%2),%%mm5\n"
- "pandn %%mm2,%%mm3\n"
- "pandn %%mm4,%%mm5\n"
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "pcmpeqd %%mm1,%%mm2\n"
- "pcmpeqd %%mm0,%%mm4\n"
- "pandn %%mm3,%%mm2\n"
- "pandn %%mm5,%%mm4\n"
- "movq %%mm2,%%mm3\n"
- "movq %%mm4,%%mm5\n"
- "pand %%mm6,%%mm2\n"
- "pand %%mm6,%%mm4\n"
- "pandn %%mm7,%%mm3\n"
- "pandn %%mm7,%%mm5\n"
- "por %%mm3,%%mm2\n"
- "por %%mm5,%%mm4\n"
-
- /* set *dst0 */
- "movq %%mm2,%%mm3\n"
- "punpckldq %%mm4,%%mm2\n"
- "punpckhdq %%mm4,%%mm3\n"
- "movq %%mm2,(%3)\n"
- "movq %%mm3,8(%3)\n"
-
- /* next */
- "addl $8,%0\n"
- "addl $8,%1\n"
- "addl $8,%2\n"
- "addl $16,%3\n"
-
- /* central runs */
- "shrl $1,%4\n"
- "jz 1f\n"
- ASM_JUMP_ALIGN
- "0:\n"
-
- /* set the current, current_pre, current_next registers */
- "movq -8(%1),%%mm0\n"
- "movq (%1),%%mm7\n"
- "movq 8(%1),%%mm1\n"
- "psrlq $32,%%mm0\n"
- "psllq $32,%%mm1\n"
- "movq %%mm7,%%mm2\n"
- "movq %%mm7,%%mm3\n"
- "psllq $32,%%mm2\n"
- "psrlq $32,%%mm3\n"
- "por %%mm2,%%mm0\n"
- "por %%mm3,%%mm1\n"
-
- /* current_upper */
- "movq (%0),%%mm6\n"
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "movq %%mm0,%%mm3\n"
- "movq %%mm1,%%mm5\n"
- "pcmpeqd %%mm6,%%mm2\n"
- "pcmpeqd %%mm6,%%mm4\n"
- "pcmpeqd (%2),%%mm3\n"
- "pcmpeqd (%2),%%mm5\n"
- "pandn %%mm2,%%mm3\n"
- "pandn %%mm4,%%mm5\n"
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "pcmpeqd %%mm1,%%mm2\n"
- "pcmpeqd %%mm0,%%mm4\n"
- "pandn %%mm3,%%mm2\n"
- "pandn %%mm5,%%mm4\n"
- "movq %%mm2,%%mm3\n"
- "movq %%mm4,%%mm5\n"
- "pand %%mm6,%%mm2\n"
- "pand %%mm6,%%mm4\n"
- "pandn %%mm7,%%mm3\n"
- "pandn %%mm7,%%mm5\n"
- "por %%mm3,%%mm2\n"
- "por %%mm5,%%mm4\n"
-
- /* set *dst0 */
- "movq %%mm2,%%mm3\n"
- "punpckldq %%mm4,%%mm2\n"
- "punpckhdq %%mm4,%%mm3\n"
- "movq %%mm2,(%3)\n"
- "movq %%mm3,8(%3)\n"
-
- /* next */
- "addl $8,%0\n"
- "addl $8,%1\n"
- "addl $8,%2\n"
- "addl $16,%3\n"
-
- "decl %4\n"
- "jnz 0b\n"
- "1:\n"
-
- /* final run */
- /* set the current, current_pre, current_next registers */
- "movq -8(%1),%%mm0\n"
- "movq (%1),%%mm7\n"
- "pxor %%mm1,%%mm1\n" /* use a fake black out of screen */
- "psrlq $32,%%mm0\n"
- "psllq $32,%%mm1\n"
- "movq %%mm7,%%mm2\n"
- "movq %%mm7,%%mm3\n"
- "psllq $32,%%mm2\n"
- "psrlq $32,%%mm3\n"
- "por %%mm2,%%mm0\n"
- "por %%mm3,%%mm1\n"
-
- /* current_upper */
- "movq (%0),%%mm6\n"
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "movq %%mm0,%%mm3\n"
- "movq %%mm1,%%mm5\n"
- "pcmpeqd %%mm6,%%mm2\n"
- "pcmpeqd %%mm6,%%mm4\n"
- "pcmpeqd (%2),%%mm3\n"
- "pcmpeqd (%2),%%mm5\n"
- "pandn %%mm2,%%mm3\n"
- "pandn %%mm4,%%mm5\n"
- "movq %%mm0,%%mm2\n"
- "movq %%mm1,%%mm4\n"
- "pcmpeqd %%mm1,%%mm2\n"
- "pcmpeqd %%mm0,%%mm4\n"
- "pandn %%mm3,%%mm2\n"
- "pandn %%mm5,%%mm4\n"
- "movq %%mm2,%%mm3\n"
- "movq %%mm4,%%mm5\n"
- "pand %%mm6,%%mm2\n"
- "pand %%mm6,%%mm4\n"
- "pandn %%mm7,%%mm3\n"
- "pandn %%mm7,%%mm5\n"
- "por %%mm3,%%mm2\n"
- "por %%mm5,%%mm4\n"
-
- /* set *dst0 */
- "movq %%mm2,%%mm3\n"
- "punpckldq %%mm4,%%mm2\n"
- "punpckhdq %%mm4,%%mm3\n"
- "movq %%mm2,(%3)\n"
- "movq %%mm3,8(%3)\n"
- "emms\n"
-
- : "+r" (src0), "+r" (src1), "+r" (src2), "+r" (dst), "+r" (count)
- :
- : "cc"
- );
-#else
- __asm {
- mov eax, src0;
- mov ebx, src1;
- mov ecx, src2;
- mov edx, dst;
- mov esi, count;
-
- /* first run */
- /* set the current, current_pre, current_next registers */
- pxor mm0,mm0;
- movq mm7,qword ptr [ebx];
- movq mm1,qword ptr [ebx + 8];
- psrlq mm0,32;
- psllq mm1,32;
- movq mm2,mm7;
- movq mm3,mm7;
- psllq mm2,32;
- psrlq mm3,32;
- por mm0,mm2;
- por mm1,mm3;
-
- /* current_upper */
- movq mm6,qword ptr [eax];
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- movq mm2,mm0;
- movq mm4,mm1;
- movq mm3,mm0;
- movq mm5,mm1;
- pcmpeqd mm2,mm6;
- pcmpeqd mm4,mm6;
- pcmpeqd mm3,qword ptr [ecx];
- pcmpeqd mm5,qword ptr [ecx];
- pandn mm3,mm2;
- pandn mm5,mm4;
- movq mm2,mm0;
- movq mm4,mm1;
- pcmpeqd mm2,mm1;
- pcmpeqd mm4,mm0;
- pandn mm2,mm3;
- pandn mm4,mm5;
- movq mm3,mm2;
- movq mm5,mm4;
- pand mm2,mm6;
- pand mm4,mm6;
- pandn mm3,mm7;
- pandn mm5,mm7;
- por mm2,mm3;
- por mm4,mm5;
-
- /* set *dst0 */
- movq mm3,mm2;
- punpckldq mm2,mm4;
- punpckhdq mm3,mm4;
- movq qword ptr [edx],mm2;
- movq qword ptr [edx+8],mm3;
-
- /* next */
- add eax,8;
- add ebx,8;
- add ecx,8;
- add edx,16;
-
- /* central runs */
- shr esi,1;
- jz label1;
-label0:
-
- /* set the current, current_pre, current_next registers */
- movq mm0,qword ptr [ebx-8];
- movq mm7,qword ptr [ebx];
- movq mm1,qword ptr [ebx+8];
- psrlq mm0,32;
- psllq mm1,32;
- movq mm2,mm7;
- movq mm3,mm7;
- psllq mm2,32;
- psrlq mm3,32;
- por mm0,mm2;
- por mm1,mm3;
-
- /* current_upper */
- movq mm6,qword ptr[eax];
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- movq mm2,mm0;
- movq mm4,mm1;
- movq mm3,mm0;
- movq mm5,mm1;
- pcmpeqd mm2,mm6;
- pcmpeqd mm4,mm6;
- pcmpeqd mm3,qword ptr[ecx];
- pcmpeqd mm5,qword ptr[ecx];
- pandn mm3,mm2;
- pandn mm5,mm4;
- movq mm2,mm0;
- movq mm4,mm1;
- pcmpeqd mm2,mm1;
- pcmpeqd mm4,mm0;
- pandn mm2,mm3;
- pandn mm4,mm5;
- movq mm3,mm2;
- movq mm5,mm4;
- pand mm2,mm6;
- pand mm4,mm6;
- pandn mm3,mm7;
- pandn mm5,mm7;
- por mm2,mm3;
- por mm4,mm5;
-
- /* set *dst0 */
- movq mm3,mm2;
- punpckldq mm2,mm4;
- punpckhdq mm3,mm4;
- movq qword ptr [edx],mm2;
- movq qword ptr [edx+8],mm3;
-
- /* next */
- add eax,8;
- add ebx,8;
- add ecx,8;
- add edx,16;
-
- dec esi;
- jnz label0;
-label1:
-
- /* final run */
- /* set the current, current_pre, current_next registers */
- movq mm0,qword ptr [ebx-8];
- movq mm7,qword ptr [ebx];
- pxor mm1,mm1;
- psrlq mm0,32;
- psllq mm1,32;
- movq mm2,mm7;
- movq mm3,mm7;
- psllq mm2,32;
- psrlq mm3,32;
- por mm0,mm2;
- por mm1,mm3;
-
- /* current_upper */
- movq mm6,qword ptr [eax];
-
- /* compute the upper-left pixel for dst0 on %%mm2 */
- /* compute the upper-right pixel for dst0 on %%mm4 */
- movq mm2,mm0;
- movq mm4,mm1;
- movq mm3,mm0;
- movq mm5,mm1;
- pcmpeqd mm2,mm6;
- pcmpeqd mm4,mm6;
- pcmpeqd mm3,qword ptr [ecx];
- pcmpeqd mm5,qword ptr [ecx];
- pandn mm3,mm2;
- pandn mm5,mm4;
- movq mm2,mm0;
- movq mm4,mm1;
- pcmpeqd mm2,mm1;
- pcmpeqd mm4,mm0;
- pandn mm2,mm3;
- pandn mm4,mm5;
- movq mm3,mm2;
- movq mm5,mm4;
- pand mm2,mm6;
- pand mm4,mm6;
- pandn mm3,mm7;
- pandn mm5,mm7;
- por mm2,mm3;
- por mm4,mm5;
-
- /* set *dst0 */
- movq mm3,mm2;
- punpckldq mm2,mm4;
- punpckhdq mm3,mm4;
- movq qword ptr [edx],mm2;
- movq qword ptr [edx+8],mm3;
-
- mov src0, eax;
- mov src1, ebx;
- mov src2, ecx;
- mov dst, edx;
- mov count, esi;
-
- emms;
- }
-#endif
-}
-
-static void internal_scale2x_16_mmx(u16* dst0, u16* dst1, const u16* src0, const u16* src1, const u16* src2, unsigned count) {
- // assert( count >= 2*4 );
- internal_scale2x_16_mmx_single(dst0, src0, src1, src2, count);
- internal_scale2x_16_mmx_single(dst1, src2, src1, src0, count);
-}
-
-static void internal_scale2x_32_mmx(u32* dst0, u32* dst1, const u32* src0, const u32* src1, const u32* src2, unsigned count) {
- // assert( count >= 2*2 );
- internal_scale2x_32_mmx_single(dst0, src0, src1, src2, count);
- internal_scale2x_32_mmx_single(dst1, src2, src1, src0, count);
-}
-#endif
-
-void AdMame2x(u8 *srcPtr, u32 srcPitch, /* u8 deltaPtr, */
- u8 *dstPtr, u32 dstPitch, int width, int height)
-{
- u16 *dst0 = (u16 *)dstPtr;
- u16 *dst1 = dst0 + (dstPitch/2);
-
- u16 *src0 = (u16 *)srcPtr;
- u16 *src1 = src0 + (srcPitch/2);
- u16 *src2 = src1 + (srcPitch/2);
-#ifdef MMX
- if(cpu_mmx) {
- internal_scale2x_16_mmx(dst0, dst1, src0, src0, src1, width);
-
- {
- int count = height;
-
- count -= 2;
- while(count) {
- dst0 += dstPitch;
- dst1 += dstPitch;
- internal_scale2x_16_mmx(dst0, dst1, src0, src1, src2, width);
- src0 = src1;
- src1 = src2;
- src2 += srcPitch/2;
- --count;
- }
- }
- dst0 += dstPitch;
- dst1 += dstPitch;
- internal_scale2x_16_mmx(dst0, dst1, src0, src1, src1, width);
- } else {
-#endif
- internal_scale2x_16_def(dst0, dst1, src0, src0, src1, width);
-
- {
- int count = height;
-
- count -= 2;
- while(count) {
- dst0 += dstPitch;
- dst1 += dstPitch;
- internal_scale2x_16_def(dst0, dst1, src0, src1, src2, width);
- src0 = src1;
- src1 = src2;
- src2 += srcPitch/2;
- --count;
- }
- }
- dst0 += dstPitch;
- dst1 += dstPitch;
- internal_scale2x_16_def(dst0, dst1, src0, src1, src1, width);
-#ifdef MMX
- }
-#endif
-}
-
-void AdMame2x32(u8 *srcPtr, u32 srcPitch, /* u8 deltaPtr, */
- u8 *dstPtr, u32 dstPitch, int width, int height)
-{
- u32 *dst0 = (u32 *)dstPtr;
- u32 *dst1 = dst0 + (dstPitch/4);
-
- u32 *src0 = (u32 *)srcPtr;
- u32 *src1 = src0 + (srcPitch/4);
- u32 *src2 = src1 + (srcPitch/4);
-#ifdef MMX
- if(cpu_mmx) {
- internal_scale2x_32_mmx(dst0, dst1, src0, src0, src1, width);
-
- {
- int count = height;
-
- count -= 2;
- while(count) {
- dst0 += dstPitch/2;
- dst1 += dstPitch/2;
- internal_scale2x_32_mmx(dst0, dst1, src0, src1, src2, width);
- src0 = src1;
- src1 = src2;
- src2 += srcPitch/4;
- --count;
- }
- }
- dst0 += dstPitch/2;
- dst1 += dstPitch/2;
- internal_scale2x_32_mmx(dst0, dst1, src0, src1, src1, width);
- } else {
-#endif
- internal_scale2x_32_def(dst0, dst1, src0, src0, src1, width);
- {
- int count = height;
-
- count -= 2;
- while(count) {
- dst0 += dstPitch/2;
- dst1 += dstPitch/2;
- internal_scale2x_32_def(dst0, dst1, src0, src1, src2, width);
- src0 = src1;
- src1 = src2;
- src2 += srcPitch/4;
- --count;
- }
- }
- dst0 += dstPitch/2;
- dst1 += dstPitch/2;
- internal_scale2x_32_def(dst0, dst1, src0, src1, src1, width);
-#ifdef MMX
- }
-#endif
-}
-
-
-
-unsigned int LUT16to32[65536];
-unsigned int RGBtoYUV[65536];
-
-void hq_init(void)
-{
- int i, j, k, r, g, b, Y, u, v;
-
- for (i=0; i<65536; i++)
- LUT16to32[i] = ((i & 0xF800) << 8) + ((i & 0x07E0) << 5) + ((i & 0x001F) << 3);
-
- for (i=0; i<32; i++) {
- for (j=0; j<64; j++) {
- for (k=0; k<32; k++) {
- r = i << 3;
- g = j << 2;
- b = k << 3;
- Y = (r + g + b) >> 2;
- u = 128 + ((r - b) >> 2);
- v = 128 + ((-r + 2*g -b)>>3);
- RGBtoYUV[ (i << 11) + (j << 5) + k ] = (Y<<16) + (u<<8) + v;
- }
- }
- }
-}
-
+++ /dev/null
-
-#include "sysconfig.h"
-#include "sysdeps.h"
-
-#include "options.h"
-#include "filter.h"
-#include "custom.h"
-#include "xwin.h"
-
-#include <math.h>
-
-static uae_s32 line_yuv_0[4096 * 3];
-static uae_s32 line_yuv_1[4096 * 3];
-static uae_u32 randomtable[4096];
-uae_u32 redc[3 * 256], grec[3 * 256], bluc[3 * 256];
-static uae_u32 *predc, *pgrec, *pbluc;
-static int randomoffset, randomshift;
-static int xx1, xx2, xx3, pal_noise_mask, scanlinelevel;
-
-uae_s32 tyhrgb[65536];
-uae_s32 tylrgb[65536];
-uae_s32 tcbrgb[65536];
-uae_s32 tcrrgb[65536];
-
-void PAL_init(int monid)
-{
- struct amigadisplay *ad = &adisplays[0];
-
- for (int i = 0; i < 4096; i++)
- randomtable[i] = rand() | (rand() << 15);
- predc = &redc[1 * 256];
- pgrec = &grec[1 * 256];
- pbluc = &bluc[1 * 256];
-
- if (currprefs.gfx_resolution == 0) {
- xx1 = 1;
- xx2 = 2;
- xx3 = 3;
- } else {
- xx1 = 2;
- xx2 = 5;
- xx3 = 7;
- }
- pal_noise_mask = (1 << (currprefs.gf[ad->gf_index].gfx_filter_noise * 7 / 100)) - 1;
- scanlinelevel = 128 - currprefs.gf[ad->gf_index].gfx_filter_scanlines * 128 / 100;
-}
-
-#if 0
-#define mm 256 * 256
-#define sat 256
-STATIC_INLINE int zyh(uae_u32 v)
-{
- return ((v >> 24) & 0xff) * mm;
-}
-STATIC_INLINE int zyl(uae_u32 v)
-{
- return ((v >> 16) & 0xff) * mm;
-}
-STATIC_INLINE int zcb(uae_u32 v)
-{
- return ((int)((uae_s8)(v >> 8))) * sat;
-}
-STATIC_INLINE int zcr(uae_u32 v)
-{
- return ((int)((uae_s8)(v >> 0))) * sat;
-}
-#endif
-
-STATIC_INLINE int zyhRGB(uae_u32 v)
-{
- return tyhrgb[v];
-}
-STATIC_INLINE int zylRGB(uae_u32 v)
-{
- return tylrgb[v];
-}
-STATIC_INLINE int zcbRGB(uae_u32 v)
-{
- return tcbrgb[v];
-}
-STATIC_INLINE int zcrRGB(uae_u32 v)
-{
- return tcrrgb[v];
-}
-
-#if 0
-void PAL_1x1_32(uae_u32 *src, int pitchs, uae_u32 *trg, int pitcht, int width, int height)
-{
- const uae_u32 *tmpsrc;
- uae_u32 *tmptrg;
- uae_s32 *lineptr0;
- uae_s32 *lineptr1;
- uae_s32 *line;
- uae_s32 *linepre;
- unsigned int x, y, wstart, wfast, wend, wint;
- int l, u, v;
- int red, grn, blu;
- int xt = 0;
- int yt = 0;
- int xs = 0;
- int ys = 0;
-
- pitchs /= sizeof (*trg);
- pitcht /= sizeof (*trg);
-
- src = src + pitchs * ys + xs - 2;
- trg = trg + pitcht * yt + xt;
- if (width < 8) {
- wstart = width;
- wfast = 0;
- wend = 0;
- } else {
- /* alignment: 8 pixels*/
- wstart = (unsigned int)(8 - ((unsigned long)trg & 7));
- wfast = (width - wstart) >> 3; /* fast loop for 8 pixel segments*/
- wend = (width - wstart) & 0x07; /* do not forget the rest*/
- }
- wint = width + 5;
- lineptr0 = line_yuv_0;
- lineptr1 = line_yuv_1;
-
- tmpsrc = src - pitchs;
- line = lineptr0;
- for (x = 0; x < wint; x++) {
- uae_u32 cl0, cl1, cl2, cl3;
-
- cl0 = tmpsrc[0];
- cl1 = tmpsrc[xx1];
- cl2 = tmpsrc[xx2];
- cl3 = tmpsrc[xx3];
- line[0] = 0;
- line[1] = zcb(cl0) + zcb(cl1) + zcb(cl2) + zcb(cl3);
- line[2] = zcr(cl0) + zcr(cl1) + zcr(cl2) + zcr(cl3);
- tmpsrc++;
- line += 3;
- }
-
- for (y = 0; y < height; y++) {
- int scn = (y & 1) ? scanlinelevel : 128;
- randomshift = rand() & 15;
- randomoffset = rand() & 2047;
-
- tmpsrc = src;
- tmptrg = trg;
-
- line = lineptr0;
- lineptr0 = lineptr1;
- lineptr1 = line;
-
- tmpsrc = src;
- line = lineptr0;
- for (x = 0; x < wint; x++) {
- int r = (randomtable[randomoffset++] >> randomshift) & pal_noise_mask;
- uae_u32 cl0, cl1, cl2, cl3;
- cl0 = tmpsrc[0];
- cl1 = tmpsrc[xx1];
- cl2 = tmpsrc[xx2];
- cl3 = tmpsrc[xx3];
- line[0] = (zyl(cl1) + zyh(cl2) * (scn - r) / 128 + zyl(cl3)) / 256; /* 1/4 + 1/2 + 1/4 */
- line[1] = zcb(cl0) + zcb(cl1) + zcb(cl2) + zcb(cl3);
- line[2] = zcr(cl0) + zcr(cl1) + zcr(cl2) + zcr(cl3);
- tmpsrc++;
- line += 3;
- }
-
- line = lineptr0;
- linepre = lineptr1;
- for (x = 0; x < (wfast << 3) + wend + wstart; x++) {
-
- l = line[0];
- u = (line[1] + linepre[1]) / 8;
- v = (line[2] + linepre[2]) / 8;
- line += 3;
- linepre += 3;
-
- red = (v + l) / 256;
- blu = (u + l) / 256;
- grn = (l * 256 - 50 * u - 130 * v) / (256 * 256);
- *tmptrg++ = predc[red] | pgrec[grn] | pbluc[blu];
- }
-
- src += pitchs;
- trg += pitcht;
- }
-}
-#endif
-
-void PAL_1x1_32(uae_u32 *src, int pitchs, uae_u32 *trg, int pitcht, int width, int height)
-{
- const uae_u32 *tmpsrc;
- uae_u32 *tmptrg;
- uae_s32 *lineptr0;
- uae_s32 *lineptr1;
- uae_s32 *line;
- uae_s32 *linepre;
- unsigned int x, y, wstart, wfast, wend, wint;
- int l, u, v;
- int red, grn, blu;
- int xt = 0;
- int yt = 0;
- int xs = 0;
- int ys = 0;
-
- pitchs /= sizeof (*trg);
- pitcht /= sizeof (*trg);
-
- src = src + pitchs * ys + xs - 2;
- trg = trg + pitcht * yt + xt + 2;
-
- if (width < 8) {
- wstart = width;
- wfast = 0;
- wend = 0;
- } else {
- /* alignment: 8 pixels*/
- wstart = (unsigned int)(8 - ((size_t)trg & 7));
- wfast = (width - wstart) >> 3; /* fast loop for 8 pixel segments*/
- wend = (width - wstart) & 0x07; /* do not forget the rest*/
- }
- wint = width + 5;
- lineptr0 = line_yuv_0;
- lineptr1 = line_yuv_1;
-
- tmpsrc = src - pitchs;
- line = lineptr0;
- for (x = 0; x < wint; x++) {
- uae_u32 cl0, cl1, cl2, cl3;
-
- cl0 = tmpsrc[0];
- cl1 = tmpsrc[xx1];
- cl2 = tmpsrc[xx2];
- cl3 = tmpsrc[xx3];
- line[0] = 0;
- line[1] = zcbRGB(cl0) + zcbRGB(cl1) + zcbRGB(cl2) + zcbRGB(cl3);
- line[2] = zcrRGB(cl0) + zcrRGB(cl1) + zcrRGB(cl2) + zcrRGB(cl3);
- tmpsrc++;
- line += 3;
- }
-
- for (y = 0; y < height; y++) {
- int scn = (y & 1) ? scanlinelevel : 128;
- randomshift = rand() & 15;
- randomoffset = rand() & 2047;
-
- tmpsrc = src;
- tmptrg = trg;
-
- line = lineptr0;
- lineptr0 = lineptr1;
- lineptr1 = line;
-
- tmpsrc = src;
- line = lineptr0;
- for (x = 0; x < wint; x++) {
- int r = (randomtable[randomoffset++] >> randomshift) & pal_noise_mask;
- uae_u32 cl0, cl1, cl2, cl3;
- cl0 = tmpsrc[0];
- cl1 = tmpsrc[xx1];
- cl2 = tmpsrc[xx2];
- cl3 = tmpsrc[xx3];
- line[0] = (zylRGB(cl1) + zyhRGB(cl2) * (scn - r) / 128 + zylRGB(cl3)) / 256; /* 1/4 + 1/2 + 1/4 */
- line[1] = zcbRGB(cl0) + zcbRGB(cl1) + zcbRGB(cl2) + zcbRGB(cl3);
- line[2] = zcrRGB(cl0) + zcrRGB(cl1) + zcrRGB(cl2) + zcrRGB(cl3);
- tmpsrc++;
- line += 3;
- }
-
- line = lineptr0;
- linepre = lineptr1;
- for (x = 0; x < (wfast << 3) + wend + wstart - 2; x++) {
-
- l = line[0];
- u = (line[1] + linepre[1]) / 8;
- v = (line[2] + linepre[2]) / 8;
- line += 3;
- linepre += 3;
-
- red = (v + l) / 256;
- blu = (u + l) / 256;
- grn = (l * 256 - 50 * u - 130 * v) / (256 * 256);
- *tmptrg++ = predc[red] | pgrec[grn] | pbluc[blu];
- }
-
- src += pitchs;
- trg += pitcht;
- }
-}
-
-void PAL_1x1_16(uae_u16 *src, int pitchs, uae_u16 *trg, int pitcht, int width, int height)
-{
- const uae_u16 *tmpsrc;
- uae_u16 *tmptrg;
- uae_s32 *lineptr0;
- uae_s32 *lineptr1;
- uae_s32 *line;
- uae_s32 *linepre;
- unsigned int x, y, wstart, wfast, wend, wint;
- int l, u, v;
- int red, grn, blu;
- int xt = 0;
- int yt = 0;
- int xs = 0;
- int ys = 0;
-
- pitchs /= sizeof (*trg);
- pitcht /= sizeof (*trg);
-
- src = src + pitchs * ys + xs - 2;
- trg = trg + pitcht * yt + xt + 2;
- if (width < 8) {
- wstart = width;
- wfast = 0;
- wend = 0;
- } else {
- /* alignment: 8 pixels*/
- wstart = (unsigned int)(8 - ((size_t)trg & 7));
- wfast = (width - wstart) >> 3; /* fast loop for 8 pixel segments*/
- wend = (width - wstart) & 0x07; /* do not forget the rest*/
- }
- wint = width + 5;
- lineptr0 = line_yuv_0;
- lineptr1 = line_yuv_1;
-
- tmpsrc = src - pitchs;
- line = lineptr0;
- for (x = 0; x < wint; x++) {
- uae_u32 cl0, cl1, cl2, cl3;
-
- cl0 = tmpsrc[0];
- cl1 = tmpsrc[xx1];
- cl2 = tmpsrc[xx2];
- cl3 = tmpsrc[xx3];
- line[0] = 0;
- line[1] = zcbRGB(cl0) + zcbRGB(cl1) + zcbRGB(cl2) + zcbRGB(cl3);
- line[2] = zcrRGB(cl0) + zcrRGB(cl1) + zcrRGB(cl2) + zcrRGB(cl3);
- tmpsrc++;
- line += 3;
- }
-
- for (y = 0; y < height; y++) {
- int scn = (y & 1) ? scanlinelevel : 128;
- randomshift = rand() & 15;
- randomoffset = rand() & 2047;
-
- tmpsrc = src;
- tmptrg = trg;
-
- line = lineptr0;
- lineptr0 = lineptr1;
- lineptr1 = line;
-
- tmpsrc = src;
- line = lineptr0;
- for (x = 0; x < wint; x++) {
- int r = (randomtable[randomoffset++] >> randomshift) & pal_noise_mask;
- uae_u32 cl0, cl1, cl2, cl3;
- cl0 = tmpsrc[0];
- cl1 = tmpsrc[xx1];
- cl2 = tmpsrc[xx2];
- cl3 = tmpsrc[xx3];
- line[0] = (zylRGB(cl1) + zyhRGB(cl2) * (scn - r) / 128 + zylRGB(cl3)) / 256; /* 1/4 + 1/2 + 1/4 */
- line[1] = zcbRGB(cl0) + zcbRGB(cl1) + zcbRGB(cl2) + zcbRGB(cl3);
- line[2] = zcrRGB(cl0) + zcrRGB(cl1) + zcrRGB(cl2) + zcrRGB(cl3);
- tmpsrc++;
- line += 3;
- }
-
- line = lineptr0;
- linepre = lineptr1;
- for (x = 0; x < (wfast << 3) + wend + wstart - 2; x++) {
-
- l = line[0];
- u = (line[1] + linepre[1]) / 8;
- v = (line[2] + linepre[2]) / 8;
- line += 3;
- linepre += 3;
-
- red = (v + l) / 256;
- blu = (u + l) / 256;
- grn = (l * 256 - 50 * u - 130 * v) / (256 * 256);
- *tmptrg++ = predc[red] | pgrec[grn] | pbluc[blu];
- }
-
- src += pitchs;
- trg += pitcht;
- }
-}
struct uae_filter uaefilters[] =
{
- { UAE_FILTER_NULL, 0, 1, _T("Null filter"), _T("null"), UAE_FILTER_MODE_16_16 | UAE_FILTER_MODE_32_32 },
+#if 0
+ { UAE_FILTER_NULL, 0, 1, _T("-"), _T("null"), UAE_FILTER_MODE_16_16 | UAE_FILTER_MODE_32_32 },
{ UAE_FILTER_SCALE2X, 0, 2, _T("Scale2X"), _T("scale2x"), UAE_FILTER_MODE_16_16 | UAE_FILTER_MODE_32_32 },
{ UAE_FILTER_2XSAI, 0, 2, _T("2xSaI"), _T("2xsai"), UAE_FILTER_MODE_16_16 | UAE_FILTER_MODE_16_32 },
{ UAE_FILTER_PAL, 1, 1, _T("PAL"), _T("pal"), UAE_FILTER_MODE_16_16 | UAE_FILTER_MODE_32_32 },
-
+#endif
{ 0 }
};
#endif
}
+#if 0
void S2X_configure(int monid, int rb, int gb, int bb, int rs, int gs, int bs)
{
if (monid)
}
#endif
+
+#endif
#define DM_D3D_FULLSCREEN 16
#define DM_PICASSO96 32
#define DM_D3D 256
-#define DM_SWSCALE 1024
#define SM_WINDOW 0
#define SM_FULLSCREEN_DX 2
gfx_lock();
if (mon->currentmode.flags & DM_D3D) {
v = D3D_renderframe(monid, mode, immediate);
- } else if (mon->currentmode.flags & DM_SWSCALE) {
- S2X_render(monid, -1, -1);
- v = true;
}
mon->render_ok = v;
gfx_unlock();
{
struct AmigaMonitor *mon = &AMonitors[vb->monitor_id];
if (mon->currentmode.flags & DM_D3D) {
- if (!(mon->currentmode.flags & DM_SWSCALE)) {
- vb->bufmem = D3D_locktexture(vb->monitor_id, &vb->rowbytes, NULL, NULL, false);
- if (vb->bufmem)
- return true;
- }
+ vb->bufmem = D3D_locktexture(vb->monitor_id, &vb->rowbytes, NULL, NULL, false);
+ if (vb->bufmem)
+ return true;
}
return false;
}
{
struct AmigaMonitor *mon = &AMonitors[vb->monitor_id];
if (mon->currentmode.flags & DM_D3D) {
- if (!(mon->currentmode.flags & DM_SWSCALE)) {
- D3D_unlocktexture(vb->monitor_id, -1, -1);
- }
+ D3D_unlocktexture(vb->monitor_id, -1, -1);
}
}
-int lockscr(struct vidbuffer *vb, bool fullupdate, bool first, bool skip)
+int lockscr(struct vidbuffer *vb, bool fullupdate, bool skip)
{
struct AmigaMonitor *mon = &AMonitors[vb->monitor_id];
int ret = 0;
- if (!isscreen(mon))
+ if (!isscreen(mon)) {
return ret;
-#if 0
- flushymin = mon->currentmode.amiga_height;
- flushymax = 0;
-#endif
+ }
gfx_lock();
- ret = 1;
- if (mon->currentmode.flags & DM_D3D) {
-#ifdef D3D
- if (mon->currentmode.flags & DM_SWSCALE) {
+ if (vb->vram_buffer) {
+ D3D_unlocktexture(vb->monitor_id, -1, -1);
+ vb->bufmem = D3D_locktexture(vb->monitor_id, &vb->rowbytes, NULL, NULL, skip ? -1 : (fullupdate ? 1 : 0));
+ if (vb->bufmem) {
ret = 1;
- } else {
- ret = 0;
- vb->bufmem = D3D_locktexture(vb->monitor_id, &vb->rowbytes, NULL, NULL, skip ? -1 : (fullupdate ? 1 : 0));
- if (vb->bufmem) {
- if (first)
- init_row_map();
- ret = 1;
- }
}
-#endif
- } else if (mon->currentmode.flags & DM_SWSCALE) {
+ vb->width_allocated = mon->currentmode.native_width;
+ vb->height_allocated = mon->currentmode.native_height;
+ } else {
ret = 1;
}
+ if (ret) {
+ vb->locked = true;
+ }
gfx_unlock();
return ret;
}
{
struct AmigaMonitor *mon = &AMonitors[vb->monitor_id];
gfx_lock();
- if (mon->currentmode.flags & DM_D3D) {
- if (mon->currentmode.flags & DM_SWSCALE) {
- S2X_render(vb->monitor_id, y_start, y_end);
- } else {
- vb->bufmem = NULL;
- }
+ if (vb->vram_buffer) {
+ vb->bufmem = NULL;
D3D_unlocktexture(vb->monitor_id, y_start, y_end);
}
+ vb->locked = false;
gfx_unlock();
}
{
if (!vb)
return;
- if (lockscr(vb, true, true, false)) {
+ if (lockscr(vb, true, false)) {
int y;
for (y = 0; y < vb->height_allocated; y++) {
memset(vb->bufmem + y * vb->rowbytes, 0, vb->width_allocated * vb->pixbytes);
flags |= DM_DX_FULLSCREEN;
else if (isfullscreen () < 0)
flags |= DM_W_FULLSCREEN;
-#if defined (GFXFILTER)
- if (usedfilter) {
- flags |= DM_SWSCALE;
- if (mon->currentmode.current_depth < 15)
- mon->currentmode.current_depth = 16;
- }
-#endif
flags |= DM_D3D;
if (flags & DM_DX_FULLSCREEN) {
flags &= ~DM_DX_FULLSCREEN;
flags |= DM_D3D_FULLSCREEN;
}
mon->currentmode.flags = flags;
- if (flags & DM_SWSCALE)
- mon->currentmode.fullfill = 1;
if (flags & DM_W_FULLSCREEN) {
RECT rc = getdisplay(&currprefs, mon->monitor_id)->rect;
mon->currentmode.native_width = rc.right - rc.left;
} else {
c |= 16;
reset_drawing();
+#if 0
S2X_reset(mon->monitor_id);
+#endif
}
}
if (c & 1024) {
}
alloc_colors64k(monid, red_bits, green_bits, blue_bits, red_shift,green_shift, blue_shift, alpha_bits, alpha_shift, alpha, 0, mon->usedfilter && mon->usedfilter->yuv);
notice_new_xcolors ();
-#ifdef GFXFILTER
+#if 0
S2X_configure(monid, red_bits, green_bits, blue_bits, red_shift,green_shift, blue_shift);
#endif
#ifdef AVIOUTPUT
setDwmEnableMMCSS (FALSE);
reset_sound ();
-#if defined (GFXFILTER)
+#if 0
S2X_free(mon->monitor_id);
#endif
freevidbuffer(mon->monitor_id, &avidinfo->drawbuffer);
buf->width_allocated = (width + 7) & ~7;
buf->height_allocated = height;
- if (!(flags & DM_SWSCALE)) {
-
- if (buf != &vidinfo->drawbuffer)
- return;
+ if (buf == &vidinfo->drawbuffer) {
buf->bufmem = NULL;
buf->bufmemend = NULL;
buf->realbufmem = NULL;
buf->bufmem_allocated = NULL;
buf->bufmem_lockable = true;
+ buf->vram_buffer = true;
- write_log (_T("Mon %d reserved %s temp buffer (%d*%d*%d)\n"), monid, name, width, height, depth);
+ write_log(_T("Mon %d reserved %s draw buffer (%d*%d*%d)\n"), monid, name, width, height, depth);
- } else if (flags & DM_SWSCALE) {
+ } else {
int w = buf->width_allocated;
int h = buf->height_allocated;
buf->bufmemend = buf->realbufmem + size - buf->rowbytes;
buf->bufmem_lockable = true;
- write_log (_T("Mon %d allocated %s temp buffer (%d*%d*%d) = %p\n"), monid, name, width, height, depth, buf->realbufmem);
+ write_log(_T("Mon %d allocated %s temp buffer (%d*%d*%d) = %p\n"), monid, name, width, height, depth, buf->realbufmem);
+ return;
}
+
}
static int oldtex_w[MAX_AMIGAMONITORS], oldtex_h[MAX_AMIGAMONITORS], oldtex_rtg[MAX_AMIGAMONITORS];
//gfxvidinfo.drawbuffer.gfx_resolution_reserved = RES_SUPERHIRES;
#if defined (GFXFILTER)
- if (mon->currentmode.flags & (DM_D3D | DM_SWSCALE)) {
+ if (mon->currentmode.flags & DM_D3D) {
if (!currprefs.gfx_autoresolution) {
mon->currentmode.amiga_width = AMIGA_WIDTH_MAX << currprefs.gfx_resolution;
mon->currentmode.amiga_height = AMIGA_HEIGHT_MAX << currprefs.gfx_vresolution;
avidinfo->drawbuffer.inwidth = avidinfo->drawbuffer.outwidth = mon->currentmode.amiga_width;
avidinfo->drawbuffer.inheight = avidinfo->drawbuffer.outheight = mon->currentmode.amiga_height;
- if (usedfilter) {
- if ((usedfilter->flags & (UAE_FILTER_MODE_16 | UAE_FILTER_MODE_32)) == (UAE_FILTER_MODE_16 | UAE_FILTER_MODE_32)) {
- mon->currentmode.current_depth = mon->currentmode.native_depth;
- } else {
- mon->currentmode.current_depth = (usedfilter->flags & UAE_FILTER_MODE_32) ? 32 : 16;
- }
- }
+ mon->currentmode.current_depth = mon->currentmode.native_depth;
mon->currentmode.pitch = mon->currentmode.amiga_width * mon->currentmode.current_depth >> 3;
}
else
avidinfo->drawbuffer.bufmem_lockable = false;
avidinfo->outbuffer = &avidinfo->drawbuffer;
- avidinfo->inbuffer = &avidinfo->drawbuffer;
if (!mon->screen_is_picasso) {
allocsoftbuffer(mon->monitor_id, _T("draw"), &avidinfo->drawbuffer, mon->currentmode.flags,
1920, 1280, mon->currentmode.current_depth);
- if (currprefs.monitoremu || currprefs.cs_cd32fmv || ((currprefs.genlock || currprefs.genlock_effects) && currprefs.genlock_image) || currprefs.cs_color_burst || currprefs.gfx_grayscale) {
+ avidinfo->inbuffer = &avidinfo->drawbuffer;
+ if (currprefs.monitoremu || currprefs.cs_cd32fmv || ((currprefs.genlock || currprefs.genlock_effects) && currprefs.genlock_image) ||
+ currprefs.cs_color_burst || currprefs.gfx_grayscale || currprefs.monitoremu) {
allocsoftbuffer(mon->monitor_id, _T("monemu"), &avidinfo->tempbuffer, mon->currentmode.flags,
mon->currentmode.amiga_width > 1024 ? mon->currentmode.amiga_width : 1024,
mon->currentmode.amiga_height > 1024 ? mon->currentmode.amiga_height : 1024,
mon->currentmode.current_depth);
+ avidinfo->inbuffer = &avidinfo->tempbuffer;
}
- init_row_map ();
+ //init_row_map ();
}
+#if 0
S2X_free(mon->monitor_id);
+#endif
if (!D3D_isenabled(mon->monitor_id)) {
for (int i = 0; i < MAX_AMIGAMONITORS; i++) {
oldtex_w[i] = oldtex_h[i] = -1;
w = state->Width;
h = state->Height;
} else {
- struct vidbuffer *vb = avidinfo->drawbuffer.tempbufferinuse ? &avidinfo->tempbuffer : &avidinfo->drawbuffer;
- avidinfo->outbuffer = vb;
+ //struct vidbuffer *vb = avidinfo->drawbuffer.tempbufferinuse ? &avidinfo->tempbuffer : &avidinfo->drawbuffer;
+ //avidinfo->outbuffer = vb;
+ struct vidbuffer *vb = avidinfo->inbuffer;
+ if (!vb) {
+ return false;
+ }
w = vb->outwidth;
h = vb->outheight;
}
return false;
}
+#if 0
S2X_free(mon->monitor_id);
+#endif
if (!D3D_alloctexture(mon->monitor_id, w, h)) {
graphicsbuffer_retry = true;
return false;
}
+ if (avidinfo->inbuffer != avidinfo->outbuffer) {
+ avidinfo->outbuffer->inwidth = w;
+ avidinfo->outbuffer->inheight = h;
+ avidinfo->outbuffer->width_allocated = w;
+ avidinfo->outbuffer->height_allocated = h;
+ }
+
oldtex_w[monid] = w;
oldtex_h[monid] = h;
oldtex_rtg[monid] = mon->screen_is_picasso;
write_log (_T("Buffer %d size (%d*%d) %s\n"), monid, w, h, mon->screen_is_picasso ? _T("RTG") : _T("Native"));
+#if 0
if ((mon->currentmode.flags & DM_SWSCALE) && !mon->screen_is_picasso) {
if (!S2X_init(mon->monitor_id, mon->currentmode.native_width, mon->currentmode.native_height, mon->currentmode.native_depth))
return false;
}
+#endif
return true;
}
<ClCompile Include="..\registry.cpp" />
<ClCompile Include="..\cloanto\RetroPlatformGuestIPC.cpp" />
<ClCompile Include="..\rp.cpp" />
- <ClCompile Include="..\scaler.cpp" />
- <ClCompile Include="..\scaler_more.cpp" />
<ClCompile Include="..\screenshot.cpp" />
<ClCompile Include="..\serial_win32.cpp" />
<ClCompile Include="..\sounddep\sound.cpp" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|ARM64EC'">true</ExcludedFromBuild>
</CustomBuild>
- <CustomBuild Include="..\hq2x16.asm">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">false</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">false</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Test|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Test|ARM64EC'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64EC'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|ARM64EC'">true</ExcludedFromBuild>
- <FileType>Document</FileType>
- <Command Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">nasm -w-orphan-labels -f win32 %(FullPath) -o $(IntDir)%(filename).obj</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">nasm -w-orphan-labels -f win32 %(FullPath) -o $(IntDir)%(filename).obj</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">nasm -w-orphan-labels -f win32 %(FullPath) -o $(IntDir)%(filename).obj</Command>
- <Message Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">Assembling %(filename)</Message>
- <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Assembling %(filename)</Message>
- <Message Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">Assembling %(filename)</Message>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">$(IntDir)%(filename).obj</Outputs>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(filename).obj</Outputs>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">$(IntDir)%(filename).obj</Outputs>
- </CustomBuild>
- <CustomBuild Include="..\hq2x32.asm">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">false</ExcludedFromBuild>
- <FileType>Document</FileType>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">false</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Test|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Test|ARM64EC'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64EC'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|ARM64EC'">true</ExcludedFromBuild>
- <Command Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">nasm -w-orphan-labels -f win32 %(FullPath) -o $(IntDir)%(filename).obj</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">nasm -w-orphan-labels -f win32 %(FullPath) -o $(IntDir)%(filename).obj</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">nasm -w-orphan-labels -f win32 %(FullPath) -o $(IntDir)%(filename).obj</Command>
- <Message Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">Assembling %(filename)</Message>
- <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Assembling %(filename)</Message>
- <Message Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">Assembling %(filename)</Message>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">$(IntDir)%(filename).obj</Outputs>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(filename).obj</Outputs>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">$(IntDir)%(filename).obj</Outputs>
- </CustomBuild>
- <CustomBuild Include="..\hq3x16.asm">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">false</ExcludedFromBuild>
- <FileType>Document</FileType>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">false</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Test|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Test|ARM64EC'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64EC'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|ARM64EC'">true</ExcludedFromBuild>
- <Command Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">nasm -w-orphan-labels -f win32 %(FullPath) -o $(IntDir)%(filename).obj</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">nasm -w-orphan-labels -f win32 %(FullPath) -o $(IntDir)%(filename).obj</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">nasm -w-orphan-labels -f win32 %(FullPath) -o $(IntDir)%(filename).obj</Command>
- <Message Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">Assembling %(filename)</Message>
- <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Assembling %(filename)</Message>
- <Message Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">Assembling %(filename)</Message>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">$(IntDir)%(filename).obj</Outputs>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(filename).obj</Outputs>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">$(IntDir)%(filename).obj</Outputs>
- </CustomBuild>
- <CustomBuild Include="..\hq3x32.asm">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">false</ExcludedFromBuild>
- <FileType>Document</FileType>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">false</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Test|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Test|ARM64EC'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64EC'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|ARM64EC'">true</ExcludedFromBuild>
- <Command Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">nasm -w-orphan-labels -f win32 %(FullPath) -o $(IntDir)%(filename).obj</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">nasm -w-orphan-labels -f win32 %(FullPath) -o $(IntDir)%(filename).obj</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">nasm -w-orphan-labels -f win32 %(FullPath) -o $(IntDir)%(filename).obj</Command>
- <Message Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">Assembling %(filename)</Message>
- <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Assembling %(filename)</Message>
- <Message Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">Assembling %(filename)</Message>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">$(IntDir)%(filename).obj</Outputs>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(filename).obj</Outputs>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">$(IntDir)%(filename).obj</Outputs>
- </CustomBuild>
- <CustomBuild Include="..\hq4x16.asm">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">false</ExcludedFromBuild>
- <FileType>Document</FileType>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">false</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Test|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Test|ARM64EC'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64EC'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|ARM64EC'">true</ExcludedFromBuild>
- <Command Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">nasm -w-orphan-labels -f win32 %(FullPath) -o $(IntDir)%(filename).obj</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">nasm -w-orphan-labels -f win32 %(FullPath) -o $(IntDir)%(filename).obj</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">nasm -w-orphan-labels -f win32 %(FullPath) -o $(IntDir)%(filename).obj</Command>
- <Message Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">Assembling %(filename)</Message>
- <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Assembling %(filename)</Message>
- <Message Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">Assembling %(filename)</Message>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">$(IntDir)%(filename).obj</Outputs>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(filename).obj</Outputs>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">$(IntDir)%(filename).obj</Outputs>
- </CustomBuild>
- <CustomBuild Include="..\hq4x32.asm">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">false</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">false</ExcludedFromBuild>
- <FileType>Document</FileType>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Test|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Test|ARM64EC'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64EC'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|ARM64EC'">true</ExcludedFromBuild>
- <Command Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">nasm -w-orphan-labels -f win32 %(FullPath) -o $(IntDir)%(filename).obj</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">nasm -w-orphan-labels -f win32 %(FullPath) -o $(IntDir)%(filename).obj</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">nasm -w-orphan-labels -f win32 %(FullPath) -o $(IntDir)%(filename).obj</Command>
- <Message Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">Assembling %(filename)</Message>
- <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Assembling %(filename)</Message>
- <Message Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">Assembling %(filename)</Message>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">$(IntDir)%(filename).obj</Outputs>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(filename).obj</Outputs>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">$(IntDir)%(filename).obj</Outputs>
- </CustomBuild>
<None Include="..\resources\35floppy.ico" />
<None Include="..\resources\amigainfo.ico" />
<None Include="..\resources\avioutput.ico" />
<ClCompile Include="..\hardfile_win32.cpp">
<Filter>win32</Filter>
</ClCompile>
- <ClCompile Include="..\hq2x_d3d.cpp">
- <Filter>win32</Filter>
- </ClCompile>
<ClCompile Include="..\ioport.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\rp.cpp">
<Filter>win32</Filter>
</ClCompile>
- <ClCompile Include="..\scaler.cpp">
- <Filter>win32</Filter>
- </ClCompile>
- <ClCompile Include="..\scaler_more.cpp">
- <Filter>win32</Filter>
- </ClCompile>
<ClCompile Include="..\screenshot.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\..\pcem\vid_tvp3026_ramdac.cpp">
<Filter>pcem</Filter>
</ClCompile>
+ <ClCompile Include="..\hq2x_d3d.cpp">
+ <Filter>win32</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="..\resources\35floppy.ico">
<Filter>nasm</Filter>
</CustomBuild>
<CustomBuild Include="..\fpux86_80.asm" />
- <CustomBuild Include="..\hq2x16.asm" />
- <CustomBuild Include="..\hq2x32.asm" />
- <CustomBuild Include="..\hq3x16.asm" />
- <CustomBuild Include="..\hq3x32.asm" />
- <CustomBuild Include="..\hq4x16.asm" />
- <CustomBuild Include="..\hq4x32.asm" />
</ItemGroup>
</Project>
\ No newline at end of file