]>
Commit | Line | Data |
---|---|---|
78efc24c JB |
1 | --- xavs2-1.4/source/common/x86/quant8.asm.orig 2023-04-09 09:12:17.196476871 +0200 |
2 | +++ xavs2-1.4/source/common/x86/quant8.asm 2023-04-09 09:13:53.645954359 +0200 | |
3 | @@ -48,9 +48,15 @@ cextern pd_n32768 | |
4 | INIT_XMM sse4\r | |
5 | cglobal quant, 2,3,8\r | |
6 | ;{\r | |
7 | +%if ARCH_X86_64\r | |
8 | movq m4, r2mp ; m4[0] = scale\r | |
9 | movq m5, r3mp ; m5[0] = shift\r | |
10 | movq m6, r4mp ; m6[0] = add\r | |
11 | +%else\r | |
12 | + movd m4, r2mp ; m4[0] = scale\r | |
13 | + movd m5, r3mp ; m5[0] = shift\r | |
14 | + movd m6, r4mp ; m6[0] = add\r | |
15 | +%endif\r | |
16 | mov r2, r1 ; r2 = i_coef\r | |
17 | shr r1, 3 ; r1 = i_coef/8\r | |
18 | pxor m7, m7 ; m7 <-- num_non_zero = 0\r | |
19 | @@ -86,9 +92,15 @@ cglobal quant, 2,3,8 | |
20 | ;\r | |
21 | packuswb m7, m7 ;\r | |
22 | psadbw m7, m0 ;\r | |
23 | +%if ARCH_X86_64\r | |
24 | movifnidn rax, r2 ; eax <-- i_coef\r | |
25 | movq r1, m7 ;\r | |
26 | sub rax, r1 ; return value: num_non_zero\r | |
27 | +%else\r | |
28 | + movifnidn eax, r2 ; eax <-- i_coef\r | |
29 | + movd r1, m7 ;\r | |
30 | + sub eax, r1 ; return value: num_non_zero\r | |
31 | +%endif\r | |
32 | RET ; return\r | |
33 | ;}\r | |
34 | \r | |
35 | @@ -103,13 +103,22 @@ INIT_XMM sse4 | |
36 | cglobal dequant, 2,4,7\r | |
37 | ;{\r | |
38 | mov r3, r3mp ; r3 <-- shift\r | |
39 | +%if ARCH_X86_64\r | |
40 | movq m4, r2mp ; m4[0] = scale\r | |
41 | movq m6, r3 ; m6[0] = shift\r | |
42 | +%else\r | |
43 | + movd m4, r2mp ; m4[0] = scale\r | |
44 | + movd m6, r3 ; m6[0] = shift\r | |
45 | +%endif\r | |
46 | dec r3 ; r3d <-- shift - 1\r | |
47 | xor r2, r2 ; r2 <-- 0\r | |
48 | shr r1, 4 ; r1 = i_coef/16\r | |
49 | bts r2, r3 ; r2 <-- add = 1 < (shift - 1)\r | |
50 | +%if ARCH_X86_64\r | |
51 | movq m5, r2 ; m5[0] = add\r | |
52 | +%else\r | |
53 | + movd m5, r2 ; m5[0] = add\r | |
54 | +%endif\r | |
55 | pshufd m4, m4, 0 ; m4[3210] = scale\r | |
56 | pshufd m5, m5, 0 ; m5[3210] = add\r | |
57 | ;\r |