1 #if defined(ED25519_GCC_32BIT_SSE_CHOOSE) 3 #define HAVE_GE25519_SCALARMULT_BASE_CHOOSE_NIELS 12 __asm__ __volatile__ (
15 "movd %%eax, %%xmm6 ;\n" 16 "pshufd $0x00, %%xmm6, %%xmm6 ;\n" 17 "pxor %%xmm0, %%xmm0 ;\n" 18 "pxor %%xmm1, %%xmm1 ;\n" 19 "pxor %%xmm2, %%xmm2 ;\n" 20 "pxor %%xmm3, %%xmm3 ;\n" 24 "movd %%eax, %%xmm7 ;\n" 25 "pshufd $0x00, %%xmm7, %%xmm7 ;\n" 26 "pcmpeqd %%xmm6, %%xmm7 ;\n" 28 "movd %%ecx, %%xmm4 ;\n" 29 "pxor %%xmm5, %%xmm5 ;\n" 30 "pand %%xmm7, %%xmm4 ;\n" 31 "pand %%xmm7, %%xmm5 ;\n" 32 "por %%xmm4, %%xmm0 ;\n" 33 "por %%xmm5, %%xmm1 ;\n" 34 "por %%xmm4, %%xmm2 ;\n" 35 "por %%xmm5, %%xmm3 ;\n" 39 "movd %%eax, %%xmm7 ;\n" 40 "pshufd $0x00, %%xmm7, %%xmm7 ;\n" 41 "pcmpeqd %%xmm6, %%xmm7 ;\n" 42 "movdqa 0(%1), %%xmm4 ;\n" 43 "movdqa 16(%1), %%xmm5 ;\n" 44 "pand %%xmm7, %%xmm4 ;\n" 45 "pand %%xmm7, %%xmm5 ;\n" 46 "por %%xmm4, %%xmm0 ;\n" 47 "por %%xmm5, %%xmm1 ;\n" 48 "movdqa 32(%1), %%xmm4 ;\n" 49 "movdqa 48(%1), %%xmm5 ;\n" 50 "pand %%xmm7, %%xmm4 ;\n" 51 "pand %%xmm7, %%xmm5 ;\n" 52 "por %%xmm4, %%xmm2 ;\n" 53 "por %%xmm5, %%xmm3 ;\n" 57 "movd %%eax, %%xmm7 ;\n" 58 "pshufd $0x00, %%xmm7, %%xmm7 ;\n" 59 "pcmpeqd %%xmm6, %%xmm7 ;\n" 60 "movdqa 96(%1), %%xmm4 ;\n" 61 "movdqa 112(%1), %%xmm5 ;\n" 62 "pand %%xmm7, %%xmm4 ;\n" 63 "pand %%xmm7, %%xmm5 ;\n" 64 "por %%xmm4, %%xmm0 ;\n" 65 "por %%xmm5, %%xmm1 ;\n" 66 "movdqa 128(%1), %%xmm4 ;\n" 67 "movdqa 144(%1), %%xmm5 ;\n" 68 "pand %%xmm7, %%xmm4 ;\n" 69 "pand %%xmm7, %%xmm5 ;\n" 70 "por %%xmm4, %%xmm2 ;\n" 71 "por %%xmm5, %%xmm3 ;\n" 75 "movd %%eax, %%xmm7 ;\n" 76 "pshufd $0x00, %%xmm7, %%xmm7 ;\n" 77 "pcmpeqd %%xmm6, %%xmm7 ;\n" 78 "movdqa 192(%1), %%xmm4 ;\n" 79 "movdqa 208(%1), %%xmm5 ;\n" 80 "pand %%xmm7, %%xmm4 ;\n" 81 "pand %%xmm7, %%xmm5 ;\n" 82 "por %%xmm4, %%xmm0 ;\n" 83 "por %%xmm5, %%xmm1 ;\n" 84 "movdqa 224(%1), %%xmm4 ;\n" 85 "movdqa 240(%1), %%xmm5 ;\n" 86 "pand %%xmm7, %%xmm4 ;\n" 87 "pand %%xmm7, %%xmm5 ;\n" 88 "por %%xmm4, %%xmm2 ;\n" 89 "por %%xmm5, %%xmm3 ;\n" 93 "movd %%eax, %%xmm7 ;\n" 94 "pshufd $0x00, %%xmm7, %%xmm7 ;\n" 95 "pcmpeqd %%xmm6, %%xmm7 ;\n" 96 "movdqa 288(%1), %%xmm4 ;\n" 97 "movdqa 304(%1), %%xmm5 ;\n" 98 "pand %%xmm7, %%xmm4 ;\n" 99 "pand %%xmm7, %%xmm5 ;\n" 100 "por %%xmm4, %%xmm0 ;\n" 101 "por %%xmm5, %%xmm1 ;\n" 102 "movdqa 320(%1), %%xmm4 ;\n" 103 "movdqa 336(%1), %%xmm5 ;\n" 104 "pand %%xmm7, %%xmm4 ;\n" 105 "pand %%xmm7, %%xmm5 ;\n" 106 "por %%xmm4, %%xmm2 ;\n" 107 "por %%xmm5, %%xmm3 ;\n" 111 "movd %%eax, %%xmm7 ;\n" 112 "pshufd $0x00, %%xmm7, %%xmm7 ;\n" 113 "pcmpeqd %%xmm6, %%xmm7 ;\n" 114 "movdqa 384(%1), %%xmm4 ;\n" 115 "movdqa 400(%1), %%xmm5 ;\n" 116 "pand %%xmm7, %%xmm4 ;\n" 117 "pand %%xmm7, %%xmm5 ;\n" 118 "por %%xmm4, %%xmm0 ;\n" 119 "por %%xmm5, %%xmm1 ;\n" 120 "movdqa 416(%1), %%xmm4 ;\n" 121 "movdqa 432(%1), %%xmm5 ;\n" 122 "pand %%xmm7, %%xmm4 ;\n" 123 "pand %%xmm7, %%xmm5 ;\n" 124 "por %%xmm4, %%xmm2 ;\n" 125 "por %%xmm5, %%xmm3 ;\n" 129 "movd %%eax, %%xmm7 ;\n" 130 "pshufd $0x00, %%xmm7, %%xmm7 ;\n" 131 "pcmpeqd %%xmm6, %%xmm7 ;\n" 132 "movdqa 480(%1), %%xmm4 ;\n" 133 "movdqa 496(%1), %%xmm5 ;\n" 134 "pand %%xmm7, %%xmm4 ;\n" 135 "pand %%xmm7, %%xmm5 ;\n" 136 "por %%xmm4, %%xmm0 ;\n" 137 "por %%xmm5, %%xmm1 ;\n" 138 "movdqa 512(%1), %%xmm4 ;\n" 139 "movdqa 528(%1), %%xmm5 ;\n" 140 "pand %%xmm7, %%xmm4 ;\n" 141 "pand %%xmm7, %%xmm5 ;\n" 142 "por %%xmm4, %%xmm2 ;\n" 143 "por %%xmm5, %%xmm3 ;\n" 147 "movd %%eax, %%xmm7 ;\n" 148 "pshufd $0x00, %%xmm7, %%xmm7 ;\n" 149 "pcmpeqd %%xmm6, %%xmm7 ;\n" 150 "movdqa 576(%1), %%xmm4 ;\n" 151 "movdqa 592(%1), %%xmm5 ;\n" 152 "pand %%xmm7, %%xmm4 ;\n" 153 "pand %%xmm7, %%xmm5 ;\n" 154 "por %%xmm4, %%xmm0 ;\n" 155 "por %%xmm5, %%xmm1 ;\n" 156 "movdqa 608(%1), %%xmm4 ;\n" 157 "movdqa 624(%1), %%xmm5 ;\n" 158 "pand %%xmm7, %%xmm4 ;\n" 159 "pand %%xmm7, %%xmm5 ;\n" 160 "por %%xmm4, %%xmm2 ;\n" 161 "por %%xmm5, %%xmm3 ;\n" 165 "movd %%eax, %%xmm7 ;\n" 166 "pshufd $0x00, %%xmm7, %%xmm7 ;\n" 167 "pcmpeqd %%xmm6, %%xmm7 ;\n" 168 "movdqa 672(%1), %%xmm4 ;\n" 169 "movdqa 688(%1), %%xmm5 ;\n" 170 "pand %%xmm7, %%xmm4 ;\n" 171 "pand %%xmm7, %%xmm5 ;\n" 172 "por %%xmm4, %%xmm0 ;\n" 173 "por %%xmm5, %%xmm1 ;\n" 174 "movdqa 704(%1), %%xmm4 ;\n" 175 "movdqa 720(%1), %%xmm5 ;\n" 176 "pand %%xmm7, %%xmm4 ;\n" 177 "pand %%xmm7, %%xmm5 ;\n" 178 "por %%xmm4, %%xmm2 ;\n" 179 "por %%xmm5, %%xmm3 ;\n" 185 "movd %%ecx, %%xmm6 ;\n" 186 "pxor %%xmm7, %%xmm7 ;\n" 187 "pshufd $0x00, %%xmm6, %%xmm6 ;\n" 188 "pxor %%xmm0, %%xmm2 ;\n" 189 "pxor %%xmm1, %%xmm3 ;\n" 190 "pcmpeqd %%xmm6, %%xmm7 ;\n" 191 "movdqa %%xmm2, %%xmm4 ;\n" 192 "movdqa %%xmm3, %%xmm5 ;\n" 193 "pand %%xmm7, %%xmm4 ;\n" 194 "pand %%xmm7, %%xmm5 ;\n" 195 "pxor %%xmm4, %%xmm0 ;\n" 196 "pxor %%xmm5, %%xmm1 ;\n" 197 "pxor %%xmm0, %%xmm2 ;\n" 198 "pxor %%xmm1, %%xmm3 ;\n" 201 "movd %%xmm0, %%ecx ;\n" 202 "movl %%ecx, %%edx ;\n" 203 "pshufd $0x39, %%xmm0, %%xmm0 ;\n" 204 "andl $0x3ffffff, %%ecx ;\n" 205 "movl %%ecx, 0(%%eax) ;\n" 206 "movd %%xmm0, %%ecx ;\n" 207 "pshufd $0x39, %%xmm0, %%xmm0 ;\n" 208 "shrdl $26, %%ecx, %%edx ;\n" 209 "andl $0x1ffffff, %%edx ;\n" 210 "movl %%edx, 4(%%eax) ;\n" 211 "movd %%xmm0, %%edx ;\n" 212 "pshufd $0x39, %%xmm0, %%xmm0 ;\n" 213 "shrdl $19, %%edx, %%ecx ;\n" 214 "andl $0x3ffffff, %%ecx ;\n" 215 "movl %%ecx, 8(%%eax) ;\n" 216 "movd %%xmm0, %%ecx ;\n" 217 "shrdl $13, %%ecx, %%edx ;\n" 218 "andl $0x1ffffff, %%edx ;\n" 219 "movl %%edx, 12(%%eax) ;\n" 220 "movd %%xmm1, %%edx ;\n" 221 "pshufd $0x39, %%xmm1, %%xmm1 ;\n" 223 "andl $0x3ffffff, %%ecx ;\n" 224 "movl %%ecx, 16(%%eax) ;\n" 225 "movl %%edx, %%ecx ;\n" 226 "andl $0x1ffffff, %%edx ;\n" 227 "movl %%edx, 20(%%eax) ;\n" 228 "movd %%xmm1, %%edx ;\n" 229 "pshufd $0x39, %%xmm1, %%xmm1 ;\n" 230 "shrdl $25, %%edx, %%ecx ;\n" 231 "andl $0x3ffffff, %%ecx ;\n" 232 "movl %%ecx, 24(%%eax) ;\n" 233 "movd %%xmm1, %%ecx ;\n" 234 "pshufd $0x39, %%xmm1, %%xmm1 ;\n" 235 "shrdl $19, %%ecx, %%edx ;\n" 236 "andl $0x1ffffff, %%edx ;\n" 237 "movl %%edx, 28(%%eax) ;\n" 238 "movd %%xmm1, %%edx ;\n" 239 "shrdl $12, %%edx, %%ecx ;\n" 240 "andl $0x3ffffff, %%ecx ;\n" 241 "movl %%ecx, 32(%%eax) ;\n" 243 "andl $0x1ffffff, %%edx ;\n" 244 "xorl %%ecx, %%ecx ;\n" 245 "movl %%edx, 36(%%eax) ;\n" 246 "movl %%ecx, 40(%%eax) ;\n" 247 "movl %%ecx, 44(%%eax) ;\n" 250 "addl $48, %%eax ;\n" 251 "movdqa %%xmm2, %%xmm0 ;\n" 252 "movdqa %%xmm3, %%xmm1 ;\n" 253 "movd %%xmm0, %%ecx ;\n" 254 "movl %%ecx, %%edx ;\n" 255 "pshufd $0x39, %%xmm0, %%xmm0 ;\n" 256 "andl $0x3ffffff, %%ecx ;\n" 257 "movl %%ecx, 0(%%eax) ;\n" 258 "movd %%xmm0, %%ecx ;\n" 259 "pshufd $0x39, %%xmm0, %%xmm0 ;\n" 260 "shrdl $26, %%ecx, %%edx ;\n" 261 "andl $0x1ffffff, %%edx ;\n" 262 "movl %%edx, 4(%%eax) ;\n" 263 "movd %%xmm0, %%edx ;\n" 264 "pshufd $0x39, %%xmm0, %%xmm0 ;\n" 265 "shrdl $19, %%edx, %%ecx ;\n" 266 "andl $0x3ffffff, %%ecx ;\n" 267 "movl %%ecx, 8(%%eax) ;\n" 268 "movd %%xmm0, %%ecx ;\n" 269 "shrdl $13, %%ecx, %%edx ;\n" 270 "andl $0x1ffffff, %%edx ;\n" 271 "movl %%edx, 12(%%eax) ;\n" 272 "movd %%xmm1, %%edx ;\n" 273 "pshufd $0x39, %%xmm1, %%xmm1 ;\n" 275 "andl $0x3ffffff, %%ecx ;\n" 276 "movl %%ecx, 16(%%eax) ;\n" 277 "movl %%edx, %%ecx ;\n" 278 "andl $0x1ffffff, %%edx ;\n" 279 "movl %%edx, 20(%%eax) ;\n" 280 "movd %%xmm1, %%edx ;\n" 281 "pshufd $0x39, %%xmm1, %%xmm1 ;\n" 282 "shrdl $25, %%edx, %%ecx ;\n" 283 "andl $0x3ffffff, %%ecx ;\n" 284 "movl %%ecx, 24(%%eax) ;\n" 285 "movd %%xmm1, %%ecx ;\n" 286 "pshufd $0x39, %%xmm1, %%xmm1 ;\n" 287 "shrdl $19, %%ecx, %%edx ;\n" 288 "andl $0x1ffffff, %%edx ;\n" 289 "movl %%edx, 28(%%eax) ;\n" 290 "movd %%xmm1, %%edx ;\n" 291 "shrdl $12, %%edx, %%ecx ;\n" 292 "andl $0x3ffffff, %%ecx ;\n" 293 "movl %%ecx, 32(%%eax) ;\n" 295 "andl $0x1ffffff, %%edx ;\n" 296 "xorl %%ecx, %%ecx ;\n" 297 "movl %%edx, 36(%%eax) ;\n" 298 "movl %%ecx, 40(%%eax) ;\n" 299 "movl %%ecx, 44(%%eax) ;\n" 303 "movd %%eax, %%xmm6 ;\n" 304 "pshufd $0x00, %%xmm6, %%xmm6 ;\n" 305 "pxor %%xmm0, %%xmm0 ;\n" 306 "pxor %%xmm1, %%xmm1 ;\n" 310 "movd %%eax, %%xmm7 ;\n" 311 "pshufd $0x00, %%xmm7, %%xmm7 ;\n" 312 "pcmpeqd %%xmm6, %%xmm7 ;\n" 313 "pxor %%xmm0, %%xmm0 ;\n" 314 "pxor %%xmm1, %%xmm1 ;\n" 318 "movd %%eax, %%xmm7 ;\n" 319 "pshufd $0x00, %%xmm7, %%xmm7 ;\n" 320 "pcmpeqd %%xmm6, %%xmm7 ;\n" 321 "movdqa 64(%1), %%xmm3 ;\n" 322 "movdqa 80(%1), %%xmm4 ;\n" 323 "pand %%xmm7, %%xmm3 ;\n" 324 "pand %%xmm7, %%xmm4 ;\n" 325 "por %%xmm3, %%xmm0 ;\n" 326 "por %%xmm4, %%xmm1 ;\n" 330 "movd %%eax, %%xmm7 ;\n" 331 "pshufd $0x00, %%xmm7, %%xmm7 ;\n" 332 "pcmpeqd %%xmm6, %%xmm7 ;\n" 333 "movdqa 160(%1), %%xmm3 ;\n" 334 "movdqa 176(%1), %%xmm4 ;\n" 335 "pand %%xmm7, %%xmm3 ;\n" 336 "pand %%xmm7, %%xmm4 ;\n" 337 "por %%xmm3, %%xmm0 ;\n" 338 "por %%xmm4, %%xmm1 ;\n" 342 "movd %%eax, %%xmm7 ;\n" 343 "pshufd $0x00, %%xmm7, %%xmm7 ;\n" 344 "pcmpeqd %%xmm6, %%xmm7 ;\n" 345 "movdqa 256(%1), %%xmm3 ;\n" 346 "movdqa 272(%1), %%xmm4 ;\n" 347 "pand %%xmm7, %%xmm3 ;\n" 348 "pand %%xmm7, %%xmm4 ;\n" 349 "por %%xmm3, %%xmm0 ;\n" 350 "por %%xmm4, %%xmm1 ;\n" 354 "movd %%eax, %%xmm7 ;\n" 355 "pshufd $0x00, %%xmm7, %%xmm7 ;\n" 356 "pcmpeqd %%xmm6, %%xmm7 ;\n" 357 "movdqa 352(%1), %%xmm3 ;\n" 358 "movdqa 368(%1), %%xmm4 ;\n" 359 "pand %%xmm7, %%xmm3 ;\n" 360 "pand %%xmm7, %%xmm4 ;\n" 361 "por %%xmm3, %%xmm0 ;\n" 362 "por %%xmm4, %%xmm1 ;\n" 366 "movd %%eax, %%xmm7 ;\n" 367 "pshufd $0x00, %%xmm7, %%xmm7 ;\n" 368 "pcmpeqd %%xmm6, %%xmm7 ;\n" 369 "movdqa 448(%1), %%xmm3 ;\n" 370 "movdqa 464(%1), %%xmm4 ;\n" 371 "pand %%xmm7, %%xmm3 ;\n" 372 "pand %%xmm7, %%xmm4 ;\n" 373 "por %%xmm3, %%xmm0 ;\n" 374 "por %%xmm4, %%xmm1 ;\n" 378 "movd %%eax, %%xmm7 ;\n" 379 "pshufd $0x00, %%xmm7, %%xmm7 ;\n" 380 "pcmpeqd %%xmm6, %%xmm7 ;\n" 381 "movdqa 544(%1), %%xmm3 ;\n" 382 "movdqa 560(%1), %%xmm4 ;\n" 383 "pand %%xmm7, %%xmm3 ;\n" 384 "pand %%xmm7, %%xmm4 ;\n" 385 "por %%xmm3, %%xmm0 ;\n" 386 "por %%xmm4, %%xmm1 ;\n" 390 "movd %%eax, %%xmm7 ;\n" 391 "pshufd $0x00, %%xmm7, %%xmm7 ;\n" 392 "pcmpeqd %%xmm6, %%xmm7 ;\n" 393 "movdqa 640(%1), %%xmm3 ;\n" 394 "movdqa 656(%1), %%xmm4 ;\n" 395 "pand %%xmm7, %%xmm3 ;\n" 396 "pand %%xmm7, %%xmm4 ;\n" 397 "por %%xmm3, %%xmm0 ;\n" 398 "por %%xmm4, %%xmm1 ;\n" 402 "movd %%eax, %%xmm7 ;\n" 403 "pshufd $0x00, %%xmm7, %%xmm7 ;\n" 404 "pcmpeqd %%xmm6, %%xmm7 ;\n" 405 "movdqa 736(%1), %%xmm3 ;\n" 406 "movdqa 752(%1), %%xmm4 ;\n" 407 "pand %%xmm7, %%xmm3 ;\n" 408 "pand %%xmm7, %%xmm4 ;\n" 409 "por %%xmm3, %%xmm0 ;\n" 410 "por %%xmm4, %%xmm1 ;\n" 414 "addl $96, %%eax ;\n" 415 "movd %%xmm0, %%ecx ;\n" 416 "movl %%ecx, %%edx ;\n" 417 "pshufd $0x39, %%xmm0, %%xmm0 ;\n" 418 "andl $0x3ffffff, %%ecx ;\n" 419 "movl %%ecx, 0(%%eax) ;\n" 420 "movd %%xmm0, %%ecx ;\n" 421 "pshufd $0x39, %%xmm0, %%xmm0 ;\n" 422 "shrdl $26, %%ecx, %%edx ;\n" 423 "andl $0x1ffffff, %%edx ;\n" 424 "movl %%edx, 4(%%eax) ;\n" 425 "movd %%xmm0, %%edx ;\n" 426 "pshufd $0x39, %%xmm0, %%xmm0 ;\n" 427 "shrdl $19, %%edx, %%ecx ;\n" 428 "andl $0x3ffffff, %%ecx ;\n" 429 "movl %%ecx, 8(%%eax) ;\n" 430 "movd %%xmm0, %%ecx ;\n" 431 "shrdl $13, %%ecx, %%edx ;\n" 432 "andl $0x1ffffff, %%edx ;\n" 433 "movl %%edx, 12(%%eax) ;\n" 434 "movd %%xmm1, %%edx ;\n" 435 "pshufd $0x39, %%xmm1, %%xmm1 ;\n" 437 "andl $0x3ffffff, %%ecx ;\n" 438 "movl %%ecx, 16(%%eax) ;\n" 439 "movl %%edx, %%ecx ;\n" 440 "andl $0x1ffffff, %%edx ;\n" 441 "movl %%edx, 20(%%eax) ;\n" 442 "movd %%xmm1, %%edx ;\n" 443 "pshufd $0x39, %%xmm1, %%xmm1 ;\n" 444 "shrdl $25, %%edx, %%ecx ;\n" 445 "andl $0x3ffffff, %%ecx ;\n" 446 "movl %%ecx, 24(%%eax) ;\n" 447 "movd %%xmm1, %%ecx ;\n" 448 "pshufd $0x39, %%xmm1, %%xmm1 ;\n" 449 "shrdl $19, %%ecx, %%edx ;\n" 450 "andl $0x1ffffff, %%edx ;\n" 451 "movl %%edx, 28(%%eax) ;\n" 452 "movd %%xmm1, %%edx ;\n" 453 "movd %%xmm1, %%edx ;\n" 454 "shrdl $12, %%edx, %%ecx ;\n" 455 "andl $0x3ffffff, %%ecx ;\n" 456 "movl %%ecx, 32(%%eax) ;\n" 458 "andl $0x1ffffff, %%edx ;\n" 459 "xorl %%ecx, %%ecx ;\n" 460 "movl %%edx, 36(%%eax) ;\n" 461 "movl %%ecx, 40(%%eax) ;\n" 462 "movl %%ecx, 44(%%eax) ;\n" 463 "movdqa 0(%%eax), %%xmm0 ;\n" 464 "movdqa 16(%%eax), %%xmm1 ;\n" 465 "movdqa 32(%%eax), %%xmm2 ;\n" 470 "movl $0x7ffffda, %%ecx ;\n" 471 "movl $0x3fffffe, %%edx ;\n" 472 "movd %%ecx, %%xmm3 ;\n" 473 "movd %%edx, %%xmm5 ;\n" 474 "movl $0x7fffffe, %%ecx ;\n" 475 "movd %%ecx, %%xmm4 ;\n" 476 "punpckldq %%xmm5, %%xmm3 ;\n" 477 "punpckldq %%xmm5, %%xmm4 ;\n" 478 "punpcklqdq %%xmm4, %%xmm3 ;\n" 479 "movdqa %%xmm4, %%xmm5 ;\n" 480 "punpcklqdq %%xmm4, %%xmm4 ;\n" 485 "movd %%ecx, %%xmm6 ;\n" 486 "pshufd $0x00, %%xmm6, %%xmm6 ;\n" 487 "movdqa %%xmm6, %%xmm7 ;\n" 488 "psubd %%xmm0, %%xmm3 ;\n" 489 "psubd %%xmm1, %%xmm4 ;\n" 490 "psubd %%xmm2, %%xmm5 ;\n" 491 "pand %%xmm6, %%xmm0 ;\n" 492 "pand %%xmm6, %%xmm1 ;\n" 493 "pand %%xmm6, %%xmm2 ;\n" 494 "pandn %%xmm3, %%xmm6 ;\n" 495 "movdqa %%xmm7, %%xmm3 ;\n" 496 "pandn %%xmm4, %%xmm7 ;\n" 497 "pandn %%xmm5, %%xmm3 ;\n" 498 "por %%xmm6, %%xmm0 ;\n" 499 "por %%xmm7, %%xmm1 ;\n" 500 "por %%xmm3, %%xmm2 ;\n" 503 "movdqa %%xmm0, 0(%%eax) ;\n" 504 "movdqa %%xmm1, 16(%%eax) ;\n" 505 "movdqa %%xmm2, 32(%%eax) ;\n" 507 :
"m"(u),
"r"(&
table[pos * 8]),
"m"(t),
"m"(sign)
508 :
"%eax",
"%ecx",
"%edx",
"%xmm0",
"%xmm1",
"%xmm2",
"%xmm3",
"%xmm4",
"%xmm5",
"%xmm6",
"%xmm7",
"cc",
"memory" std::vector< std::vector< _variant_t > > table