x86inc can translate r*m into a register or stack on its own
Showing the changes to libavcodec (1 of 1 file). Show all
Unified · Split
| @@ -80,14 +80,10 @@ LPC_32 sse4 · 79 unmodified lines | |||
| 80 | ;---------------------------------------------------------------------------------- | 80 | ;---------------------------------------------------------------------------------- |
| 81 | %macro FLAC_DECORRELATE_16 3-4 | 81 | %macro FLAC_DECORRELATE_16 3-4 |
| 82 | cglobal flac_decorrelate_%1_16, 2, 4, 4, out, in0, in1, len | 82 | cglobal flac_decorrelate_%1_16, 2, 4, 4, out, in0, in1, len |
| 83 | %if ARCH_X86_32 || WIN64 | ||
| 84 | movd m3, r4m | ||
| 85 | %if ARCH_X86_32 | 83 | %if ARCH_X86_32 |
| 86 | mov lend, lenm | 84 | mov lend, lenm |
| 87 | %endif | 85 | %endif |
| 88 | %else ; UNIX64 | 86 | movd m3, r4m |
| 89 | movd m3, r4d | ||
| 90 | %endif | ||
| 91 | shl lend, 2 | 87 | shl lend, 2 |
| 92 | mov in1q, [in0q + gprsize] | 88 | mov in1q, [in0q + gprsize] |
| 93 | mov in0q, [in0q] | 89 | mov in0q, [in0q] |
| @@ -129,14 +125,10 @@ FLAC_DECORRELATE_16 ms, 2, 0, add · 35 unmodified lines | |||
| 129 | ;---------------------------------------------------------------------------------- | 125 | ;---------------------------------------------------------------------------------- |
| 130 | %macro FLAC_DECORRELATE_32 5 | 126 | %macro FLAC_DECORRELATE_32 5 |
| 131 | cglobal flac_decorrelate_%1_32, 2, 4, 4, out, in0, in1, len | 127 | cglobal flac_decorrelate_%1_32, 2, 4, 4, out, in0, in1, len |
| 132 | %if ARCH_X86_32 || WIN64 | ||
| 133 | movd m3, r4m | ||
| 134 | %if ARCH_X86_32 | 128 | %if ARCH_X86_32 |
| 135 | mov lend, lenm | 129 | mov lend, lenm |
| 136 | %endif | 130 | %endif |
| 137 | %else ; UNIX64 | 131 | movd m3, r4m |
| 138 | movd m3, r4d | ||
| 139 | %endif | ||
| 140 | mov in1q, [in0q + gprsize] | 132 | mov in1q, [in0q + gprsize] |
| 141 | mov in0q, [in0q] | 133 | mov in0q, [in0q] |
| 142 | mov outq, [outq] | 134 | mov outq, [outq] |
| @@ -183,18 +175,14 @@ FLAC_DECORRELATE_32 ms, 2, 0, 1, add · 40 unmodified lines | |||
| 183 | %define REPCOUNT %2/(32/%1) ; 16bits = channels / 2; 32bits = channels | 175 | %define REPCOUNT %2/(32/%1) ; 16bits = channels / 2; 32bits = channels |
| 184 | cglobal flac_decorrelate_indep%2_%1, 2, %2+2, %3+1, out, in0, in1, len, in2, in3, in4, in5, in6, in7 | 176 | cglobal flac_decorrelate_indep%2_%1, 2, %2+2, %3+1, out, in0, in1, len, in2, in3, in4, in5, in6, in7 |
| 185 | %if ARCH_X86_32 | 177 | %if ARCH_X86_32 |
| 186 | movd m%3, r4m | ||
| 187 | %if %2 == 6 | 178 | %if %2 == 6 |
| 188 | DEFINE_ARGS out, in0, in1, in2, in3, in4, in5 | 179 | DEFINE_ARGS out, in0, in1, in2, in3, in4, in5 |
| 189 | %define lend dword r3m | 180 | %define lend dword r3m |
| 190 | %else | 181 | %else |
| 191 | mov lend, lenm | 182 | mov lend, lenm |
| 192 | %endif | 183 | %endif |
| 193 | %elif WIN64 | ||
| 194 | movd m%3, r4m | ||
| 195 | %else ; UNIX64 | ||
| 196 | movd m%3, r4d | ||
| 197 | %endif | 184 | %endif |
| 185 | movd m%3, r4m | ||
| 198 | 186 | ||
| 199 | %assign %%i 1 | 187 | %assign %%i 1 |
| 200 | %rep %2-1 | 188 | %rep %2-1 |