xref: /aosp_15_r20/external/libjpeg-turbo/simd/nasm/jcolsamp.inc (revision dfc6aa5c1cfd4bc4e2018dc74aa96e29ee49c6da)
1*dfc6aa5cSAndroid Build Coastguard Worker;
2*dfc6aa5cSAndroid Build Coastguard Worker; jcolsamp.inc - private declarations for color conversion & up/downsampling
3*dfc6aa5cSAndroid Build Coastguard Worker;
4*dfc6aa5cSAndroid Build Coastguard Worker; Copyright 2009 Pierre Ossman <[email protected]> for Cendio AB
5*dfc6aa5cSAndroid Build Coastguard Worker; Copyright (C) 2015, Intel Corporation.
6*dfc6aa5cSAndroid Build Coastguard Worker;
7*dfc6aa5cSAndroid Build Coastguard Worker; Based on the x86 SIMD extension for IJG JPEG library
8*dfc6aa5cSAndroid Build Coastguard Worker; Copyright (C) 1999-2006, MIYASAKA Masaru.
9*dfc6aa5cSAndroid Build Coastguard Worker; For conditions of distribution and use, see copyright notice in jsimdext.inc
10*dfc6aa5cSAndroid Build Coastguard Worker
11*dfc6aa5cSAndroid Build Coastguard Worker; --------------------------------------------------------------------------
12*dfc6aa5cSAndroid Build Coastguard Worker
13*dfc6aa5cSAndroid Build Coastguard Worker; pseudo-resisters to make ordering of RGB configurable
14*dfc6aa5cSAndroid Build Coastguard Worker;
15*dfc6aa5cSAndroid Build Coastguard Worker%if RGB_RED == 0
16*dfc6aa5cSAndroid Build Coastguard Worker%define mmA  mm0
17*dfc6aa5cSAndroid Build Coastguard Worker%define mmB  mm1
18*dfc6aa5cSAndroid Build Coastguard Worker%define xmmA  xmm0
19*dfc6aa5cSAndroid Build Coastguard Worker%define xmmB  xmm1
20*dfc6aa5cSAndroid Build Coastguard Worker%define ymmA  ymm0
21*dfc6aa5cSAndroid Build Coastguard Worker%define ymmB  ymm1
22*dfc6aa5cSAndroid Build Coastguard Worker%elif RGB_GREEN == 0
23*dfc6aa5cSAndroid Build Coastguard Worker%define mmA  mm2
24*dfc6aa5cSAndroid Build Coastguard Worker%define mmB  mm3
25*dfc6aa5cSAndroid Build Coastguard Worker%define xmmA  xmm2
26*dfc6aa5cSAndroid Build Coastguard Worker%define xmmB  xmm3
27*dfc6aa5cSAndroid Build Coastguard Worker%define ymmA  ymm2
28*dfc6aa5cSAndroid Build Coastguard Worker%define ymmB  ymm3
29*dfc6aa5cSAndroid Build Coastguard Worker%elif RGB_BLUE == 0
30*dfc6aa5cSAndroid Build Coastguard Worker%define mmA  mm4
31*dfc6aa5cSAndroid Build Coastguard Worker%define mmB  mm5
32*dfc6aa5cSAndroid Build Coastguard Worker%define xmmA  xmm4
33*dfc6aa5cSAndroid Build Coastguard Worker%define xmmB  xmm5
34*dfc6aa5cSAndroid Build Coastguard Worker%define ymmA  ymm4
35*dfc6aa5cSAndroid Build Coastguard Worker%define ymmB  ymm5
36*dfc6aa5cSAndroid Build Coastguard Worker%else
37*dfc6aa5cSAndroid Build Coastguard Worker%define mmA  mm6
38*dfc6aa5cSAndroid Build Coastguard Worker%define mmB  mm7
39*dfc6aa5cSAndroid Build Coastguard Worker%define xmmA  xmm6
40*dfc6aa5cSAndroid Build Coastguard Worker%define xmmB  xmm7
41*dfc6aa5cSAndroid Build Coastguard Worker%define ymmA  ymm6
42*dfc6aa5cSAndroid Build Coastguard Worker%define ymmB  ymm7
43*dfc6aa5cSAndroid Build Coastguard Worker%endif
44*dfc6aa5cSAndroid Build Coastguard Worker
45*dfc6aa5cSAndroid Build Coastguard Worker%if RGB_RED == 1
46*dfc6aa5cSAndroid Build Coastguard Worker%define mmC  mm0
47*dfc6aa5cSAndroid Build Coastguard Worker%define mmD  mm1
48*dfc6aa5cSAndroid Build Coastguard Worker%define xmmC  xmm0
49*dfc6aa5cSAndroid Build Coastguard Worker%define xmmD  xmm1
50*dfc6aa5cSAndroid Build Coastguard Worker%define ymmC  ymm0
51*dfc6aa5cSAndroid Build Coastguard Worker%define ymmD  ymm1
52*dfc6aa5cSAndroid Build Coastguard Worker%elif RGB_GREEN == 1
53*dfc6aa5cSAndroid Build Coastguard Worker%define mmC  mm2
54*dfc6aa5cSAndroid Build Coastguard Worker%define mmD  mm3
55*dfc6aa5cSAndroid Build Coastguard Worker%define xmmC  xmm2
56*dfc6aa5cSAndroid Build Coastguard Worker%define xmmD  xmm3
57*dfc6aa5cSAndroid Build Coastguard Worker%define ymmC  ymm2
58*dfc6aa5cSAndroid Build Coastguard Worker%define ymmD  ymm3
59*dfc6aa5cSAndroid Build Coastguard Worker%elif RGB_BLUE == 1
60*dfc6aa5cSAndroid Build Coastguard Worker%define mmC  mm4
61*dfc6aa5cSAndroid Build Coastguard Worker%define mmD  mm5
62*dfc6aa5cSAndroid Build Coastguard Worker%define xmmC  xmm4
63*dfc6aa5cSAndroid Build Coastguard Worker%define xmmD  xmm5
64*dfc6aa5cSAndroid Build Coastguard Worker%define ymmC  ymm4
65*dfc6aa5cSAndroid Build Coastguard Worker%define ymmD  ymm5
66*dfc6aa5cSAndroid Build Coastguard Worker%else
67*dfc6aa5cSAndroid Build Coastguard Worker%define mmC  mm6
68*dfc6aa5cSAndroid Build Coastguard Worker%define mmD  mm7
69*dfc6aa5cSAndroid Build Coastguard Worker%define xmmC  xmm6
70*dfc6aa5cSAndroid Build Coastguard Worker%define xmmD  xmm7
71*dfc6aa5cSAndroid Build Coastguard Worker%define ymmC  ymm6
72*dfc6aa5cSAndroid Build Coastguard Worker%define ymmD  ymm7
73*dfc6aa5cSAndroid Build Coastguard Worker%endif
74*dfc6aa5cSAndroid Build Coastguard Worker
75*dfc6aa5cSAndroid Build Coastguard Worker%if RGB_RED == 2
76*dfc6aa5cSAndroid Build Coastguard Worker%define mmE  mm0
77*dfc6aa5cSAndroid Build Coastguard Worker%define mmF  mm1
78*dfc6aa5cSAndroid Build Coastguard Worker%define xmmE  xmm0
79*dfc6aa5cSAndroid Build Coastguard Worker%define xmmF  xmm1
80*dfc6aa5cSAndroid Build Coastguard Worker%define ymmE  ymm0
81*dfc6aa5cSAndroid Build Coastguard Worker%define ymmF  ymm1
82*dfc6aa5cSAndroid Build Coastguard Worker%elif RGB_GREEN == 2
83*dfc6aa5cSAndroid Build Coastguard Worker%define mmE  mm2
84*dfc6aa5cSAndroid Build Coastguard Worker%define mmF  mm3
85*dfc6aa5cSAndroid Build Coastguard Worker%define xmmE  xmm2
86*dfc6aa5cSAndroid Build Coastguard Worker%define xmmF  xmm3
87*dfc6aa5cSAndroid Build Coastguard Worker%define ymmE  ymm2
88*dfc6aa5cSAndroid Build Coastguard Worker%define ymmF  ymm3
89*dfc6aa5cSAndroid Build Coastguard Worker%elif RGB_BLUE == 2
90*dfc6aa5cSAndroid Build Coastguard Worker%define mmE  mm4
91*dfc6aa5cSAndroid Build Coastguard Worker%define mmF  mm5
92*dfc6aa5cSAndroid Build Coastguard Worker%define xmmE  xmm4
93*dfc6aa5cSAndroid Build Coastguard Worker%define xmmF  xmm5
94*dfc6aa5cSAndroid Build Coastguard Worker%define ymmE  ymm4
95*dfc6aa5cSAndroid Build Coastguard Worker%define ymmF  ymm5
96*dfc6aa5cSAndroid Build Coastguard Worker%else
97*dfc6aa5cSAndroid Build Coastguard Worker%define mmE  mm6
98*dfc6aa5cSAndroid Build Coastguard Worker%define mmF  mm7
99*dfc6aa5cSAndroid Build Coastguard Worker%define xmmE  xmm6
100*dfc6aa5cSAndroid Build Coastguard Worker%define xmmF  xmm7
101*dfc6aa5cSAndroid Build Coastguard Worker%define ymmE  ymm6
102*dfc6aa5cSAndroid Build Coastguard Worker%define ymmF  ymm7
103*dfc6aa5cSAndroid Build Coastguard Worker%endif
104*dfc6aa5cSAndroid Build Coastguard Worker
105*dfc6aa5cSAndroid Build Coastguard Worker%if RGB_RED == 3
106*dfc6aa5cSAndroid Build Coastguard Worker%define mmG  mm0
107*dfc6aa5cSAndroid Build Coastguard Worker%define mmH  mm1
108*dfc6aa5cSAndroid Build Coastguard Worker%define xmmG  xmm0
109*dfc6aa5cSAndroid Build Coastguard Worker%define xmmH  xmm1
110*dfc6aa5cSAndroid Build Coastguard Worker%define ymmG  ymm0
111*dfc6aa5cSAndroid Build Coastguard Worker%define ymmH  ymm1
112*dfc6aa5cSAndroid Build Coastguard Worker%elif RGB_GREEN == 3
113*dfc6aa5cSAndroid Build Coastguard Worker%define mmG  mm2
114*dfc6aa5cSAndroid Build Coastguard Worker%define mmH  mm3
115*dfc6aa5cSAndroid Build Coastguard Worker%define xmmG  xmm2
116*dfc6aa5cSAndroid Build Coastguard Worker%define xmmH  xmm3
117*dfc6aa5cSAndroid Build Coastguard Worker%define ymmG  ymm2
118*dfc6aa5cSAndroid Build Coastguard Worker%define ymmH  ymm3
119*dfc6aa5cSAndroid Build Coastguard Worker%elif RGB_BLUE == 3
120*dfc6aa5cSAndroid Build Coastguard Worker%define mmG  mm4
121*dfc6aa5cSAndroid Build Coastguard Worker%define mmH  mm5
122*dfc6aa5cSAndroid Build Coastguard Worker%define xmmG  xmm4
123*dfc6aa5cSAndroid Build Coastguard Worker%define xmmH  xmm5
124*dfc6aa5cSAndroid Build Coastguard Worker%define ymmG  ymm4
125*dfc6aa5cSAndroid Build Coastguard Worker%define ymmH  ymm5
126*dfc6aa5cSAndroid Build Coastguard Worker%else
127*dfc6aa5cSAndroid Build Coastguard Worker%define mmG  mm6
128*dfc6aa5cSAndroid Build Coastguard Worker%define mmH  mm7
129*dfc6aa5cSAndroid Build Coastguard Worker%define xmmG  xmm6
130*dfc6aa5cSAndroid Build Coastguard Worker%define xmmH  xmm7
131*dfc6aa5cSAndroid Build Coastguard Worker%define ymmG  ymm6
132*dfc6aa5cSAndroid Build Coastguard Worker%define ymmH  ymm7
133*dfc6aa5cSAndroid Build Coastguard Worker%endif
134*dfc6aa5cSAndroid Build Coastguard Worker
135*dfc6aa5cSAndroid Build Coastguard Worker; --------------------------------------------------------------------------
136