1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 22/* 23 * Copyright (c) 2008, Intel Corporation 24 * All rights reserved. 25 */ 26 .ident "%Z%%M% %I% %E% SMI" 27 28 .file "%M%" 29 30#include <sys/asm_linkage.h> 31 32 ANSI_PRAGMA_WEAK(memset,function) 33 34#include "synonyms.h" 35#include "cache.h" 36#include "proc64_id.h" 37 38#define L(s) .memset/**/s 39 40/* 41 * memset algorithm overview: 42 * 43 * Thresholds used below were determined experimentally. 44 * 45 * Pseudo code: 46 * 47 * If (size <= 144 bytes) { 48 * do unrolled code (primarily 8-byte stores) regardless of alignment. 49 * } else { 50 * Align destination to 16-byte boundary 51 * 52 * if (NO_SSE) { 53 * If (size > largest level cache) { 54 * Use 8-byte non-temporal stores (64-bytes/loop) 55 * } else { 56 * if (size >= 2K) { 57 * Use rep sstoq 58 * } else { 59 * Use 8-byte stores (128 bytes per loop) 60 * } 61 * } 62 * 63 * } else { **USE SSE** 64 * If (size <= 192 bytes) { 65 * do unrolled code using primarily 16-byte stores (SSE2) 66 * } else { 67 * If (size > largest level cache) { 68 * Use 16-byte non-temporal stores (128-bytes/loop) 69 * } else { 70 * Use 16-byte stores (128 bytes per loop) 71 * } 72 * } 73 * } 74 * 75 * Finish any remaining bytes via unrolled code above. 76 * } 77 */ 78 79 ENTRY(memset) # (void *, const void*, size_t) 80 cmp $0x1,%rdx 81 mov %rdi,%rax # memset returns the dest address 82 jne L(ck2) 83 mov %sil,(%rdi) 84 ret 85L(ck2): 86 mov $0x0101010101010101,%r9 87 mov %rdx,%r8 88 movzbq %sil,%rdx 89 imul %r9,%rdx # clone value 8 times 90 91 cmp $0x90,%r8 # 144 92 jge L(ck_align) 93 94 lea L(setPxQx)(%rip),%r11 95 add %r8,%rdi 96 97 movslq (%r11,%r8,4),%rcx 98 lea (%rcx,%r11,1),%r11 99 jmpq *%r11 100 101 .balign 16 102L(setPxQx): .int L(P0Q0)-L(setPxQx) 103 .int L(P1Q0)-L(setPxQx) 104 .int L(P2Q0)-L(setPxQx) 105 .int L(P3Q0)-L(setPxQx) 106 .int L(P4Q0)-L(setPxQx) 107 .int L(P5Q0)-L(setPxQx) 108 .int L(P6Q0)-L(setPxQx) 109 .int L(P7Q0)-L(setPxQx) 110 111 .int L(P0Q1)-L(setPxQx) 112 .int L(P1Q1)-L(setPxQx) 113 .int L(P2Q1)-L(setPxQx) 114 .int L(P3Q1)-L(setPxQx) 115 .int L(P4Q1)-L(setPxQx) 116 .int L(P5Q1)-L(setPxQx) 117 .int L(P6Q1)-L(setPxQx) 118 .int L(P7Q1)-L(setPxQx) 119 120 .int L(P0Q2)-L(setPxQx) 121 .int L(P1Q2)-L(setPxQx) 122 .int L(P2Q2)-L(setPxQx) 123 .int L(P3Q2)-L(setPxQx) 124 .int L(P4Q2)-L(setPxQx) 125 .int L(P5Q2)-L(setPxQx) 126 .int L(P6Q2)-L(setPxQx) 127 .int L(P7Q2)-L(setPxQx) 128 129 .int L(P0Q3)-L(setPxQx) 130 .int L(P1Q3)-L(setPxQx) 131 .int L(P2Q3)-L(setPxQx) 132 .int L(P3Q3)-L(setPxQx) 133 .int L(P4Q3)-L(setPxQx) 134 .int L(P5Q3)-L(setPxQx) 135 .int L(P6Q3)-L(setPxQx) 136 .int L(P7Q3)-L(setPxQx) 137 138 .int L(P0Q4)-L(setPxQx) 139 .int L(P1Q4)-L(setPxQx) 140 .int L(P2Q4)-L(setPxQx) 141 .int L(P3Q4)-L(setPxQx) 142 .int L(P4Q4)-L(setPxQx) 143 .int L(P5Q4)-L(setPxQx) 144 .int L(P6Q4)-L(setPxQx) 145 .int L(P7Q4)-L(setPxQx) 146 147 .int L(P0Q5)-L(setPxQx) 148 .int L(P1Q5)-L(setPxQx) 149 .int L(P2Q5)-L(setPxQx) 150 .int L(P3Q5)-L(setPxQx) 151 .int L(P4Q5)-L(setPxQx) 152 .int L(P5Q5)-L(setPxQx) 153 .int L(P6Q5)-L(setPxQx) 154 .int L(P7Q5)-L(setPxQx) 155 156 .int L(P0Q6)-L(setPxQx) 157 .int L(P1Q6)-L(setPxQx) 158 .int L(P2Q6)-L(setPxQx) 159 .int L(P3Q6)-L(setPxQx) 160 .int L(P4Q6)-L(setPxQx) 161 .int L(P5Q6)-L(setPxQx) 162 .int L(P6Q6)-L(setPxQx) 163 .int L(P7Q6)-L(setPxQx) 164 165 .int L(P0Q7)-L(setPxQx) 166 .int L(P1Q7)-L(setPxQx) 167 .int L(P2Q7)-L(setPxQx) 168 .int L(P3Q7)-L(setPxQx) 169 .int L(P4Q7)-L(setPxQx) 170 .int L(P5Q7)-L(setPxQx) 171 .int L(P6Q7)-L(setPxQx) 172 .int L(P7Q7)-L(setPxQx) 173 174 .int L(P0Q8)-L(setPxQx) 175 .int L(P1Q8)-L(setPxQx) 176 .int L(P2Q8)-L(setPxQx) 177 .int L(P3Q8)-L(setPxQx) 178 .int L(P4Q8)-L(setPxQx) 179 .int L(P5Q8)-L(setPxQx) 180 .int L(P6Q8)-L(setPxQx) 181 .int L(P7Q8)-L(setPxQx) 182 183 .int L(P0Q9)-L(setPxQx) 184 .int L(P1Q9)-L(setPxQx) 185 .int L(P2Q9)-L(setPxQx) 186 .int L(P3Q9)-L(setPxQx) 187 .int L(P4Q9)-L(setPxQx) 188 .int L(P5Q9)-L(setPxQx) 189 .int L(P6Q9)-L(setPxQx) 190 .int L(P7Q9)-L(setPxQx) 191 192 .int L(P0QA)-L(setPxQx) 193 .int L(P1QA)-L(setPxQx) 194 .int L(P2QA)-L(setPxQx) 195 .int L(P3QA)-L(setPxQx) 196 .int L(P4QA)-L(setPxQx) 197 .int L(P5QA)-L(setPxQx) 198 .int L(P6QA)-L(setPxQx) 199 .int L(P7QA)-L(setPxQx) 200 201 .int L(P0QB)-L(setPxQx) 202 .int L(P1QB)-L(setPxQx) 203 .int L(P2QB)-L(setPxQx) 204 .int L(P3QB)-L(setPxQx) 205 .int L(P4QB)-L(setPxQx) 206 .int L(P5QB)-L(setPxQx) 207 .int L(P6QB)-L(setPxQx) 208 .int L(P7QB)-L(setPxQx) 209 210 .int L(P0QC)-L(setPxQx) 211 .int L(P1QC)-L(setPxQx) 212 .int L(P2QC)-L(setPxQx) 213 .int L(P3QC)-L(setPxQx) 214 .int L(P4QC)-L(setPxQx) 215 .int L(P5QC)-L(setPxQx) 216 .int L(P6QC)-L(setPxQx) 217 .int L(P7QC)-L(setPxQx) 218 219 .int L(P0QD)-L(setPxQx) 220 .int L(P1QD)-L(setPxQx) 221 .int L(P2QD)-L(setPxQx) 222 .int L(P3QD)-L(setPxQx) 223 .int L(P4QD)-L(setPxQx) 224 .int L(P5QD)-L(setPxQx) 225 .int L(P6QD)-L(setPxQx) 226 .int L(P7QD)-L(setPxQx) 227 228 .int L(P0QE)-L(setPxQx) # 112 229 .int L(P1QE)-L(setPxQx) 230 .int L(P2QE)-L(setPxQx) 231 .int L(P3QE)-L(setPxQx) 232 .int L(P4QE)-L(setPxQx) 233 .int L(P5QE)-L(setPxQx) 234 .int L(P6QE)-L(setPxQx) 235 .int L(P7QE)-L(setPxQx) 236 237 .int L(P0QF)-L(setPxQx) #120 238 .int L(P1QF)-L(setPxQx) 239 .int L(P2QF)-L(setPxQx) 240 .int L(P3QF)-L(setPxQx) 241 .int L(P4QF)-L(setPxQx) 242 .int L(P5QF)-L(setPxQx) 243 .int L(P6QF)-L(setPxQx) 244 .int L(P7QF)-L(setPxQx) 245 246 .int L(P0QG)-L(setPxQx) #128 247 .int L(P1QG)-L(setPxQx) 248 .int L(P2QG)-L(setPxQx) 249 .int L(P3QG)-L(setPxQx) 250 .int L(P4QG)-L(setPxQx) 251 .int L(P5QG)-L(setPxQx) 252 .int L(P6QG)-L(setPxQx) 253 .int L(P7QG)-L(setPxQx) 254 255 .int L(P0QH)-L(setPxQx) #136 256 .int L(P1QH)-L(setPxQx) 257 .int L(P2QH)-L(setPxQx) 258 .int L(P3QH)-L(setPxQx) 259 .int L(P4QH)-L(setPxQx) 260 .int L(P5QH)-L(setPxQx) 261 .int L(P6QH)-L(setPxQx) 262 .int L(P7QH)-L(setPxQx) #143 263 264 .balign 16 265L(P1QH): mov %rdx,-0x89(%rdi) 266L(P1QG): mov %rdx,-0x81(%rdi) 267 .balign 16 268L(P1QF): mov %rdx,-0x79(%rdi) 269L(P1QE): mov %rdx,-0x71(%rdi) 270L(P1QD): mov %rdx,-0x69(%rdi) 271L(P1QC): mov %rdx,-0x61(%rdi) 272L(P1QB): mov %rdx,-0x59(%rdi) 273L(P1QA): mov %rdx,-0x51(%rdi) 274L(P1Q9): mov %rdx,-0x49(%rdi) 275L(P1Q8): mov %rdx,-0x41(%rdi) 276L(P1Q7): mov %rdx,-0x39(%rdi) 277L(P1Q6): mov %rdx,-0x31(%rdi) 278L(P1Q5): mov %rdx,-0x29(%rdi) 279L(P1Q4): mov %rdx,-0x21(%rdi) 280L(P1Q3): mov %rdx,-0x19(%rdi) 281L(P1Q2): mov %rdx,-0x11(%rdi) 282L(P1Q1): mov %rdx,-0x9(%rdi) 283L(P1Q0): mov %dl,-0x1(%rdi) 284 ret 285 286 .balign 16 287L(P0QH): mov %rdx,-0x88(%rdi) 288 .balign 16 289L(P0QG): mov %rdx,-0x80(%rdi) 290L(P0QF): mov %rdx,-0x78(%rdi) 291L(P0QE): mov %rdx,-0x70(%rdi) 292L(P0QD): mov %rdx,-0x68(%rdi) 293L(P0QC): mov %rdx,-0x60(%rdi) 294L(P0QB): mov %rdx,-0x58(%rdi) 295L(P0QA): mov %rdx,-0x50(%rdi) 296L(P0Q9): mov %rdx,-0x48(%rdi) 297L(P0Q8): mov %rdx,-0x40(%rdi) 298L(P0Q7): mov %rdx,-0x38(%rdi) 299L(P0Q6): mov %rdx,-0x30(%rdi) 300L(P0Q5): mov %rdx,-0x28(%rdi) 301L(P0Q4): mov %rdx,-0x20(%rdi) 302L(P0Q3): mov %rdx,-0x18(%rdi) 303L(P0Q2): mov %rdx,-0x10(%rdi) 304L(P0Q1): mov %rdx,-0x8(%rdi) 305L(P0Q0): ret 306 307 .balign 16 308L(P2QH): mov %rdx,-0x8a(%rdi) 309L(P2QG): mov %rdx,-0x82(%rdi) 310 .balign 16 311L(P2QF): mov %rdx,-0x7a(%rdi) 312L(P2QE): mov %rdx,-0x72(%rdi) 313L(P2QD): mov %rdx,-0x6a(%rdi) 314L(P2QC): mov %rdx,-0x62(%rdi) 315L(P2QB): mov %rdx,-0x5a(%rdi) 316L(P2QA): mov %rdx,-0x52(%rdi) 317L(P2Q9): mov %rdx,-0x4a(%rdi) 318L(P2Q8): mov %rdx,-0x42(%rdi) 319L(P2Q7): mov %rdx,-0x3a(%rdi) 320L(P2Q6): mov %rdx,-0x32(%rdi) 321L(P2Q5): mov %rdx,-0x2a(%rdi) 322L(P2Q4): mov %rdx,-0x22(%rdi) 323L(P2Q3): mov %rdx,-0x1a(%rdi) 324L(P2Q2): mov %rdx,-0x12(%rdi) 325L(P2Q1): mov %rdx,-0xa(%rdi) 326L(P2Q0): mov %dx,-0x2(%rdi) 327 ret 328 329 .balign 16 330L(P3QH): mov %rdx,-0x8b(%rdi) 331L(P3QG): mov %rdx,-0x83(%rdi) 332 .balign 16 333L(P3QF): mov %rdx,-0x7b(%rdi) 334L(P3QE): mov %rdx,-0x73(%rdi) 335L(P3QD): mov %rdx,-0x6b(%rdi) 336L(P3QC): mov %rdx,-0x63(%rdi) 337L(P3QB): mov %rdx,-0x5b(%rdi) 338L(P3QA): mov %rdx,-0x53(%rdi) 339L(P3Q9): mov %rdx,-0x4b(%rdi) 340L(P3Q8): mov %rdx,-0x43(%rdi) 341L(P3Q7): mov %rdx,-0x3b(%rdi) 342L(P3Q6): mov %rdx,-0x33(%rdi) 343L(P3Q5): mov %rdx,-0x2b(%rdi) 344L(P3Q4): mov %rdx,-0x23(%rdi) 345L(P3Q3): mov %rdx,-0x1b(%rdi) 346L(P3Q2): mov %rdx,-0x13(%rdi) 347L(P3Q1): mov %rdx,-0xb(%rdi) 348L(P3Q0): mov %dx,-0x3(%rdi) 349 mov %dl,-0x1(%rdi) 350 ret 351 352 .balign 16 353L(P4QH): mov %rdx,-0x8c(%rdi) 354L(P4QG): mov %rdx,-0x84(%rdi) 355 .balign 16 356L(P4QF): mov %rdx,-0x7c(%rdi) 357L(P4QE): mov %rdx,-0x74(%rdi) 358L(P4QD): mov %rdx,-0x6c(%rdi) 359L(P4QC): mov %rdx,-0x64(%rdi) 360L(P4QB): mov %rdx,-0x5c(%rdi) 361L(P4QA): mov %rdx,-0x54(%rdi) 362L(P4Q9): mov %rdx,-0x4c(%rdi) 363L(P4Q8): mov %rdx,-0x44(%rdi) 364L(P4Q7): mov %rdx,-0x3c(%rdi) 365L(P4Q6): mov %rdx,-0x34(%rdi) 366L(P4Q5): mov %rdx,-0x2c(%rdi) 367L(P4Q4): mov %rdx,-0x24(%rdi) 368L(P4Q3): mov %rdx,-0x1c(%rdi) 369L(P4Q2): mov %rdx,-0x14(%rdi) 370L(P4Q1): mov %rdx,-0xc(%rdi) 371L(P4Q0): mov %edx,-0x4(%rdi) 372 ret 373 374 .balign 16 375L(P5QH): mov %rdx,-0x8d(%rdi) 376L(P5QG): mov %rdx,-0x85(%rdi) 377 .balign 16 378L(P5QF): mov %rdx,-0x7d(%rdi) 379L(P5QE): mov %rdx,-0x75(%rdi) 380L(P5QD): mov %rdx,-0x6d(%rdi) 381L(P5QC): mov %rdx,-0x65(%rdi) 382L(P5QB): mov %rdx,-0x5d(%rdi) 383L(P5QA): mov %rdx,-0x55(%rdi) 384L(P5Q9): mov %rdx,-0x4d(%rdi) 385L(P5Q8): mov %rdx,-0x45(%rdi) 386L(P5Q7): mov %rdx,-0x3d(%rdi) 387L(P5Q6): mov %rdx,-0x35(%rdi) 388L(P5Q5): mov %rdx,-0x2d(%rdi) 389L(P5Q4): mov %rdx,-0x25(%rdi) 390L(P5Q3): mov %rdx,-0x1d(%rdi) 391L(P5Q2): mov %rdx,-0x15(%rdi) 392L(P5Q1): mov %rdx,-0xd(%rdi) 393L(P5Q0): mov %edx,-0x5(%rdi) 394 mov %dl,-0x1(%rdi) 395 ret 396 397 .balign 16 398L(P6QH): mov %rdx,-0x8e(%rdi) 399L(P6QG): mov %rdx,-0x86(%rdi) 400 .balign 16 401L(P6QF): mov %rdx,-0x7e(%rdi) 402L(P6QE): mov %rdx,-0x76(%rdi) 403L(P6QD): mov %rdx,-0x6e(%rdi) 404L(P6QC): mov %rdx,-0x66(%rdi) 405L(P6QB): mov %rdx,-0x5e(%rdi) 406L(P6QA): mov %rdx,-0x56(%rdi) 407L(P6Q9): mov %rdx,-0x4e(%rdi) 408L(P6Q8): mov %rdx,-0x46(%rdi) 409L(P6Q7): mov %rdx,-0x3e(%rdi) 410L(P6Q6): mov %rdx,-0x36(%rdi) 411L(P6Q5): mov %rdx,-0x2e(%rdi) 412L(P6Q4): mov %rdx,-0x26(%rdi) 413L(P6Q3): mov %rdx,-0x1e(%rdi) 414L(P6Q2): mov %rdx,-0x16(%rdi) 415L(P6Q1): mov %rdx,-0xe(%rdi) 416L(P6Q0): mov %edx,-0x6(%rdi) 417 mov %dx,-0x2(%rdi) 418 ret 419 420 .balign 16 421L(P7QH): mov %rdx,-0x8f(%rdi) 422L(P7QG): mov %rdx,-0x87(%rdi) 423 .balign 16 424L(P7QF): mov %rdx,-0x7f(%rdi) 425L(P7QE): mov %rdx,-0x77(%rdi) 426L(P7QD): mov %rdx,-0x6f(%rdi) 427L(P7QC): mov %rdx,-0x67(%rdi) 428L(P7QB): mov %rdx,-0x5f(%rdi) 429L(P7QA): mov %rdx,-0x57(%rdi) 430L(P7Q9): mov %rdx,-0x4f(%rdi) 431L(P7Q8): mov %rdx,-0x47(%rdi) 432L(P7Q7): mov %rdx,-0x3f(%rdi) 433L(P7Q6): mov %rdx,-0x37(%rdi) 434L(P7Q5): mov %rdx,-0x2f(%rdi) 435L(P7Q4): mov %rdx,-0x27(%rdi) 436L(P7Q3): mov %rdx,-0x1f(%rdi) 437L(P7Q2): mov %rdx,-0x17(%rdi) 438L(P7Q1): mov %rdx,-0xf(%rdi) 439L(P7Q0): mov %edx,-0x7(%rdi) 440 mov %dx,-0x3(%rdi) 441 mov %dl,-0x1(%rdi) 442 ret 443 444 .balign 16 445L(ck_align): 446 /* 447 * Align to 16 byte boundary first 448 */ 449 lea L(AliPxQx)(%rip),%r11 450 mov $0x10,%r10 451 mov %rdi,%r9 452 and $0xf,%r9 453 sub %r9,%r10 454 and $0xf,%r10 455 add %r10,%rdi 456 sub %r10,%r8 457 458 movslq (%r11,%r10,4),%rcx 459 lea (%rcx,%r11,1),%r11 460 jmpq *%r11 # align dest to 16-byte boundary 461 462 .balign 16 463L(AliPxQx): .int L(aligned_now)-L(AliPxQx) 464 .int L(A1Q0)-L(AliPxQx) 465 .int L(A2Q0)-L(AliPxQx) 466 .int L(A3Q0)-L(AliPxQx) 467 .int L(A4Q0)-L(AliPxQx) 468 .int L(A5Q0)-L(AliPxQx) 469 .int L(A6Q0)-L(AliPxQx) 470 .int L(A7Q0)-L(AliPxQx) 471 472 .int L(A0Q1)-L(AliPxQx) 473 .int L(A1Q1)-L(AliPxQx) 474 .int L(A2Q1)-L(AliPxQx) 475 .int L(A3Q1)-L(AliPxQx) 476 .int L(A4Q1)-L(AliPxQx) 477 .int L(A5Q1)-L(AliPxQx) 478 .int L(A6Q1)-L(AliPxQx) 479 .int L(A7Q1)-L(AliPxQx) 480 481 .balign 16 482L(A5Q1): mov %dl,-0xd(%rdi) 483L(A4Q1): mov %edx,-0xc(%rdi) 484L(A0Q1): mov %rdx,-0x8(%rdi) 485 jmp L(aligned_now) 486 487 .balign 16 488L(A1Q1): mov %dl,-0x9(%rdi) 489 mov %rdx,-0x8(%rdi) 490 jmp L(aligned_now) 491 492 .balign 16 493L(A1Q0): mov %dl,-0x1(%rdi) 494 jmp L(aligned_now) 495 496 .balign 16 497L(A3Q1): mov %dl,-0xb(%rdi) 498L(A2Q1): mov %dx,-0xa(%rdi) 499 mov %rdx,-0x8(%rdi) 500 jmp L(aligned_now) 501 502 .balign 16 503L(A3Q0): mov %dl,-0x3(%rdi) 504L(A2Q0): mov %dx,-0x2(%rdi) 505 jmp L(aligned_now) 506 507 .balign 16 508L(A5Q0): mov %dl,-0x5(%rdi) 509L(A4Q0): mov %edx,-0x4(%rdi) 510 jmp L(aligned_now) 511 512 .balign 16 513L(A7Q1): mov %dl,-0xf(%rdi) 514L(A6Q1): mov %dx,-0xe(%rdi) 515 mov %edx,-0xc(%rdi) 516 mov %rdx,-0x8(%rdi) 517 jmp L(aligned_now) 518 519 .balign 16 520L(A7Q0): mov %dl,-0x7(%rdi) 521L(A6Q0): mov %dx,-0x6(%rdi) 522 mov %edx,-0x4(%rdi) 523 #jmp L(aligned_now) # Fall thru... 524 525 .balign 16 526L(aligned_now): 527 /* 528 * Check memops method 529 */ 530 cmpl $NO_SSE,.memops_method(%rip) 531 je L(Loop8byte_pre) 532 533 /* 534 * Use SSE2 instructions 535 */ 536 movd %rdx,%xmm0 537 lea L(SSExDx)(%rip),%r9 # after dest alignment 538 punpcklqdq %xmm0,%xmm0 # fill RegXMM0 with the pattern 539 cmp $0xc0,%r8 # 192 540 jge L(byte32sse2_pre) 541 542 add %r8,%rdi 543 544 movslq (%r9,%r8,4),%rcx 545 lea (%rcx,%r9,1),%r9 546 jmpq *%r9 547 548 .balign 16 549L(SSE0QB): movdqa %xmm0,-0xb0(%rdi) 550L(SSE0QA): movdqa %xmm0,-0xa0(%rdi) 551L(SSE0Q9): movdqa %xmm0,-0x90(%rdi) 552L(SSE0Q8): movdqa %xmm0,-0x80(%rdi) 553L(SSE0Q7): movdqa %xmm0,-0x70(%rdi) 554L(SSE0Q6): movdqa %xmm0,-0x60(%rdi) 555L(SSE0Q5): movdqa %xmm0,-0x50(%rdi) 556L(SSE0Q4): movdqa %xmm0,-0x40(%rdi) 557L(SSE0Q3): movdqa %xmm0,-0x30(%rdi) 558L(SSE0Q2): movdqa %xmm0,-0x20(%rdi) 559L(SSE0Q1): movdqa %xmm0,-0x10(%rdi) 560L(SSE0Q0): ret 561 562 .balign 16 563L(SSE1QB): movdqa %xmm0,-0xb1(%rdi) 564L(SSE1QA): movdqa %xmm0,-0xa1(%rdi) 565L(SSE1Q9): movdqa %xmm0,-0x91(%rdi) 566L(SSE1Q8): movdqa %xmm0,-0x81(%rdi) 567L(SSE1Q7): movdqa %xmm0,-0x71(%rdi) 568L(SSE1Q6): movdqa %xmm0,-0x61(%rdi) 569L(SSE1Q5): movdqa %xmm0,-0x51(%rdi) 570L(SSE1Q4): movdqa %xmm0,-0x41(%rdi) 571L(SSE1Q3): movdqa %xmm0,-0x31(%rdi) 572L(SSE1Q2): movdqa %xmm0,-0x21(%rdi) 573L(SSE1Q1): movdqa %xmm0,-0x11(%rdi) 574L(SSE1Q0): mov %dl,-0x1(%rdi) 575 ret 576 577 .balign 16 578L(SSE2QB): movdqa %xmm0,-0xb2(%rdi) 579L(SSE2QA): movdqa %xmm0,-0xa2(%rdi) 580L(SSE2Q9): movdqa %xmm0,-0x92(%rdi) 581L(SSE2Q8): movdqa %xmm0,-0x82(%rdi) 582L(SSE2Q7): movdqa %xmm0,-0x72(%rdi) 583L(SSE2Q6): movdqa %xmm0,-0x62(%rdi) 584L(SSE2Q5): movdqa %xmm0,-0x52(%rdi) 585L(SSE2Q4): movdqa %xmm0,-0x42(%rdi) 586L(SSE2Q3): movdqa %xmm0,-0x32(%rdi) 587L(SSE2Q2): movdqa %xmm0,-0x22(%rdi) 588L(SSE2Q1): movdqa %xmm0,-0x12(%rdi) 589L(SSE2Q0): mov %dx,-0x2(%rdi) 590 ret 591 592 .balign 16 593L(SSE3QB): movdqa %xmm0,-0xb3(%rdi) 594L(SSE3QA): movdqa %xmm0,-0xa3(%rdi) 595L(SSE3Q9): movdqa %xmm0,-0x93(%rdi) 596L(SSE3Q8): movdqa %xmm0,-0x83(%rdi) 597L(SSE3Q7): movdqa %xmm0,-0x73(%rdi) 598L(SSE3Q6): movdqa %xmm0,-0x63(%rdi) 599L(SSE3Q5): movdqa %xmm0,-0x53(%rdi) 600L(SSE3Q4): movdqa %xmm0,-0x43(%rdi) 601L(SSE3Q3): movdqa %xmm0,-0x33(%rdi) 602L(SSE3Q2): movdqa %xmm0,-0x23(%rdi) 603L(SSE3Q1): movdqa %xmm0,-0x13(%rdi) 604L(SSE3Q0): mov %dx,-0x3(%rdi) 605 mov %dl,-0x1(%rdi) 606 ret 607 608 .balign 16 609L(SSE4QB): movdqa %xmm0,-0xb4(%rdi) 610L(SSE4QA): movdqa %xmm0,-0xa4(%rdi) 611L(SSE4Q9): movdqa %xmm0,-0x94(%rdi) 612L(SSE4Q8): movdqa %xmm0,-0x84(%rdi) 613L(SSE4Q7): movdqa %xmm0,-0x74(%rdi) 614L(SSE4Q6): movdqa %xmm0,-0x64(%rdi) 615L(SSE4Q5): movdqa %xmm0,-0x54(%rdi) 616L(SSE4Q4): movdqa %xmm0,-0x44(%rdi) 617L(SSE4Q3): movdqa %xmm0,-0x34(%rdi) 618L(SSE4Q2): movdqa %xmm0,-0x24(%rdi) 619L(SSE4Q1): movdqa %xmm0,-0x14(%rdi) 620L(SSE4Q0): mov %edx,-0x4(%rdi) 621 ret 622 623 .balign 16 624L(SSE5QB): movdqa %xmm0,-0xb5(%rdi) 625L(SSE5QA): movdqa %xmm0,-0xa5(%rdi) 626L(SSE5Q9): movdqa %xmm0,-0x95(%rdi) 627L(SSE5Q8): movdqa %xmm0,-0x85(%rdi) 628L(SSE5Q7): movdqa %xmm0,-0x75(%rdi) 629L(SSE5Q6): movdqa %xmm0,-0x65(%rdi) 630L(SSE5Q5): movdqa %xmm0,-0x55(%rdi) 631L(SSE5Q4): movdqa %xmm0,-0x45(%rdi) 632L(SSE5Q3): movdqa %xmm0,-0x35(%rdi) 633L(SSE5Q2): movdqa %xmm0,-0x25(%rdi) 634L(SSE5Q1): movdqa %xmm0,-0x15(%rdi) 635L(SSE5Q0): mov %edx,-0x5(%rdi) 636 mov %dl,-0x1(%rdi) 637 ret 638 639 .balign 16 640L(SSE6QB): movdqa %xmm0,-0xb6(%rdi) 641L(SSE6QA): movdqa %xmm0,-0xa6(%rdi) 642L(SSE6Q9): movdqa %xmm0,-0x96(%rdi) 643L(SSE6Q8): movdqa %xmm0,-0x86(%rdi) 644L(SSE6Q7): movdqa %xmm0,-0x76(%rdi) 645L(SSE6Q6): movdqa %xmm0,-0x66(%rdi) 646L(SSE6Q5): movdqa %xmm0,-0x56(%rdi) 647L(SSE6Q4): movdqa %xmm0,-0x46(%rdi) 648L(SSE6Q3): movdqa %xmm0,-0x36(%rdi) 649L(SSE6Q2): movdqa %xmm0,-0x26(%rdi) 650L(SSE6Q1): movdqa %xmm0,-0x16(%rdi) 651L(SSE6Q0): mov %edx,-0x6(%rdi) 652 mov %dx,-0x2(%rdi) 653 ret 654 655 .balign 16 656L(SSE7QB): movdqa %xmm0,-0xb7(%rdi) 657L(SSE7QA): movdqa %xmm0,-0xa7(%rdi) 658L(SSE7Q9): movdqa %xmm0,-0x97(%rdi) 659L(SSE7Q8): movdqa %xmm0,-0x87(%rdi) 660L(SSE7Q7): movdqa %xmm0,-0x77(%rdi) 661L(SSE7Q6): movdqa %xmm0,-0x67(%rdi) 662L(SSE7Q5): movdqa %xmm0,-0x57(%rdi) 663L(SSE7Q4): movdqa %xmm0,-0x47(%rdi) 664L(SSE7Q3): movdqa %xmm0,-0x37(%rdi) 665L(SSE7Q2): movdqa %xmm0,-0x27(%rdi) 666L(SSE7Q1): movdqa %xmm0,-0x17(%rdi) 667L(SSE7Q0): mov %edx,-0x7(%rdi) 668 mov %dx,-0x3(%rdi) 669 mov %dl,-0x1(%rdi) 670 ret 671 672 .balign 16 673L(SSE8QB): movdqa %xmm0,-0xb8(%rdi) 674L(SSE8QA): movdqa %xmm0,-0xa8(%rdi) 675L(SSE8Q9): movdqa %xmm0,-0x98(%rdi) 676L(SSE8Q8): movdqa %xmm0,-0x88(%rdi) 677L(SSE8Q7): movdqa %xmm0,-0x78(%rdi) 678L(SSE8Q6): movdqa %xmm0,-0x68(%rdi) 679L(SSE8Q5): movdqa %xmm0,-0x58(%rdi) 680L(SSE8Q4): movdqa %xmm0,-0x48(%rdi) 681L(SSE8Q3): movdqa %xmm0,-0x38(%rdi) 682L(SSE8Q2): movdqa %xmm0,-0x28(%rdi) 683L(SSE8Q1): movdqa %xmm0,-0x18(%rdi) 684L(SSE8Q0): mov %rdx,-0x8(%rdi) 685 ret 686 687 .balign 16 688L(SSE9QB): movdqa %xmm0,-0xb9(%rdi) 689L(SSE9QA): movdqa %xmm0,-0xa9(%rdi) 690L(SSE9Q9): movdqa %xmm0,-0x99(%rdi) 691L(SSE9Q8): movdqa %xmm0,-0x89(%rdi) 692L(SSE9Q7): movdqa %xmm0,-0x79(%rdi) 693L(SSE9Q6): movdqa %xmm0,-0x69(%rdi) 694L(SSE9Q5): movdqa %xmm0,-0x59(%rdi) 695L(SSE9Q4): movdqa %xmm0,-0x49(%rdi) 696L(SSE9Q3): movdqa %xmm0,-0x39(%rdi) 697L(SSE9Q2): movdqa %xmm0,-0x29(%rdi) 698L(SSE9Q1): movdqa %xmm0,-0x19(%rdi) 699L(SSE9Q0): mov %rdx,-0x9(%rdi) 700 mov %dl,-0x1(%rdi) 701 ret 702 703 .balign 16 704L(SSE10QB): movdqa %xmm0,-0xba(%rdi) 705L(SSE10QA): movdqa %xmm0,-0xaa(%rdi) 706L(SSE10Q9): movdqa %xmm0,-0x9a(%rdi) 707L(SSE10Q8): movdqa %xmm0,-0x8a(%rdi) 708L(SSE10Q7): movdqa %xmm0,-0x7a(%rdi) 709L(SSE10Q6): movdqa %xmm0,-0x6a(%rdi) 710L(SSE10Q5): movdqa %xmm0,-0x5a(%rdi) 711L(SSE10Q4): movdqa %xmm0,-0x4a(%rdi) 712L(SSE10Q3): movdqa %xmm0,-0x3a(%rdi) 713L(SSE10Q2): movdqa %xmm0,-0x2a(%rdi) 714L(SSE10Q1): movdqa %xmm0,-0x1a(%rdi) 715L(SSE10Q0): mov %rdx,-0xa(%rdi) 716 mov %dx,-0x2(%rdi) 717 ret 718 719 .balign 16 720L(SSE11QB): movdqa %xmm0,-0xbb(%rdi) 721L(SSE11QA): movdqa %xmm0,-0xab(%rdi) 722L(SSE11Q9): movdqa %xmm0,-0x9b(%rdi) 723L(SSE11Q8): movdqa %xmm0,-0x8b(%rdi) 724L(SSE11Q7): movdqa %xmm0,-0x7b(%rdi) 725L(SSE11Q6): movdqa %xmm0,-0x6b(%rdi) 726L(SSE11Q5): movdqa %xmm0,-0x5b(%rdi) 727L(SSE11Q4): movdqa %xmm0,-0x4b(%rdi) 728L(SSE11Q3): movdqa %xmm0,-0x3b(%rdi) 729L(SSE11Q2): movdqa %xmm0,-0x2b(%rdi) 730L(SSE11Q1): movdqa %xmm0,-0x1b(%rdi) 731L(SSE11Q0): mov %rdx,-0xb(%rdi) 732 mov %dx,-0x3(%rdi) 733 mov %dl,-0x1(%rdi) 734 ret 735 736 .balign 16 737L(SSE12QB): movdqa %xmm0,-0xbc(%rdi) 738L(SSE12QA): movdqa %xmm0,-0xac(%rdi) 739L(SSE12Q9): movdqa %xmm0,-0x9c(%rdi) 740L(SSE12Q8): movdqa %xmm0,-0x8c(%rdi) 741L(SSE12Q7): movdqa %xmm0,-0x7c(%rdi) 742L(SSE12Q6): movdqa %xmm0,-0x6c(%rdi) 743L(SSE12Q5): movdqa %xmm0,-0x5c(%rdi) 744L(SSE12Q4): movdqa %xmm0,-0x4c(%rdi) 745L(SSE12Q3): movdqa %xmm0,-0x3c(%rdi) 746L(SSE12Q2): movdqa %xmm0,-0x2c(%rdi) 747L(SSE12Q1): movdqa %xmm0,-0x1c(%rdi) 748L(SSE12Q0): mov %rdx,-0xc(%rdi) 749 mov %edx,-0x4(%rdi) 750 ret 751 752 .balign 16 753L(SSE13QB): movdqa %xmm0,-0xbd(%rdi) 754L(SSE13QA): movdqa %xmm0,-0xad(%rdi) 755L(SSE13Q9): movdqa %xmm0,-0x9d(%rdi) 756L(SSE13Q8): movdqa %xmm0,-0x8d(%rdi) 757L(SSE13Q7): movdqa %xmm0,-0x7d(%rdi) 758L(SSE13Q6): movdqa %xmm0,-0x6d(%rdi) 759L(SSE13Q5): movdqa %xmm0,-0x5d(%rdi) 760L(SSE13Q4): movdqa %xmm0,-0x4d(%rdi) 761L(SSE13Q3): movdqa %xmm0,-0x3d(%rdi) 762L(SSE13Q2): movdqa %xmm0,-0x2d(%rdi) 763L(SSE13Q1): movdqa %xmm0,-0x1d(%rdi) 764L(SSE13Q0): mov %rdx,-0xd(%rdi) 765 mov %edx,-0x5(%rdi) 766 mov %dl,-0x1(%rdi) 767 ret 768 769 .balign 16 770L(SSE14QB): movdqa %xmm0,-0xbe(%rdi) 771L(SSE14QA): movdqa %xmm0,-0xae(%rdi) 772L(SSE14Q9): movdqa %xmm0,-0x9e(%rdi) 773L(SSE14Q8): movdqa %xmm0,-0x8e(%rdi) 774L(SSE14Q7): movdqa %xmm0,-0x7e(%rdi) 775L(SSE14Q6): movdqa %xmm0,-0x6e(%rdi) 776L(SSE14Q5): movdqa %xmm0,-0x5e(%rdi) 777L(SSE14Q4): movdqa %xmm0,-0x4e(%rdi) 778L(SSE14Q3): movdqa %xmm0,-0x3e(%rdi) 779L(SSE14Q2): movdqa %xmm0,-0x2e(%rdi) 780L(SSE14Q1): movdqa %xmm0,-0x1e(%rdi) 781L(SSE14Q0): mov %rdx,-0xe(%rdi) 782 mov %edx,-0x6(%rdi) 783 mov %dx,-0x2(%rdi) 784 ret 785 786 .balign 16 787L(SSE15QB): movdqa %xmm0,-0xbf(%rdi) 788L(SSE15QA): movdqa %xmm0,-0xaf(%rdi) 789L(SSE15Q9): movdqa %xmm0,-0x9f(%rdi) 790L(SSE15Q8): movdqa %xmm0,-0x8f(%rdi) 791L(SSE15Q7): movdqa %xmm0,-0x7f(%rdi) 792L(SSE15Q6): movdqa %xmm0,-0x6f(%rdi) 793L(SSE15Q5): movdqa %xmm0,-0x5f(%rdi) 794L(SSE15Q4): movdqa %xmm0,-0x4f(%rdi) 795L(SSE15Q3): movdqa %xmm0,-0x3f(%rdi) 796L(SSE15Q2): movdqa %xmm0,-0x2f(%rdi) 797L(SSE15Q1): movdqa %xmm0,-0x1f(%rdi) 798L(SSE15Q0): mov %rdx,-0xf(%rdi) 799 mov %edx,-0x7(%rdi) 800 mov %dx,-0x3(%rdi) 801 mov %dl,-0x1(%rdi) 802 ret 803 804 .balign 16 805L(byte32sse2_pre): 806 mov .largest_level_cache_size(%rip),%r9d 807 cmp %r9,%r8 808 jg L(sse2_nt_move) 809 #jmp L(byte32sse2) # Fall thru... 810 811 .balign 16 812L(byte32sse2): 813 lea -0x80(%r8),%r8 # 128 814 cmp $0x80,%r8 815 movdqa %xmm0,(%rdi) 816 movdqa %xmm0,0x10(%rdi) 817 movdqa %xmm0,0x20(%rdi) 818 movdqa %xmm0,0x30(%rdi) 819 movdqa %xmm0,0x40(%rdi) 820 movdqa %xmm0,0x50(%rdi) 821 movdqa %xmm0,0x60(%rdi) 822 movdqa %xmm0,0x70(%rdi) 823 824 lea 0x80(%rdi),%rdi 825 jge L(byte32sse2) 826 827 lea L(SSExDx)(%rip),%r11 828 add %r8,%rdi 829 movslq (%r11,%r8,4),%rcx 830 lea (%rcx,%r11,1),%r11 831 jmpq *%r11 832 833 .balign 16 834L(sse2_nt_move): 835 sub $0x80,%r8 # 128 836 movntdq %xmm0,(%rdi) 837 movntdq %xmm0,0x10(%rdi) 838 movntdq %xmm0,0x20(%rdi) 839 movntdq %xmm0,0x30(%rdi) 840 movntdq %xmm0,0x40(%rdi) 841 movntdq %xmm0,0x50(%rdi) 842 movntdq %xmm0,0x60(%rdi) 843 movntdq %xmm0,0x70(%rdi) 844 add $0x80,%rdi 845 cmp $0x80,%r8 846 jge L(sse2_nt_move) 847 848 sfence 849 lea L(SSExDx)(%rip),%r11 850 add %r8,%rdi 851 movslq (%r11,%r8,4),%rcx 852 lea (%rcx,%r11,1),%r11 853 jmpq *%r11 854 855 /* 856 * Don't use SSE 857 */ 858 .balign 16 859L(Loop8byte_pre): 860 mov .largest_level_cache_size(%rip),%r9d 861 cmp %r9,%r8 862 jg L(Loop8byte_nt_move) 863 cmp $0x800,%r8 # Use rep sstoq 864 jge L(use_rep) 865 866 .balign 16 867L(Loop8byte): 868 lea -0x80(%r8),%r8 # 128 869 mov %rdx,(%rdi) 870 mov %rdx,0x8(%rdi) 871 mov %rdx,0x10(%rdi) 872 mov %rdx,0x18(%rdi) 873 mov %rdx,0x20(%rdi) 874 mov %rdx,0x28(%rdi) 875 mov %rdx,0x30(%rdi) 876 mov %rdx,0x38(%rdi) 877 cmp $0x80,%r8 878 mov %rdx,0x40(%rdi) 879 mov %rdx,0x48(%rdi) 880 mov %rdx,0x50(%rdi) 881 mov %rdx,0x58(%rdi) 882 mov %rdx,0x60(%rdi) 883 mov %rdx,0x68(%rdi) 884 mov %rdx,0x70(%rdi) 885 mov %rdx,0x78(%rdi) 886 lea 0x80(%rdi),%rdi 887 jge L(Loop8byte) 888 8891: 890 lea L(setPxQx)(%rip),%r11 891 lea (%rdi,%r8,1),%rdi 892 893 movslq (%r11,%r8,4),%rcx 894 lea (%rcx,%r11,1),%r11 895 jmpq *%r11 896 897 /* 898 * Use rep sstoq for sizes > 2K 899 */ 900 .balign 16 901L(use_rep): 902 movq %r8,%rcx # get size in bytes 903 xchg %rax,%rdx 904 shrq $3,%rcx 905 rep 906 sstoq 907 xchg %rax,%rdx 908 andq $7,%r8 # remaining bytes 909 jnz 1b 910 ret 911 912 .balign 16 913L(Loop8byte_nt_move): 914 lea -0x40(%r8),%r8 # 64 915 movnti %rdx,(%rdi) 916 movnti %rdx,0x8(%rdi) 917 movnti %rdx,0x10(%rdi) 918 movnti %rdx,0x18(%rdi) 919 cmp $0x40,%r8 920 movnti %rdx,0x20(%rdi) 921 movnti %rdx,0x28(%rdi) 922 movnti %rdx,0x30(%rdi) 923 movnti %rdx,0x38(%rdi) 924 lea 0x40(%rdi),%rdi 925 jge L(Loop8byte_nt_move) 926 927 sfence 928 lea L(setPxQx)(%rip),%r11 929 lea (%rdi,%r8,1),%rdi 930 931 movslq (%r11,%r8,4),%rcx 932 lea (%rcx,%r11,1),%r11 933 jmpq *%r11 934 935 .balign 16 936L(SSExDx): .int L(SSE0Q0) -L(SSExDx) 937 .int L(SSE1Q0) -L(SSExDx) 938 .int L(SSE2Q0) -L(SSExDx) 939 .int L(SSE3Q0) -L(SSExDx) 940 .int L(SSE4Q0) -L(SSExDx) 941 .int L(SSE5Q0) -L(SSExDx) 942 .int L(SSE6Q0) -L(SSExDx) 943 .int L(SSE7Q0) -L(SSExDx) 944 945 .int L(SSE8Q0) -L(SSExDx) 946 .int L(SSE9Q0) -L(SSExDx) 947 .int L(SSE10Q0)-L(SSExDx) 948 .int L(SSE11Q0)-L(SSExDx) 949 .int L(SSE12Q0)-L(SSExDx) 950 .int L(SSE13Q0)-L(SSExDx) 951 .int L(SSE14Q0)-L(SSExDx) 952 .int L(SSE15Q0)-L(SSExDx) 953 954 .int L(SSE0Q1) -L(SSExDx) 955 .int L(SSE1Q1) -L(SSExDx) 956 .int L(SSE2Q1) -L(SSExDx) 957 .int L(SSE3Q1) -L(SSExDx) 958 .int L(SSE4Q1) -L(SSExDx) 959 .int L(SSE5Q1) -L(SSExDx) 960 .int L(SSE6Q1) -L(SSExDx) 961 .int L(SSE7Q1) -L(SSExDx) 962 963 .int L(SSE8Q1) -L(SSExDx) 964 .int L(SSE9Q1) -L(SSExDx) 965 .int L(SSE10Q1)-L(SSExDx) 966 .int L(SSE11Q1)-L(SSExDx) 967 .int L(SSE12Q1)-L(SSExDx) 968 .int L(SSE13Q1)-L(SSExDx) 969 .int L(SSE14Q1)-L(SSExDx) 970 .int L(SSE15Q1)-L(SSExDx) 971 972 .int L(SSE0Q2) -L(SSExDx) 973 .int L(SSE1Q2) -L(SSExDx) 974 .int L(SSE2Q2) -L(SSExDx) 975 .int L(SSE3Q2) -L(SSExDx) 976 .int L(SSE4Q2) -L(SSExDx) 977 .int L(SSE5Q2) -L(SSExDx) 978 .int L(SSE6Q2) -L(SSExDx) 979 .int L(SSE7Q2) -L(SSExDx) 980 981 .int L(SSE8Q2) -L(SSExDx) 982 .int L(SSE9Q2) -L(SSExDx) 983 .int L(SSE10Q2)-L(SSExDx) 984 .int L(SSE11Q2)-L(SSExDx) 985 .int L(SSE12Q2)-L(SSExDx) 986 .int L(SSE13Q2)-L(SSExDx) 987 .int L(SSE14Q2)-L(SSExDx) 988 .int L(SSE15Q2)-L(SSExDx) 989 990 .int L(SSE0Q3) -L(SSExDx) 991 .int L(SSE1Q3) -L(SSExDx) 992 .int L(SSE2Q3) -L(SSExDx) 993 .int L(SSE3Q3) -L(SSExDx) 994 .int L(SSE4Q3) -L(SSExDx) 995 .int L(SSE5Q3) -L(SSExDx) 996 .int L(SSE6Q3) -L(SSExDx) 997 .int L(SSE7Q3) -L(SSExDx) 998 999 .int L(SSE8Q3) -L(SSExDx) 1000 .int L(SSE9Q3) -L(SSExDx) 1001 .int L(SSE10Q3)-L(SSExDx) 1002 .int L(SSE11Q3)-L(SSExDx) 1003 .int L(SSE12Q3)-L(SSExDx) 1004 .int L(SSE13Q3)-L(SSExDx) 1005 .int L(SSE14Q3)-L(SSExDx) 1006 .int L(SSE15Q3)-L(SSExDx) 1007 1008 .int L(SSE0Q4) -L(SSExDx) 1009 .int L(SSE1Q4) -L(SSExDx) 1010 .int L(SSE2Q4) -L(SSExDx) 1011 .int L(SSE3Q4) -L(SSExDx) 1012 .int L(SSE4Q4) -L(SSExDx) 1013 .int L(SSE5Q4) -L(SSExDx) 1014 .int L(SSE6Q4) -L(SSExDx) 1015 .int L(SSE7Q4) -L(SSExDx) 1016 1017 .int L(SSE8Q4) -L(SSExDx) 1018 .int L(SSE9Q4) -L(SSExDx) 1019 .int L(SSE10Q4)-L(SSExDx) 1020 .int L(SSE11Q4)-L(SSExDx) 1021 .int L(SSE12Q4)-L(SSExDx) 1022 .int L(SSE13Q4)-L(SSExDx) 1023 .int L(SSE14Q4)-L(SSExDx) 1024 .int L(SSE15Q4)-L(SSExDx) 1025 1026 .int L(SSE0Q5) -L(SSExDx) 1027 .int L(SSE1Q5) -L(SSExDx) 1028 .int L(SSE2Q5) -L(SSExDx) 1029 .int L(SSE3Q5) -L(SSExDx) 1030 .int L(SSE4Q5) -L(SSExDx) 1031 .int L(SSE5Q5) -L(SSExDx) 1032 .int L(SSE6Q5) -L(SSExDx) 1033 .int L(SSE7Q5) -L(SSExDx) 1034 1035 .int L(SSE8Q5) -L(SSExDx) 1036 .int L(SSE9Q5) -L(SSExDx) 1037 .int L(SSE10Q5)-L(SSExDx) 1038 .int L(SSE11Q5)-L(SSExDx) 1039 .int L(SSE12Q5)-L(SSExDx) 1040 .int L(SSE13Q5)-L(SSExDx) 1041 .int L(SSE14Q5)-L(SSExDx) 1042 .int L(SSE15Q5)-L(SSExDx) 1043 1044 .int L(SSE0Q6) -L(SSExDx) 1045 .int L(SSE1Q6) -L(SSExDx) 1046 .int L(SSE2Q6) -L(SSExDx) 1047 .int L(SSE3Q6) -L(SSExDx) 1048 .int L(SSE4Q6) -L(SSExDx) 1049 .int L(SSE5Q6) -L(SSExDx) 1050 .int L(SSE6Q6) -L(SSExDx) 1051 .int L(SSE7Q6) -L(SSExDx) 1052 1053 .int L(SSE8Q6) -L(SSExDx) 1054 .int L(SSE9Q6) -L(SSExDx) 1055 .int L(SSE10Q6)-L(SSExDx) 1056 .int L(SSE11Q6)-L(SSExDx) 1057 .int L(SSE12Q6)-L(SSExDx) 1058 .int L(SSE13Q6)-L(SSExDx) 1059 .int L(SSE14Q6)-L(SSExDx) 1060 .int L(SSE15Q6)-L(SSExDx) 1061 1062 .int L(SSE0Q7) -L(SSExDx) 1063 .int L(SSE1Q7) -L(SSExDx) 1064 .int L(SSE2Q7) -L(SSExDx) 1065 .int L(SSE3Q7) -L(SSExDx) 1066 .int L(SSE4Q7) -L(SSExDx) 1067 .int L(SSE5Q7) -L(SSExDx) 1068 .int L(SSE6Q7) -L(SSExDx) 1069 .int L(SSE7Q7) -L(SSExDx) 1070 1071 .int L(SSE8Q7) -L(SSExDx) 1072 .int L(SSE9Q7) -L(SSExDx) 1073 .int L(SSE10Q7)-L(SSExDx) 1074 .int L(SSE11Q7)-L(SSExDx) 1075 .int L(SSE12Q7)-L(SSExDx) 1076 .int L(SSE13Q7)-L(SSExDx) 1077 .int L(SSE14Q7)-L(SSExDx) 1078 .int L(SSE15Q7)-L(SSExDx) 1079 1080 .int L(SSE0Q8) -L(SSExDx) 1081 .int L(SSE1Q8) -L(SSExDx) 1082 .int L(SSE2Q8) -L(SSExDx) 1083 .int L(SSE3Q8) -L(SSExDx) 1084 .int L(SSE4Q8) -L(SSExDx) 1085 .int L(SSE5Q8) -L(SSExDx) 1086 .int L(SSE6Q8) -L(SSExDx) 1087 .int L(SSE7Q8) -L(SSExDx) 1088 1089 .int L(SSE8Q8) -L(SSExDx) 1090 .int L(SSE9Q8) -L(SSExDx) 1091 .int L(SSE10Q8)-L(SSExDx) 1092 .int L(SSE11Q8)-L(SSExDx) 1093 .int L(SSE12Q8)-L(SSExDx) 1094 .int L(SSE13Q8)-L(SSExDx) 1095 .int L(SSE14Q8)-L(SSExDx) 1096 .int L(SSE15Q8)-L(SSExDx) 1097 1098 .int L(SSE0Q9) -L(SSExDx) 1099 .int L(SSE1Q9) -L(SSExDx) 1100 .int L(SSE2Q9) -L(SSExDx) 1101 .int L(SSE3Q9) -L(SSExDx) 1102 .int L(SSE4Q9) -L(SSExDx) 1103 .int L(SSE5Q9) -L(SSExDx) 1104 .int L(SSE6Q9) -L(SSExDx) 1105 .int L(SSE7Q9) -L(SSExDx) 1106 1107 .int L(SSE8Q9) -L(SSExDx) 1108 .int L(SSE9Q9) -L(SSExDx) 1109 .int L(SSE10Q9)-L(SSExDx) 1110 .int L(SSE11Q9)-L(SSExDx) 1111 .int L(SSE12Q9)-L(SSExDx) 1112 .int L(SSE13Q9)-L(SSExDx) 1113 .int L(SSE14Q9)-L(SSExDx) 1114 .int L(SSE15Q9)-L(SSExDx) 1115 1116 .int L(SSE0QA) -L(SSExDx) 1117 .int L(SSE1QA) -L(SSExDx) 1118 .int L(SSE2QA) -L(SSExDx) 1119 .int L(SSE3QA) -L(SSExDx) 1120 .int L(SSE4QA) -L(SSExDx) 1121 .int L(SSE5QA) -L(SSExDx) 1122 .int L(SSE6QA) -L(SSExDx) 1123 .int L(SSE7QA) -L(SSExDx) 1124 1125 .int L(SSE8QA) -L(SSExDx) 1126 .int L(SSE9QA) -L(SSExDx) 1127 .int L(SSE10QA)-L(SSExDx) 1128 .int L(SSE11QA)-L(SSExDx) 1129 .int L(SSE12QA)-L(SSExDx) 1130 .int L(SSE13QA)-L(SSExDx) 1131 .int L(SSE14QA)-L(SSExDx) 1132 .int L(SSE15QA)-L(SSExDx) 1133 1134 .int L(SSE0QB) -L(SSExDx) 1135 .int L(SSE1QB) -L(SSExDx) 1136 .int L(SSE2QB) -L(SSExDx) 1137 .int L(SSE3QB) -L(SSExDx) 1138 .int L(SSE4QB) -L(SSExDx) 1139 .int L(SSE5QB) -L(SSExDx) 1140 .int L(SSE6QB) -L(SSExDx) 1141 .int L(SSE7QB) -L(SSExDx) 1142 1143 .int L(SSE8QB) -L(SSExDx) 1144 .int L(SSE9QB) -L(SSExDx) 1145 .int L(SSE10QB)-L(SSExDx) 1146 .int L(SSE11QB)-L(SSExDx) 1147 .int L(SSE12QB)-L(SSExDx) 1148 .int L(SSE13QB)-L(SSExDx) 1149 .int L(SSE14QB)-L(SSExDx) 1150 .int L(SSE15QB)-L(SSExDx) 1151 1152 SET_SIZE(memset) 1153