| .. | .. |
|---|
| 38 | 38 | */ |
|---|
| 39 | 39 | |
|---|
| 40 | 40 | #include <linux/linkage.h> |
|---|
| 41 | | -#include <asm/inst.h> |
|---|
| 42 | 41 | |
|---|
| 43 | 42 | |
|---|
| 44 | 43 | .section .rodata |
|---|
| .. | .. |
|---|
| 103 | 102 | * size_t len, uint crc32) |
|---|
| 104 | 103 | */ |
|---|
| 105 | 104 | |
|---|
| 106 | | -ENTRY(crc32_pclmul_le_16) /* buffer and buffer size are 16 bytes aligned */ |
|---|
| 105 | +SYM_FUNC_START(crc32_pclmul_le_16) /* buffer and buffer size are 16 bytes aligned */ |
|---|
| 107 | 106 | movdqa (BUF), %xmm1 |
|---|
| 108 | 107 | movdqa 0x10(BUF), %xmm2 |
|---|
| 109 | 108 | movdqa 0x20(BUF), %xmm3 |
|---|
| .. | .. |
|---|
| 129 | 128 | #ifdef __x86_64__ |
|---|
| 130 | 129 | movdqa %xmm4, %xmm8 |
|---|
| 131 | 130 | #endif |
|---|
| 132 | | - PCLMULQDQ 00, CONSTANT, %xmm1 |
|---|
| 133 | | - PCLMULQDQ 00, CONSTANT, %xmm2 |
|---|
| 134 | | - PCLMULQDQ 00, CONSTANT, %xmm3 |
|---|
| 131 | + pclmulqdq $0x00, CONSTANT, %xmm1 |
|---|
| 132 | + pclmulqdq $0x00, CONSTANT, %xmm2 |
|---|
| 133 | + pclmulqdq $0x00, CONSTANT, %xmm3 |
|---|
| 135 | 134 | #ifdef __x86_64__ |
|---|
| 136 | | - PCLMULQDQ 00, CONSTANT, %xmm4 |
|---|
| 135 | + pclmulqdq $0x00, CONSTANT, %xmm4 |
|---|
| 137 | 136 | #endif |
|---|
| 138 | | - PCLMULQDQ 0x11, CONSTANT, %xmm5 |
|---|
| 139 | | - PCLMULQDQ 0x11, CONSTANT, %xmm6 |
|---|
| 140 | | - PCLMULQDQ 0x11, CONSTANT, %xmm7 |
|---|
| 137 | + pclmulqdq $0x11, CONSTANT, %xmm5 |
|---|
| 138 | + pclmulqdq $0x11, CONSTANT, %xmm6 |
|---|
| 139 | + pclmulqdq $0x11, CONSTANT, %xmm7 |
|---|
| 141 | 140 | #ifdef __x86_64__ |
|---|
| 142 | | - PCLMULQDQ 0x11, CONSTANT, %xmm8 |
|---|
| 141 | + pclmulqdq $0x11, CONSTANT, %xmm8 |
|---|
| 143 | 142 | #endif |
|---|
| 144 | 143 | pxor %xmm5, %xmm1 |
|---|
| 145 | 144 | pxor %xmm6, %xmm2 |
|---|
| .. | .. |
|---|
| 149 | 148 | #else |
|---|
| 150 | 149 | /* xmm8 unsupported for x32 */ |
|---|
| 151 | 150 | movdqa %xmm4, %xmm5 |
|---|
| 152 | | - PCLMULQDQ 00, CONSTANT, %xmm4 |
|---|
| 153 | | - PCLMULQDQ 0x11, CONSTANT, %xmm5 |
|---|
| 151 | + pclmulqdq $0x00, CONSTANT, %xmm4 |
|---|
| 152 | + pclmulqdq $0x11, CONSTANT, %xmm5 |
|---|
| 154 | 153 | pxor %xmm5, %xmm4 |
|---|
| 155 | 154 | #endif |
|---|
| 156 | 155 | |
|---|
| .. | .. |
|---|
| 172 | 171 | prefetchnta (BUF) |
|---|
| 173 | 172 | |
|---|
| 174 | 173 | movdqa %xmm1, %xmm5 |
|---|
| 175 | | - PCLMULQDQ 0x00, CONSTANT, %xmm1 |
|---|
| 176 | | - PCLMULQDQ 0x11, CONSTANT, %xmm5 |
|---|
| 174 | + pclmulqdq $0x00, CONSTANT, %xmm1 |
|---|
| 175 | + pclmulqdq $0x11, CONSTANT, %xmm5 |
|---|
| 177 | 176 | pxor %xmm5, %xmm1 |
|---|
| 178 | 177 | pxor %xmm2, %xmm1 |
|---|
| 179 | 178 | |
|---|
| 180 | 179 | movdqa %xmm1, %xmm5 |
|---|
| 181 | | - PCLMULQDQ 0x00, CONSTANT, %xmm1 |
|---|
| 182 | | - PCLMULQDQ 0x11, CONSTANT, %xmm5 |
|---|
| 180 | + pclmulqdq $0x00, CONSTANT, %xmm1 |
|---|
| 181 | + pclmulqdq $0x11, CONSTANT, %xmm5 |
|---|
| 183 | 182 | pxor %xmm5, %xmm1 |
|---|
| 184 | 183 | pxor %xmm3, %xmm1 |
|---|
| 185 | 184 | |
|---|
| 186 | 185 | movdqa %xmm1, %xmm5 |
|---|
| 187 | | - PCLMULQDQ 0x00, CONSTANT, %xmm1 |
|---|
| 188 | | - PCLMULQDQ 0x11, CONSTANT, %xmm5 |
|---|
| 186 | + pclmulqdq $0x00, CONSTANT, %xmm1 |
|---|
| 187 | + pclmulqdq $0x11, CONSTANT, %xmm5 |
|---|
| 189 | 188 | pxor %xmm5, %xmm1 |
|---|
| 190 | 189 | pxor %xmm4, %xmm1 |
|---|
| 191 | 190 | |
|---|
| .. | .. |
|---|
| 193 | 192 | jb fold_64 |
|---|
| 194 | 193 | loop_16:/* Folding rest buffer into 128bit */ |
|---|
| 195 | 194 | movdqa %xmm1, %xmm5 |
|---|
| 196 | | - PCLMULQDQ 0x00, CONSTANT, %xmm1 |
|---|
| 197 | | - PCLMULQDQ 0x11, CONSTANT, %xmm5 |
|---|
| 195 | + pclmulqdq $0x00, CONSTANT, %xmm1 |
|---|
| 196 | + pclmulqdq $0x11, CONSTANT, %xmm5 |
|---|
| 198 | 197 | pxor %xmm5, %xmm1 |
|---|
| 199 | 198 | pxor (BUF), %xmm1 |
|---|
| 200 | 199 | sub $0x10, LEN |
|---|
| .. | .. |
|---|
| 205 | 204 | fold_64: |
|---|
| 206 | 205 | /* perform the last 64 bit fold, also adds 32 zeroes |
|---|
| 207 | 206 | * to the input stream */ |
|---|
| 208 | | - PCLMULQDQ 0x01, %xmm1, CONSTANT /* R4 * xmm1.low */ |
|---|
| 207 | + pclmulqdq $0x01, %xmm1, CONSTANT /* R4 * xmm1.low */ |
|---|
| 209 | 208 | psrldq $0x08, %xmm1 |
|---|
| 210 | 209 | pxor CONSTANT, %xmm1 |
|---|
| 211 | 210 | |
|---|
| .. | .. |
|---|
| 220 | 219 | #endif |
|---|
| 221 | 220 | psrldq $0x04, %xmm2 |
|---|
| 222 | 221 | pand %xmm3, %xmm1 |
|---|
| 223 | | - PCLMULQDQ 0x00, CONSTANT, %xmm1 |
|---|
| 222 | + pclmulqdq $0x00, CONSTANT, %xmm1 |
|---|
| 224 | 223 | pxor %xmm2, %xmm1 |
|---|
| 225 | 224 | |
|---|
| 226 | 225 | /* Finish up with the bit-reversed barrett reduction 64 ==> 32 bits */ |
|---|
| .. | .. |
|---|
| 231 | 230 | #endif |
|---|
| 232 | 231 | movdqa %xmm1, %xmm2 |
|---|
| 233 | 232 | pand %xmm3, %xmm1 |
|---|
| 234 | | - PCLMULQDQ 0x10, CONSTANT, %xmm1 |
|---|
| 233 | + pclmulqdq $0x10, CONSTANT, %xmm1 |
|---|
| 235 | 234 | pand %xmm3, %xmm1 |
|---|
| 236 | | - PCLMULQDQ 0x00, CONSTANT, %xmm1 |
|---|
| 235 | + pclmulqdq $0x00, CONSTANT, %xmm1 |
|---|
| 237 | 236 | pxor %xmm2, %xmm1 |
|---|
| 238 | | - PEXTRD 0x01, %xmm1, %eax |
|---|
| 237 | + pextrd $0x01, %xmm1, %eax |
|---|
| 239 | 238 | |
|---|
| 240 | | - ret |
|---|
| 241 | | -ENDPROC(crc32_pclmul_le_16) |
|---|
| 239 | + RET |
|---|
| 240 | +SYM_FUNC_END(crc32_pclmul_le_16) |
|---|