]> git.ipfire.org Git - thirdparty/glibc.git/blame - sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / sysdeps / x86_64 / multiarch / memcpy-ssse3-back.S
CommitLineData
6fb8cbcb 1/* memcpy with SSSE3 and REP string
b168057a 2 Copyright (C) 2010-2015 Free Software Foundation, Inc.
6fb8cbcb
L
3 Contributed by Intel Corporation.
4 This file is part of the GNU C Library.
5
6 The GNU C Library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
10
11 The GNU C Library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
15
16 You should have received a copy of the GNU Lesser General Public
59ba27a6
PE
17 License along with the GNU C Library; if not, see
18 <http://www.gnu.org/licenses/>. */
6fb8cbcb
L
19
20#include <sysdep.h>
21
4f41c682 22#if IS_IN (libc) \
6fb8cbcb
L
23 && (defined SHARED \
24 || defined USE_AS_MEMMOVE \
25 || !defined USE_MULTIARCH)
26
27#include "asm-syntax.h"
28
29#ifndef MEMCPY
30# define MEMCPY __memcpy_ssse3_back
31# define MEMCPY_CHK __memcpy_chk_ssse3_back
32#endif
33
6fb8cbcb
L
34#define JMPTBL(I, B) I - B
35
36/* Branch to an entry in a jump table. TABLE is a jump table with
37 relative offsets. INDEX is a register contains the index into the
38 jump table. SCALE is the scale of INDEX. */
39#define BRANCH_TO_JMPTBL_ENTRY(TABLE, INDEX, SCALE) \
40 lea TABLE(%rip), %r11; \
41 movslq (%r11, INDEX, SCALE), INDEX; \
42 lea (%r11, INDEX), INDEX; \
43 jmp *INDEX; \
44 ud2
45
46 .section .text.ssse3,"ax",@progbits
4c559bcd 47#if !defined USE_AS_BCOPY
6fb8cbcb
L
48ENTRY (MEMCPY_CHK)
49 cmpq %rdx, %rcx
50 jb HIDDEN_JUMPTARGET (__chk_fail)
51END (MEMCPY_CHK)
52#endif
53
54ENTRY (MEMCPY)
55 mov %rdi, %rax
56#ifdef USE_AS_MEMPCPY
57 add %rdx, %rax
58#endif
59
60#ifdef USE_AS_MEMMOVE
61 cmp %rsi, %rdi
62 jb L(copy_forward)
63 je L(bwd_write_0bytes)
64 cmp $144, %rdx
65 jae L(copy_backward)
66 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_bwd), %rdx, 4)
67L(copy_forward):
68#endif
69 cmp $144, %rdx
70 jae L(144bytesormore)
71
72L(fwd_write_less32bytes):
73#ifndef USE_AS_MEMMOVE
74 cmp %dil, %sil
75 jbe L(bk_write)
76#endif
77 add %rdx, %rsi
78 add %rdx, %rdi
79 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_fwd), %rdx, 4)
80#ifndef USE_AS_MEMMOVE
81L(bk_write):
82
83 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_bwd), %rdx, 4)
84#endif
85
e7044ea7 86 .p2align 4
6fb8cbcb
L
87L(144bytesormore):
88
89#ifndef USE_AS_MEMMOVE
90 cmp %dil, %sil
91 jle L(copy_backward)
92#endif
93 movdqu (%rsi), %xmm0
94 mov %rdi, %r8
95 and $-16, %rdi
96 add $16, %rdi
97 mov %rdi, %r9
98 sub %r8, %r9
99 sub %r9, %rdx
100 add %r9, %rsi
101 mov %rsi, %r9
102 and $0xf, %r9
103 jz L(shl_0)
104#ifdef DATA_CACHE_SIZE
6d2850e7 105 mov $DATA_CACHE_SIZE, %RCX_LP
6fb8cbcb 106#else
afec409a 107 mov __x86_data_cache_size(%rip), %RCX_LP
6fb8cbcb
L
108#endif
109 cmp %rcx, %rdx
110 jae L(gobble_mem_fwd)
111 lea L(shl_table_fwd)(%rip), %r11
112 sub $0x80, %rdx
113 movslq (%r11, %r9, 4), %r9
114 add %r11, %r9
115 jmp *%r9
116 ud2
117
e7044ea7 118 .p2align 4
6fb8cbcb
L
119L(copy_backward):
120#ifdef DATA_CACHE_SIZE
6d2850e7 121 mov $DATA_CACHE_SIZE, %RCX_LP
6fb8cbcb 122#else
afec409a 123 mov __x86_data_cache_size(%rip), %RCX_LP
6fb8cbcb
L
124#endif
125 shl $1, %rcx
126 cmp %rcx, %rdx
127 ja L(gobble_mem_bwd)
128
129 add %rdx, %rdi
130 add %rdx, %rsi
131 movdqu -16(%rsi), %xmm0
132 lea -16(%rdi), %r8
133 mov %rdi, %r9
134 and $0xf, %r9
135 xor %r9, %rdi
136 sub %r9, %rsi
137 sub %r9, %rdx
138 mov %rsi, %r9
139 and $0xf, %r9
140 jz L(shl_0_bwd)
141 lea L(shl_table_bwd)(%rip), %r11
142 sub $0x80, %rdx
143 movslq (%r11, %r9, 4), %r9
144 add %r11, %r9
145 jmp *%r9
146 ud2
147
e7044ea7 148 .p2align 4
6fb8cbcb
L
149L(shl_0):
150
151 mov %rdx, %r9
152 shr $8, %r9
153 add %rdx, %r9
154#ifdef DATA_CACHE_SIZE
6d2850e7 155 cmp $DATA_CACHE_SIZE_HALF, %R9_LP
6fb8cbcb 156#else
afec409a 157 cmp __x86_data_cache_size_half(%rip), %R9_LP
6fb8cbcb
L
158#endif
159 jae L(gobble_mem_fwd)
160 sub $0x80, %rdx
e7044ea7 161 .p2align 4
6fb8cbcb
L
162L(shl_0_loop):
163 movdqa (%rsi), %xmm1
164 movdqa %xmm1, (%rdi)
165 movaps 0x10(%rsi), %xmm2
166 movaps %xmm2, 0x10(%rdi)
167 movaps 0x20(%rsi), %xmm3
168 movaps %xmm3, 0x20(%rdi)
169 movaps 0x30(%rsi), %xmm4
170 movaps %xmm4, 0x30(%rdi)
171 movaps 0x40(%rsi), %xmm1
172 movaps %xmm1, 0x40(%rdi)
173 movaps 0x50(%rsi), %xmm2
174 movaps %xmm2, 0x50(%rdi)
175 movaps 0x60(%rsi), %xmm3
176 movaps %xmm3, 0x60(%rdi)
177 movaps 0x70(%rsi), %xmm4
178 movaps %xmm4, 0x70(%rdi)
179 sub $0x80, %rdx
180 lea 0x80(%rsi), %rsi
181 lea 0x80(%rdi), %rdi
182 jae L(shl_0_loop)
183 movdqu %xmm0, (%r8)
184 add $0x80, %rdx
185 add %rdx, %rsi
186 add %rdx, %rdi
187 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_fwd), %rdx, 4)
188
e7044ea7 189 .p2align 4
6fb8cbcb
L
190L(shl_0_bwd):
191 sub $0x80, %rdx
192L(copy_backward_loop):
193 movaps -0x10(%rsi), %xmm1
194 movaps %xmm1, -0x10(%rdi)
195 movaps -0x20(%rsi), %xmm2
196 movaps %xmm2, -0x20(%rdi)
197 movaps -0x30(%rsi), %xmm3
198 movaps %xmm3, -0x30(%rdi)
199 movaps -0x40(%rsi), %xmm4
200 movaps %xmm4, -0x40(%rdi)
201 movaps -0x50(%rsi), %xmm5
202 movaps %xmm5, -0x50(%rdi)
203 movaps -0x60(%rsi), %xmm5
204 movaps %xmm5, -0x60(%rdi)
205 movaps -0x70(%rsi), %xmm5
206 movaps %xmm5, -0x70(%rdi)
207 movaps -0x80(%rsi), %xmm5
208 movaps %xmm5, -0x80(%rdi)
209 sub $0x80, %rdx
210 lea -0x80(%rdi), %rdi
211 lea -0x80(%rsi), %rsi
212 jae L(copy_backward_loop)
213
214 movdqu %xmm0, (%r8)
215 add $0x80, %rdx
216 sub %rdx, %rdi
217 sub %rdx, %rsi
218 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_bwd), %rdx, 4)
219
e7044ea7 220 .p2align 4
6fb8cbcb
L
221L(shl_1):
222 sub $0x80, %rdx
223 movaps -0x01(%rsi), %xmm1
224 movaps 0x0f(%rsi), %xmm2
225 movaps 0x1f(%rsi), %xmm3
226 movaps 0x2f(%rsi), %xmm4
227 movaps 0x3f(%rsi), %xmm5
228 movaps 0x4f(%rsi), %xmm6
229 movaps 0x5f(%rsi), %xmm7
230 movaps 0x6f(%rsi), %xmm8
231 movaps 0x7f(%rsi), %xmm9
232 lea 0x80(%rsi), %rsi
233 palignr $1, %xmm8, %xmm9
234 movaps %xmm9, 0x70(%rdi)
235 palignr $1, %xmm7, %xmm8
236 movaps %xmm8, 0x60(%rdi)
237 palignr $1, %xmm6, %xmm7
238 movaps %xmm7, 0x50(%rdi)
239 palignr $1, %xmm5, %xmm6
240 movaps %xmm6, 0x40(%rdi)
241 palignr $1, %xmm4, %xmm5
242 movaps %xmm5, 0x30(%rdi)
243 palignr $1, %xmm3, %xmm4
244 movaps %xmm4, 0x20(%rdi)
245 palignr $1, %xmm2, %xmm3
246 movaps %xmm3, 0x10(%rdi)
247 palignr $1, %xmm1, %xmm2
248 movaps %xmm2, (%rdi)
249 lea 0x80(%rdi), %rdi
250 jae L(shl_1)
251 movdqu %xmm0, (%r8)
252 add $0x80, %rdx
253 add %rdx, %rdi
254 add %rdx, %rsi
255 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_fwd), %rdx, 4)
256
e7044ea7 257 .p2align 4
6fb8cbcb
L
258L(shl_1_bwd):
259 movaps -0x01(%rsi), %xmm1
260
261 movaps -0x11(%rsi), %xmm2
262 palignr $1, %xmm2, %xmm1
263 movaps %xmm1, -0x10(%rdi)
264
265 movaps -0x21(%rsi), %xmm3
266 palignr $1, %xmm3, %xmm2
267 movaps %xmm2, -0x20(%rdi)
268
269 movaps -0x31(%rsi), %xmm4
270 palignr $1, %xmm4, %xmm3
271 movaps %xmm3, -0x30(%rdi)
272
273 movaps -0x41(%rsi), %xmm5
274 palignr $1, %xmm5, %xmm4
275 movaps %xmm4, -0x40(%rdi)
276
277 movaps -0x51(%rsi), %xmm6
278 palignr $1, %xmm6, %xmm5
279 movaps %xmm5, -0x50(%rdi)
280
281 movaps -0x61(%rsi), %xmm7
282 palignr $1, %xmm7, %xmm6
283 movaps %xmm6, -0x60(%rdi)
284
285 movaps -0x71(%rsi), %xmm8
286 palignr $1, %xmm8, %xmm7
287 movaps %xmm7, -0x70(%rdi)
288
289 movaps -0x81(%rsi), %xmm9
290 palignr $1, %xmm9, %xmm8
291 movaps %xmm8, -0x80(%rdi)
292
293 sub $0x80, %rdx
294 lea -0x80(%rdi), %rdi
295 lea -0x80(%rsi), %rsi
296 jae L(shl_1_bwd)
297 movdqu %xmm0, (%r8)
298 add $0x80, %rdx
299 sub %rdx, %rdi
300 sub %rdx, %rsi
301 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_bwd), %rdx, 4)
302
e7044ea7 303 .p2align 4
6fb8cbcb
L
304L(shl_2):
305 sub $0x80, %rdx
306 movaps -0x02(%rsi), %xmm1
307 movaps 0x0e(%rsi), %xmm2
308 movaps 0x1e(%rsi), %xmm3
309 movaps 0x2e(%rsi), %xmm4
310 movaps 0x3e(%rsi), %xmm5
311 movaps 0x4e(%rsi), %xmm6
312 movaps 0x5e(%rsi), %xmm7
313 movaps 0x6e(%rsi), %xmm8
314 movaps 0x7e(%rsi), %xmm9
315 lea 0x80(%rsi), %rsi
316 palignr $2, %xmm8, %xmm9
317 movaps %xmm9, 0x70(%rdi)
318 palignr $2, %xmm7, %xmm8
319 movaps %xmm8, 0x60(%rdi)
320 palignr $2, %xmm6, %xmm7
321 movaps %xmm7, 0x50(%rdi)
322 palignr $2, %xmm5, %xmm6
323 movaps %xmm6, 0x40(%rdi)
324 palignr $2, %xmm4, %xmm5
325 movaps %xmm5, 0x30(%rdi)
326 palignr $2, %xmm3, %xmm4
327 movaps %xmm4, 0x20(%rdi)
328 palignr $2, %xmm2, %xmm3
329 movaps %xmm3, 0x10(%rdi)
330 palignr $2, %xmm1, %xmm2
331 movaps %xmm2, (%rdi)
332 lea 0x80(%rdi), %rdi
333 jae L(shl_2)
334 movdqu %xmm0, (%r8)
335 add $0x80, %rdx
336 add %rdx, %rdi
337 add %rdx, %rsi
338 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_fwd), %rdx, 4)
339
e7044ea7 340 .p2align 4
6fb8cbcb
L
341L(shl_2_bwd):
342 movaps -0x02(%rsi), %xmm1
343
344 movaps -0x12(%rsi), %xmm2
345 palignr $2, %xmm2, %xmm1
346 movaps %xmm1, -0x10(%rdi)
347
348 movaps -0x22(%rsi), %xmm3
349 palignr $2, %xmm3, %xmm2
350 movaps %xmm2, -0x20(%rdi)
351
352 movaps -0x32(%rsi), %xmm4
353 palignr $2, %xmm4, %xmm3
354 movaps %xmm3, -0x30(%rdi)
355
356 movaps -0x42(%rsi), %xmm5
357 palignr $2, %xmm5, %xmm4
358 movaps %xmm4, -0x40(%rdi)
359
360 movaps -0x52(%rsi), %xmm6
361 palignr $2, %xmm6, %xmm5
362 movaps %xmm5, -0x50(%rdi)
363
364 movaps -0x62(%rsi), %xmm7
365 palignr $2, %xmm7, %xmm6
366 movaps %xmm6, -0x60(%rdi)
367
368 movaps -0x72(%rsi), %xmm8
369 palignr $2, %xmm8, %xmm7
370 movaps %xmm7, -0x70(%rdi)
371
372 movaps -0x82(%rsi), %xmm9
373 palignr $2, %xmm9, %xmm8
374 movaps %xmm8, -0x80(%rdi)
375
376 sub $0x80, %rdx
377 lea -0x80(%rdi), %rdi
378 lea -0x80(%rsi), %rsi
379 jae L(shl_2_bwd)
380 movdqu %xmm0, (%r8)
381 add $0x80, %rdx
382 sub %rdx, %rdi
383 sub %rdx, %rsi
384 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_bwd), %rdx, 4)
385
e7044ea7 386 .p2align 4
6fb8cbcb
L
387L(shl_3):
388 sub $0x80, %rdx
389 movaps -0x03(%rsi), %xmm1
390 movaps 0x0d(%rsi), %xmm2
391 movaps 0x1d(%rsi), %xmm3
392 movaps 0x2d(%rsi), %xmm4
393 movaps 0x3d(%rsi), %xmm5
394 movaps 0x4d(%rsi), %xmm6
395 movaps 0x5d(%rsi), %xmm7
396 movaps 0x6d(%rsi), %xmm8
397 movaps 0x7d(%rsi), %xmm9
398 lea 0x80(%rsi), %rsi
399 palignr $3, %xmm8, %xmm9
400 movaps %xmm9, 0x70(%rdi)
401 palignr $3, %xmm7, %xmm8
402 movaps %xmm8, 0x60(%rdi)
403 palignr $3, %xmm6, %xmm7
404 movaps %xmm7, 0x50(%rdi)
405 palignr $3, %xmm5, %xmm6
406 movaps %xmm6, 0x40(%rdi)
407 palignr $3, %xmm4, %xmm5
408 movaps %xmm5, 0x30(%rdi)
409 palignr $3, %xmm3, %xmm4
410 movaps %xmm4, 0x20(%rdi)
411 palignr $3, %xmm2, %xmm3
412 movaps %xmm3, 0x10(%rdi)
413 palignr $3, %xmm1, %xmm2
414 movaps %xmm2, (%rdi)
415 lea 0x80(%rdi), %rdi
416 jae L(shl_3)
417 movdqu %xmm0, (%r8)
418 add $0x80, %rdx
419 add %rdx, %rdi
420 add %rdx, %rsi
421 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_fwd), %rdx, 4)
422
e7044ea7 423 .p2align 4
6fb8cbcb
L
424L(shl_3_bwd):
425 movaps -0x03(%rsi), %xmm1
426
427 movaps -0x13(%rsi), %xmm2
428 palignr $3, %xmm2, %xmm1
429 movaps %xmm1, -0x10(%rdi)
430
431 movaps -0x23(%rsi), %xmm3
432 palignr $3, %xmm3, %xmm2
433 movaps %xmm2, -0x20(%rdi)
434
435 movaps -0x33(%rsi), %xmm4
436 palignr $3, %xmm4, %xmm3
437 movaps %xmm3, -0x30(%rdi)
438
439 movaps -0x43(%rsi), %xmm5
440 palignr $3, %xmm5, %xmm4
441 movaps %xmm4, -0x40(%rdi)
442
443 movaps -0x53(%rsi), %xmm6
444 palignr $3, %xmm6, %xmm5
445 movaps %xmm5, -0x50(%rdi)
446
447 movaps -0x63(%rsi), %xmm7
448 palignr $3, %xmm7, %xmm6
449 movaps %xmm6, -0x60(%rdi)
450
451 movaps -0x73(%rsi), %xmm8
452 palignr $3, %xmm8, %xmm7
453 movaps %xmm7, -0x70(%rdi)
454
455 movaps -0x83(%rsi), %xmm9
456 palignr $3, %xmm9, %xmm8
457 movaps %xmm8, -0x80(%rdi)
458
459 sub $0x80, %rdx
460 lea -0x80(%rdi), %rdi
461 lea -0x80(%rsi), %rsi
462 jae L(shl_3_bwd)
463 movdqu %xmm0, (%r8)
464 add $0x80, %rdx
465 sub %rdx, %rdi
466 sub %rdx, %rsi
467 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_bwd), %rdx, 4)
468
e7044ea7 469 .p2align 4
6fb8cbcb
L
470L(shl_4):
471 sub $0x80, %rdx
472 movaps -0x04(%rsi), %xmm1
473 movaps 0x0c(%rsi), %xmm2
474 movaps 0x1c(%rsi), %xmm3
475 movaps 0x2c(%rsi), %xmm4
476 movaps 0x3c(%rsi), %xmm5
477 movaps 0x4c(%rsi), %xmm6
478 movaps 0x5c(%rsi), %xmm7
479 movaps 0x6c(%rsi), %xmm8
480 movaps 0x7c(%rsi), %xmm9
481 lea 0x80(%rsi), %rsi
482 palignr $4, %xmm8, %xmm9
483 movaps %xmm9, 0x70(%rdi)
484 palignr $4, %xmm7, %xmm8
485 movaps %xmm8, 0x60(%rdi)
486 palignr $4, %xmm6, %xmm7
487 movaps %xmm7, 0x50(%rdi)
488 palignr $4, %xmm5, %xmm6
489 movaps %xmm6, 0x40(%rdi)
490 palignr $4, %xmm4, %xmm5
491 movaps %xmm5, 0x30(%rdi)
492 palignr $4, %xmm3, %xmm4
493 movaps %xmm4, 0x20(%rdi)
494 palignr $4, %xmm2, %xmm3
495 movaps %xmm3, 0x10(%rdi)
496 palignr $4, %xmm1, %xmm2
497 movaps %xmm2, (%rdi)
498 lea 0x80(%rdi), %rdi
499 jae L(shl_4)
500 movdqu %xmm0, (%r8)
501 add $0x80, %rdx
502 add %rdx, %rdi
503 add %rdx, %rsi
504 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_fwd), %rdx, 4)
505
e7044ea7 506 .p2align 4
6fb8cbcb
L
507L(shl_4_bwd):
508 movaps -0x04(%rsi), %xmm1
509
510 movaps -0x14(%rsi), %xmm2
511 palignr $4, %xmm2, %xmm1
512 movaps %xmm1, -0x10(%rdi)
513
514 movaps -0x24(%rsi), %xmm3
515 palignr $4, %xmm3, %xmm2
516 movaps %xmm2, -0x20(%rdi)
517
518 movaps -0x34(%rsi), %xmm4
519 palignr $4, %xmm4, %xmm3
520 movaps %xmm3, -0x30(%rdi)
521
522 movaps -0x44(%rsi), %xmm5
523 palignr $4, %xmm5, %xmm4
524 movaps %xmm4, -0x40(%rdi)
525
526 movaps -0x54(%rsi), %xmm6
527 palignr $4, %xmm6, %xmm5
528 movaps %xmm5, -0x50(%rdi)
529
530 movaps -0x64(%rsi), %xmm7
531 palignr $4, %xmm7, %xmm6
532 movaps %xmm6, -0x60(%rdi)
533
534 movaps -0x74(%rsi), %xmm8
535 palignr $4, %xmm8, %xmm7
536 movaps %xmm7, -0x70(%rdi)
537
538 movaps -0x84(%rsi), %xmm9
539 palignr $4, %xmm9, %xmm8
540 movaps %xmm8, -0x80(%rdi)
541
542 sub $0x80, %rdx
543 lea -0x80(%rdi), %rdi
544 lea -0x80(%rsi), %rsi
545 jae L(shl_4_bwd)
546 movdqu %xmm0, (%r8)
547 add $0x80, %rdx
548 sub %rdx, %rdi
549 sub %rdx, %rsi
550 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_bwd), %rdx, 4)
551
e7044ea7 552 .p2align 4
6fb8cbcb
L
553L(shl_5):
554 sub $0x80, %rdx
555 movaps -0x05(%rsi), %xmm1
556 movaps 0x0b(%rsi), %xmm2
557 movaps 0x1b(%rsi), %xmm3
558 movaps 0x2b(%rsi), %xmm4
559 movaps 0x3b(%rsi), %xmm5
560 movaps 0x4b(%rsi), %xmm6
561 movaps 0x5b(%rsi), %xmm7
562 movaps 0x6b(%rsi), %xmm8
563 movaps 0x7b(%rsi), %xmm9
564 lea 0x80(%rsi), %rsi
565 palignr $5, %xmm8, %xmm9
566 movaps %xmm9, 0x70(%rdi)
567 palignr $5, %xmm7, %xmm8
568 movaps %xmm8, 0x60(%rdi)
569 palignr $5, %xmm6, %xmm7
570 movaps %xmm7, 0x50(%rdi)
571 palignr $5, %xmm5, %xmm6
572 movaps %xmm6, 0x40(%rdi)
573 palignr $5, %xmm4, %xmm5
574 movaps %xmm5, 0x30(%rdi)
575 palignr $5, %xmm3, %xmm4
576 movaps %xmm4, 0x20(%rdi)
577 palignr $5, %xmm2, %xmm3
578 movaps %xmm3, 0x10(%rdi)
579 palignr $5, %xmm1, %xmm2
580 movaps %xmm2, (%rdi)
581 lea 0x80(%rdi), %rdi
582 jae L(shl_5)
583 movdqu %xmm0, (%r8)
584 add $0x80, %rdx
585 add %rdx, %rdi
586 add %rdx, %rsi
587 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_fwd), %rdx, 4)
588
e7044ea7 589 .p2align 4
6fb8cbcb
L
590L(shl_5_bwd):
591 movaps -0x05(%rsi), %xmm1
592
593 movaps -0x15(%rsi), %xmm2
594 palignr $5, %xmm2, %xmm1
595 movaps %xmm1, -0x10(%rdi)
596
597 movaps -0x25(%rsi), %xmm3
598 palignr $5, %xmm3, %xmm2
599 movaps %xmm2, -0x20(%rdi)
600
601 movaps -0x35(%rsi), %xmm4
602 palignr $5, %xmm4, %xmm3
603 movaps %xmm3, -0x30(%rdi)
604
605 movaps -0x45(%rsi), %xmm5
606 palignr $5, %xmm5, %xmm4
607 movaps %xmm4, -0x40(%rdi)
608
609 movaps -0x55(%rsi), %xmm6
610 palignr $5, %xmm6, %xmm5
611 movaps %xmm5, -0x50(%rdi)
612
613 movaps -0x65(%rsi), %xmm7
614 palignr $5, %xmm7, %xmm6
615 movaps %xmm6, -0x60(%rdi)
616
617 movaps -0x75(%rsi), %xmm8
618 palignr $5, %xmm8, %xmm7
619 movaps %xmm7, -0x70(%rdi)
620
621 movaps -0x85(%rsi), %xmm9
622 palignr $5, %xmm9, %xmm8
623 movaps %xmm8, -0x80(%rdi)
624
625 sub $0x80, %rdx
626 lea -0x80(%rdi), %rdi
627 lea -0x80(%rsi), %rsi
628 jae L(shl_5_bwd)
629 movdqu %xmm0, (%r8)
630 add $0x80, %rdx
631 sub %rdx, %rdi
632 sub %rdx, %rsi
633 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_bwd), %rdx, 4)
634
e7044ea7 635 .p2align 4
6fb8cbcb
L
636L(shl_6):
637 sub $0x80, %rdx
638 movaps -0x06(%rsi), %xmm1
639 movaps 0x0a(%rsi), %xmm2
640 movaps 0x1a(%rsi), %xmm3
641 movaps 0x2a(%rsi), %xmm4
642 movaps 0x3a(%rsi), %xmm5
643 movaps 0x4a(%rsi), %xmm6
644 movaps 0x5a(%rsi), %xmm7
645 movaps 0x6a(%rsi), %xmm8
646 movaps 0x7a(%rsi), %xmm9
647 lea 0x80(%rsi), %rsi
648 palignr $6, %xmm8, %xmm9
649 movaps %xmm9, 0x70(%rdi)
650 palignr $6, %xmm7, %xmm8
651 movaps %xmm8, 0x60(%rdi)
652 palignr $6, %xmm6, %xmm7
653 movaps %xmm7, 0x50(%rdi)
654 palignr $6, %xmm5, %xmm6
655 movaps %xmm6, 0x40(%rdi)
656 palignr $6, %xmm4, %xmm5
657 movaps %xmm5, 0x30(%rdi)
658 palignr $6, %xmm3, %xmm4
659 movaps %xmm4, 0x20(%rdi)
660 palignr $6, %xmm2, %xmm3
661 movaps %xmm3, 0x10(%rdi)
662 palignr $6, %xmm1, %xmm2
663 movaps %xmm2, (%rdi)
664 lea 0x80(%rdi), %rdi
665 jae L(shl_6)
666 movdqu %xmm0, (%r8)
667 add $0x80, %rdx
668 add %rdx, %rdi
669 add %rdx, %rsi
670 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_fwd), %rdx, 4)
671
e7044ea7 672 .p2align 4
6fb8cbcb
L
673L(shl_6_bwd):
674 movaps -0x06(%rsi), %xmm1
675
676 movaps -0x16(%rsi), %xmm2
677 palignr $6, %xmm2, %xmm1
678 movaps %xmm1, -0x10(%rdi)
679
680 movaps -0x26(%rsi), %xmm3
681 palignr $6, %xmm3, %xmm2
682 movaps %xmm2, -0x20(%rdi)
683
684 movaps -0x36(%rsi), %xmm4
685 palignr $6, %xmm4, %xmm3
686 movaps %xmm3, -0x30(%rdi)
687
688 movaps -0x46(%rsi), %xmm5
689 palignr $6, %xmm5, %xmm4
690 movaps %xmm4, -0x40(%rdi)
691
692 movaps -0x56(%rsi), %xmm6
693 palignr $6, %xmm6, %xmm5
694 movaps %xmm5, -0x50(%rdi)
695
696 movaps -0x66(%rsi), %xmm7
697 palignr $6, %xmm7, %xmm6
698 movaps %xmm6, -0x60(%rdi)
699
700 movaps -0x76(%rsi), %xmm8
701 palignr $6, %xmm8, %xmm7
702 movaps %xmm7, -0x70(%rdi)
703
704 movaps -0x86(%rsi), %xmm9
705 palignr $6, %xmm9, %xmm8
706 movaps %xmm8, -0x80(%rdi)
707
708 sub $0x80, %rdx
709 lea -0x80(%rdi), %rdi
710 lea -0x80(%rsi), %rsi
711 jae L(shl_6_bwd)
712 movdqu %xmm0, (%r8)
713 add $0x80, %rdx
714 sub %rdx, %rdi
715 sub %rdx, %rsi
716 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_bwd), %rdx, 4)
717
e7044ea7 718 .p2align 4
6fb8cbcb
L
719L(shl_7):
720 sub $0x80, %rdx
721 movaps -0x07(%rsi), %xmm1
722 movaps 0x09(%rsi), %xmm2
723 movaps 0x19(%rsi), %xmm3
724 movaps 0x29(%rsi), %xmm4
725 movaps 0x39(%rsi), %xmm5
726 movaps 0x49(%rsi), %xmm6
727 movaps 0x59(%rsi), %xmm7
728 movaps 0x69(%rsi), %xmm8
729 movaps 0x79(%rsi), %xmm9
730 lea 0x80(%rsi), %rsi
731 palignr $7, %xmm8, %xmm9
732 movaps %xmm9, 0x70(%rdi)
733 palignr $7, %xmm7, %xmm8
734 movaps %xmm8, 0x60(%rdi)
735 palignr $7, %xmm6, %xmm7
736 movaps %xmm7, 0x50(%rdi)
737 palignr $7, %xmm5, %xmm6
738 movaps %xmm6, 0x40(%rdi)
739 palignr $7, %xmm4, %xmm5
740 movaps %xmm5, 0x30(%rdi)
741 palignr $7, %xmm3, %xmm4
742 movaps %xmm4, 0x20(%rdi)
743 palignr $7, %xmm2, %xmm3
744 movaps %xmm3, 0x10(%rdi)
745 palignr $7, %xmm1, %xmm2
746 movaps %xmm2, (%rdi)
747 lea 0x80(%rdi), %rdi
748 jae L(shl_7)
749 movdqu %xmm0, (%r8)
750 add $0x80, %rdx
751 add %rdx, %rdi
752 add %rdx, %rsi
753 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_fwd), %rdx, 4)
754
e7044ea7 755 .p2align 4
6fb8cbcb
L
756L(shl_7_bwd):
757 movaps -0x07(%rsi), %xmm1
758
759 movaps -0x17(%rsi), %xmm2
760 palignr $7, %xmm2, %xmm1
761 movaps %xmm1, -0x10(%rdi)
762
763 movaps -0x27(%rsi), %xmm3
764 palignr $7, %xmm3, %xmm2
765 movaps %xmm2, -0x20(%rdi)
766
767 movaps -0x37(%rsi), %xmm4
768 palignr $7, %xmm4, %xmm3
769 movaps %xmm3, -0x30(%rdi)
770
771 movaps -0x47(%rsi), %xmm5
772 palignr $7, %xmm5, %xmm4
773 movaps %xmm4, -0x40(%rdi)
774
775 movaps -0x57(%rsi), %xmm6
776 palignr $7, %xmm6, %xmm5
777 movaps %xmm5, -0x50(%rdi)
778
779 movaps -0x67(%rsi), %xmm7
780 palignr $7, %xmm7, %xmm6
781 movaps %xmm6, -0x60(%rdi)
782
783 movaps -0x77(%rsi), %xmm8
784 palignr $7, %xmm8, %xmm7
785 movaps %xmm7, -0x70(%rdi)
786
787 movaps -0x87(%rsi), %xmm9
788 palignr $7, %xmm9, %xmm8
789 movaps %xmm8, -0x80(%rdi)
790
791 sub $0x80, %rdx
792 lea -0x80(%rdi), %rdi
793 lea -0x80(%rsi), %rsi
794 jae L(shl_7_bwd)
795 movdqu %xmm0, (%r8)
796 add $0x80, %rdx
797 sub %rdx, %rdi
798 sub %rdx, %rsi
799 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_bwd), %rdx, 4)
800
e7044ea7 801 .p2align 4
6fb8cbcb
L
802L(shl_8):
803 sub $0x80, %rdx
804 movaps -0x08(%rsi), %xmm1
805 movaps 0x08(%rsi), %xmm2
806 movaps 0x18(%rsi), %xmm3
807 movaps 0x28(%rsi), %xmm4
808 movaps 0x38(%rsi), %xmm5
809 movaps 0x48(%rsi), %xmm6
810 movaps 0x58(%rsi), %xmm7
811 movaps 0x68(%rsi), %xmm8
812 movaps 0x78(%rsi), %xmm9
813 lea 0x80(%rsi), %rsi
814 palignr $8, %xmm8, %xmm9
815 movaps %xmm9, 0x70(%rdi)
816 palignr $8, %xmm7, %xmm8
817 movaps %xmm8, 0x60(%rdi)
818 palignr $8, %xmm6, %xmm7
819 movaps %xmm7, 0x50(%rdi)
820 palignr $8, %xmm5, %xmm6
821 movaps %xmm6, 0x40(%rdi)
822 palignr $8, %xmm4, %xmm5
823 movaps %xmm5, 0x30(%rdi)
824 palignr $8, %xmm3, %xmm4
825 movaps %xmm4, 0x20(%rdi)
826 palignr $8, %xmm2, %xmm3
827 movaps %xmm3, 0x10(%rdi)
828 palignr $8, %xmm1, %xmm2
829 movaps %xmm2, (%rdi)
830 lea 0x80(%rdi), %rdi
831 jae L(shl_8)
832 movdqu %xmm0, (%r8)
833 add $0x80, %rdx
834 add %rdx, %rdi
835 add %rdx, %rsi
836 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_fwd), %rdx, 4)
837
e7044ea7 838 .p2align 4
6fb8cbcb
L
839L(shl_8_bwd):
840 movaps -0x08(%rsi), %xmm1
841
842 movaps -0x18(%rsi), %xmm2
843 palignr $8, %xmm2, %xmm1
844 movaps %xmm1, -0x10(%rdi)
845
846 movaps -0x28(%rsi), %xmm3
847 palignr $8, %xmm3, %xmm2
848 movaps %xmm2, -0x20(%rdi)
849
850 movaps -0x38(%rsi), %xmm4
851 palignr $8, %xmm4, %xmm3
852 movaps %xmm3, -0x30(%rdi)
853
854 movaps -0x48(%rsi), %xmm5
855 palignr $8, %xmm5, %xmm4
856 movaps %xmm4, -0x40(%rdi)
857
858 movaps -0x58(%rsi), %xmm6
859 palignr $8, %xmm6, %xmm5
860 movaps %xmm5, -0x50(%rdi)
861
862 movaps -0x68(%rsi), %xmm7
863 palignr $8, %xmm7, %xmm6
864 movaps %xmm6, -0x60(%rdi)
865
866 movaps -0x78(%rsi), %xmm8
867 palignr $8, %xmm8, %xmm7
868 movaps %xmm7, -0x70(%rdi)
869
870 movaps -0x88(%rsi), %xmm9
871 palignr $8, %xmm9, %xmm8
872 movaps %xmm8, -0x80(%rdi)
873
874 sub $0x80, %rdx
875 lea -0x80(%rdi), %rdi
876 lea -0x80(%rsi), %rsi
877 jae L(shl_8_bwd)
878L(shl_8_end_bwd):
879 movdqu %xmm0, (%r8)
880 add $0x80, %rdx
881 sub %rdx, %rdi
882 sub %rdx, %rsi
883 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_bwd), %rdx, 4)
884
e7044ea7 885 .p2align 4
6fb8cbcb
L
886L(shl_9):
887 sub $0x80, %rdx
888 movaps -0x09(%rsi), %xmm1
889 movaps 0x07(%rsi), %xmm2
890 movaps 0x17(%rsi), %xmm3
891 movaps 0x27(%rsi), %xmm4
892 movaps 0x37(%rsi), %xmm5
893 movaps 0x47(%rsi), %xmm6
894 movaps 0x57(%rsi), %xmm7
895 movaps 0x67(%rsi), %xmm8
896 movaps 0x77(%rsi), %xmm9
897 lea 0x80(%rsi), %rsi
898 palignr $9, %xmm8, %xmm9
899 movaps %xmm9, 0x70(%rdi)
900 palignr $9, %xmm7, %xmm8
901 movaps %xmm8, 0x60(%rdi)
902 palignr $9, %xmm6, %xmm7
903 movaps %xmm7, 0x50(%rdi)
904 palignr $9, %xmm5, %xmm6
905 movaps %xmm6, 0x40(%rdi)
906 palignr $9, %xmm4, %xmm5
907 movaps %xmm5, 0x30(%rdi)
908 palignr $9, %xmm3, %xmm4
909 movaps %xmm4, 0x20(%rdi)
910 palignr $9, %xmm2, %xmm3
911 movaps %xmm3, 0x10(%rdi)
912 palignr $9, %xmm1, %xmm2
913 movaps %xmm2, (%rdi)
914 lea 0x80(%rdi), %rdi
915 jae L(shl_9)
916 movdqu %xmm0, (%r8)
917 add $0x80, %rdx
918 add %rdx, %rdi
919 add %rdx, %rsi
920 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_fwd), %rdx, 4)
921
e7044ea7 922 .p2align 4
6fb8cbcb
L
923L(shl_9_bwd):
924 movaps -0x09(%rsi), %xmm1
925
926 movaps -0x19(%rsi), %xmm2
927 palignr $9, %xmm2, %xmm1
928 movaps %xmm1, -0x10(%rdi)
929
930 movaps -0x29(%rsi), %xmm3
931 palignr $9, %xmm3, %xmm2
932 movaps %xmm2, -0x20(%rdi)
933
934 movaps -0x39(%rsi), %xmm4
935 palignr $9, %xmm4, %xmm3
936 movaps %xmm3, -0x30(%rdi)
937
938 movaps -0x49(%rsi), %xmm5
939 palignr $9, %xmm5, %xmm4
940 movaps %xmm4, -0x40(%rdi)
941
942 movaps -0x59(%rsi), %xmm6
943 palignr $9, %xmm6, %xmm5
944 movaps %xmm5, -0x50(%rdi)
945
946 movaps -0x69(%rsi), %xmm7
947 palignr $9, %xmm7, %xmm6
948 movaps %xmm6, -0x60(%rdi)
949
950 movaps -0x79(%rsi), %xmm8
951 palignr $9, %xmm8, %xmm7
952 movaps %xmm7, -0x70(%rdi)
953
954 movaps -0x89(%rsi), %xmm9
955 palignr $9, %xmm9, %xmm8
956 movaps %xmm8, -0x80(%rdi)
957
958 sub $0x80, %rdx
959 lea -0x80(%rdi), %rdi
960 lea -0x80(%rsi), %rsi
961 jae L(shl_9_bwd)
962 movdqu %xmm0, (%r8)
963 add $0x80, %rdx
964 sub %rdx, %rdi
965 sub %rdx, %rsi
966 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_bwd), %rdx, 4)
967
e7044ea7 968 .p2align 4
6fb8cbcb
L
969L(shl_10):
970 sub $0x80, %rdx
971 movaps -0x0a(%rsi), %xmm1
972 movaps 0x06(%rsi), %xmm2
973 movaps 0x16(%rsi), %xmm3
974 movaps 0x26(%rsi), %xmm4
975 movaps 0x36(%rsi), %xmm5
976 movaps 0x46(%rsi), %xmm6
977 movaps 0x56(%rsi), %xmm7
978 movaps 0x66(%rsi), %xmm8
979 movaps 0x76(%rsi), %xmm9
980 lea 0x80(%rsi), %rsi
981 palignr $10, %xmm8, %xmm9
982 movaps %xmm9, 0x70(%rdi)
983 palignr $10, %xmm7, %xmm8
984 movaps %xmm8, 0x60(%rdi)
985 palignr $10, %xmm6, %xmm7
986 movaps %xmm7, 0x50(%rdi)
987 palignr $10, %xmm5, %xmm6
988 movaps %xmm6, 0x40(%rdi)
989 palignr $10, %xmm4, %xmm5
990 movaps %xmm5, 0x30(%rdi)
991 palignr $10, %xmm3, %xmm4
992 movaps %xmm4, 0x20(%rdi)
993 palignr $10, %xmm2, %xmm3
994 movaps %xmm3, 0x10(%rdi)
995 palignr $10, %xmm1, %xmm2
996 movaps %xmm2, (%rdi)
997 lea 0x80(%rdi), %rdi
998 jae L(shl_10)
999 movdqu %xmm0, (%r8)
1000 add $0x80, %rdx
1001 add %rdx, %rdi
1002 add %rdx, %rsi
1003 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_fwd), %rdx, 4)
1004
e7044ea7 1005 .p2align 4
6fb8cbcb
L
1006L(shl_10_bwd):
1007 movaps -0x0a(%rsi), %xmm1
1008
1009 movaps -0x1a(%rsi), %xmm2
1010 palignr $10, %xmm2, %xmm1
1011 movaps %xmm1, -0x10(%rdi)
1012
1013 movaps -0x2a(%rsi), %xmm3
1014 palignr $10, %xmm3, %xmm2
1015 movaps %xmm2, -0x20(%rdi)
1016
1017 movaps -0x3a(%rsi), %xmm4
1018 palignr $10, %xmm4, %xmm3
1019 movaps %xmm3, -0x30(%rdi)
1020
1021 movaps -0x4a(%rsi), %xmm5
1022 palignr $10, %xmm5, %xmm4
1023 movaps %xmm4, -0x40(%rdi)
1024
1025 movaps -0x5a(%rsi), %xmm6
1026 palignr $10, %xmm6, %xmm5
1027 movaps %xmm5, -0x50(%rdi)
1028
1029 movaps -0x6a(%rsi), %xmm7
1030 palignr $10, %xmm7, %xmm6
1031 movaps %xmm6, -0x60(%rdi)
1032
1033 movaps -0x7a(%rsi), %xmm8
1034 palignr $10, %xmm8, %xmm7
1035 movaps %xmm7, -0x70(%rdi)
1036
1037 movaps -0x8a(%rsi), %xmm9
1038 palignr $10, %xmm9, %xmm8
1039 movaps %xmm8, -0x80(%rdi)
1040
1041 sub $0x80, %rdx
1042 lea -0x80(%rdi), %rdi
1043 lea -0x80(%rsi), %rsi
1044 jae L(shl_10_bwd)
1045 movdqu %xmm0, (%r8)
1046 add $0x80, %rdx
1047 sub %rdx, %rdi
1048 sub %rdx, %rsi
1049 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_bwd), %rdx, 4)
1050
e7044ea7 1051 .p2align 4
6fb8cbcb
L
1052L(shl_11):
1053 sub $0x80, %rdx
1054 movaps -0x0b(%rsi), %xmm1
1055 movaps 0x05(%rsi), %xmm2
1056 movaps 0x15(%rsi), %xmm3
1057 movaps 0x25(%rsi), %xmm4
1058 movaps 0x35(%rsi), %xmm5
1059 movaps 0x45(%rsi), %xmm6
1060 movaps 0x55(%rsi), %xmm7
1061 movaps 0x65(%rsi), %xmm8
1062 movaps 0x75(%rsi), %xmm9
1063 lea 0x80(%rsi), %rsi
1064 palignr $11, %xmm8, %xmm9
1065 movaps %xmm9, 0x70(%rdi)
1066 palignr $11, %xmm7, %xmm8
1067 movaps %xmm8, 0x60(%rdi)
1068 palignr $11, %xmm6, %xmm7
1069 movaps %xmm7, 0x50(%rdi)
1070 palignr $11, %xmm5, %xmm6
1071 movaps %xmm6, 0x40(%rdi)
1072 palignr $11, %xmm4, %xmm5
1073 movaps %xmm5, 0x30(%rdi)
1074 palignr $11, %xmm3, %xmm4
1075 movaps %xmm4, 0x20(%rdi)
1076 palignr $11, %xmm2, %xmm3
1077 movaps %xmm3, 0x10(%rdi)
1078 palignr $11, %xmm1, %xmm2
1079 movaps %xmm2, (%rdi)
1080 lea 0x80(%rdi), %rdi
1081 jae L(shl_11)
1082 movdqu %xmm0, (%r8)
1083 add $0x80, %rdx
1084 add %rdx, %rdi
1085 add %rdx, %rsi
1086 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_fwd), %rdx, 4)
1087
e7044ea7 1088 .p2align 4
6fb8cbcb
L
1089L(shl_11_bwd):
1090 movaps -0x0b(%rsi), %xmm1
1091
1092 movaps -0x1b(%rsi), %xmm2
1093 palignr $11, %xmm2, %xmm1
1094 movaps %xmm1, -0x10(%rdi)
1095
1096 movaps -0x2b(%rsi), %xmm3
1097 palignr $11, %xmm3, %xmm2
1098 movaps %xmm2, -0x20(%rdi)
1099
1100 movaps -0x3b(%rsi), %xmm4
1101 palignr $11, %xmm4, %xmm3
1102 movaps %xmm3, -0x30(%rdi)
1103
1104 movaps -0x4b(%rsi), %xmm5
1105 palignr $11, %xmm5, %xmm4
1106 movaps %xmm4, -0x40(%rdi)
1107
1108 movaps -0x5b(%rsi), %xmm6
1109 palignr $11, %xmm6, %xmm5
1110 movaps %xmm5, -0x50(%rdi)
1111
1112 movaps -0x6b(%rsi), %xmm7
1113 palignr $11, %xmm7, %xmm6
1114 movaps %xmm6, -0x60(%rdi)
1115
1116 movaps -0x7b(%rsi), %xmm8
1117 palignr $11, %xmm8, %xmm7
1118 movaps %xmm7, -0x70(%rdi)
1119
1120 movaps -0x8b(%rsi), %xmm9
1121 palignr $11, %xmm9, %xmm8
1122 movaps %xmm8, -0x80(%rdi)
1123
1124 sub $0x80, %rdx
1125 lea -0x80(%rdi), %rdi
1126 lea -0x80(%rsi), %rsi
1127 jae L(shl_11_bwd)
1128 movdqu %xmm0, (%r8)
1129 add $0x80, %rdx
1130 sub %rdx, %rdi
1131 sub %rdx, %rsi
1132 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_bwd), %rdx, 4)
1133
e7044ea7 1134 .p2align 4
6fb8cbcb
L
1135L(shl_12):
1136 sub $0x80, %rdx
1137 movdqa -0x0c(%rsi), %xmm1
1138 movaps 0x04(%rsi), %xmm2
1139 movaps 0x14(%rsi), %xmm3
1140 movaps 0x24(%rsi), %xmm4
1141 movaps 0x34(%rsi), %xmm5
1142 movaps 0x44(%rsi), %xmm6
1143 movaps 0x54(%rsi), %xmm7
1144 movaps 0x64(%rsi), %xmm8
1145 movaps 0x74(%rsi), %xmm9
1146 lea 0x80(%rsi), %rsi
1147 palignr $12, %xmm8, %xmm9
1148 movaps %xmm9, 0x70(%rdi)
1149 palignr $12, %xmm7, %xmm8
1150 movaps %xmm8, 0x60(%rdi)
1151 palignr $12, %xmm6, %xmm7
1152 movaps %xmm7, 0x50(%rdi)
1153 palignr $12, %xmm5, %xmm6
1154 movaps %xmm6, 0x40(%rdi)
1155 palignr $12, %xmm4, %xmm5
1156 movaps %xmm5, 0x30(%rdi)
1157 palignr $12, %xmm3, %xmm4
1158 movaps %xmm4, 0x20(%rdi)
1159 palignr $12, %xmm2, %xmm3
1160 movaps %xmm3, 0x10(%rdi)
1161 palignr $12, %xmm1, %xmm2
1162 movaps %xmm2, (%rdi)
1163
1164 lea 0x80(%rdi), %rdi
1165 jae L(shl_12)
1166 movdqu %xmm0, (%r8)
1167 add $0x80, %rdx
1168 add %rdx, %rdi
1169 add %rdx, %rsi
1170 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_fwd), %rdx, 4)
1171
e7044ea7 1172 .p2align 4
6fb8cbcb
L
1173L(shl_12_bwd):
1174 movaps -0x0c(%rsi), %xmm1
1175
1176 movaps -0x1c(%rsi), %xmm2
1177 palignr $12, %xmm2, %xmm1
1178 movaps %xmm1, -0x10(%rdi)
1179
1180 movaps -0x2c(%rsi), %xmm3
1181 palignr $12, %xmm3, %xmm2
1182 movaps %xmm2, -0x20(%rdi)
1183
1184 movaps -0x3c(%rsi), %xmm4
1185 palignr $12, %xmm4, %xmm3
1186 movaps %xmm3, -0x30(%rdi)
1187
1188 movaps -0x4c(%rsi), %xmm5
1189 palignr $12, %xmm5, %xmm4
1190 movaps %xmm4, -0x40(%rdi)
1191
1192 movaps -0x5c(%rsi), %xmm6
1193 palignr $12, %xmm6, %xmm5
1194 movaps %xmm5, -0x50(%rdi)
1195
1196 movaps -0x6c(%rsi), %xmm7
1197 palignr $12, %xmm7, %xmm6
1198 movaps %xmm6, -0x60(%rdi)
1199
1200 movaps -0x7c(%rsi), %xmm8
1201 palignr $12, %xmm8, %xmm7
1202 movaps %xmm7, -0x70(%rdi)
1203
1204 movaps -0x8c(%rsi), %xmm9
1205 palignr $12, %xmm9, %xmm8
1206 movaps %xmm8, -0x80(%rdi)
1207
1208 sub $0x80, %rdx
1209 lea -0x80(%rdi), %rdi
1210 lea -0x80(%rsi), %rsi
1211 jae L(shl_12_bwd)
1212 movdqu %xmm0, (%r8)
1213 add $0x80, %rdx
1214 sub %rdx, %rdi
1215 sub %rdx, %rsi
1216 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_bwd), %rdx, 4)
1217
e7044ea7 1218 .p2align 4
6fb8cbcb
L
1219L(shl_13):
1220 sub $0x80, %rdx
1221 movaps -0x0d(%rsi), %xmm1
1222 movaps 0x03(%rsi), %xmm2
1223 movaps 0x13(%rsi), %xmm3
1224 movaps 0x23(%rsi), %xmm4
1225 movaps 0x33(%rsi), %xmm5
1226 movaps 0x43(%rsi), %xmm6
1227 movaps 0x53(%rsi), %xmm7
1228 movaps 0x63(%rsi), %xmm8
1229 movaps 0x73(%rsi), %xmm9
1230 lea 0x80(%rsi), %rsi
1231 palignr $13, %xmm8, %xmm9
1232 movaps %xmm9, 0x70(%rdi)
1233 palignr $13, %xmm7, %xmm8
1234 movaps %xmm8, 0x60(%rdi)
1235 palignr $13, %xmm6, %xmm7
1236 movaps %xmm7, 0x50(%rdi)
1237 palignr $13, %xmm5, %xmm6
1238 movaps %xmm6, 0x40(%rdi)
1239 palignr $13, %xmm4, %xmm5
1240 movaps %xmm5, 0x30(%rdi)
1241 palignr $13, %xmm3, %xmm4
1242 movaps %xmm4, 0x20(%rdi)
1243 palignr $13, %xmm2, %xmm3
1244 movaps %xmm3, 0x10(%rdi)
1245 palignr $13, %xmm1, %xmm2
1246 movaps %xmm2, (%rdi)
1247 lea 0x80(%rdi), %rdi
1248 jae L(shl_13)
1249 movdqu %xmm0, (%r8)
1250 add $0x80, %rdx
1251 add %rdx, %rdi
1252 add %rdx, %rsi
1253 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_fwd), %rdx, 4)
1254
e7044ea7 1255 .p2align 4
6fb8cbcb
L
1256L(shl_13_bwd):
1257 movaps -0x0d(%rsi), %xmm1
1258
1259 movaps -0x1d(%rsi), %xmm2
1260 palignr $13, %xmm2, %xmm1
1261 movaps %xmm1, -0x10(%rdi)
1262
1263 movaps -0x2d(%rsi), %xmm3
1264 palignr $13, %xmm3, %xmm2
1265 movaps %xmm2, -0x20(%rdi)
1266
1267 movaps -0x3d(%rsi), %xmm4
1268 palignr $13, %xmm4, %xmm3
1269 movaps %xmm3, -0x30(%rdi)
1270
1271 movaps -0x4d(%rsi), %xmm5
1272 palignr $13, %xmm5, %xmm4
1273 movaps %xmm4, -0x40(%rdi)
1274
1275 movaps -0x5d(%rsi), %xmm6
1276 palignr $13, %xmm6, %xmm5
1277 movaps %xmm5, -0x50(%rdi)
1278
1279 movaps -0x6d(%rsi), %xmm7
1280 palignr $13, %xmm7, %xmm6
1281 movaps %xmm6, -0x60(%rdi)
1282
1283 movaps -0x7d(%rsi), %xmm8
1284 palignr $13, %xmm8, %xmm7
1285 movaps %xmm7, -0x70(%rdi)
1286
1287 movaps -0x8d(%rsi), %xmm9
1288 palignr $13, %xmm9, %xmm8
1289 movaps %xmm8, -0x80(%rdi)
1290
1291 sub $0x80, %rdx
1292 lea -0x80(%rdi), %rdi
1293 lea -0x80(%rsi), %rsi
1294 jae L(shl_13_bwd)
1295 movdqu %xmm0, (%r8)
1296 add $0x80, %rdx
1297 sub %rdx, %rdi
1298 sub %rdx, %rsi
1299 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_bwd), %rdx, 4)
1300
e7044ea7 1301 .p2align 4
6fb8cbcb
L
1302L(shl_14):
1303 sub $0x80, %rdx
1304 movaps -0x0e(%rsi), %xmm1
1305 movaps 0x02(%rsi), %xmm2
1306 movaps 0x12(%rsi), %xmm3
1307 movaps 0x22(%rsi), %xmm4
1308 movaps 0x32(%rsi), %xmm5
1309 movaps 0x42(%rsi), %xmm6
1310 movaps 0x52(%rsi), %xmm7
1311 movaps 0x62(%rsi), %xmm8
1312 movaps 0x72(%rsi), %xmm9
1313 lea 0x80(%rsi), %rsi
1314 palignr $14, %xmm8, %xmm9
1315 movaps %xmm9, 0x70(%rdi)
1316 palignr $14, %xmm7, %xmm8
1317 movaps %xmm8, 0x60(%rdi)
1318 palignr $14, %xmm6, %xmm7
1319 movaps %xmm7, 0x50(%rdi)
1320 palignr $14, %xmm5, %xmm6
1321 movaps %xmm6, 0x40(%rdi)
1322 palignr $14, %xmm4, %xmm5
1323 movaps %xmm5, 0x30(%rdi)
1324 palignr $14, %xmm3, %xmm4
1325 movaps %xmm4, 0x20(%rdi)
1326 palignr $14, %xmm2, %xmm3
1327 movaps %xmm3, 0x10(%rdi)
1328 palignr $14, %xmm1, %xmm2
1329 movaps %xmm2, (%rdi)
1330 lea 0x80(%rdi), %rdi
1331 jae L(shl_14)
1332 movdqu %xmm0, (%r8)
1333 add $0x80, %rdx
1334 add %rdx, %rdi
1335 add %rdx, %rsi
1336 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_fwd), %rdx, 4)
1337
e7044ea7 1338 .p2align 4
6fb8cbcb
L
1339L(shl_14_bwd):
1340 movaps -0x0e(%rsi), %xmm1
1341
1342 movaps -0x1e(%rsi), %xmm2
1343 palignr $14, %xmm2, %xmm1
1344 movaps %xmm1, -0x10(%rdi)
1345
1346 movaps -0x2e(%rsi), %xmm3
1347 palignr $14, %xmm3, %xmm2
1348 movaps %xmm2, -0x20(%rdi)
1349
1350 movaps -0x3e(%rsi), %xmm4
1351 palignr $14, %xmm4, %xmm3
1352 movaps %xmm3, -0x30(%rdi)
1353
1354 movaps -0x4e(%rsi), %xmm5
1355 palignr $14, %xmm5, %xmm4
1356 movaps %xmm4, -0x40(%rdi)
1357
1358 movaps -0x5e(%rsi), %xmm6
1359 palignr $14, %xmm6, %xmm5
1360 movaps %xmm5, -0x50(%rdi)
1361
1362 movaps -0x6e(%rsi), %xmm7
1363 palignr $14, %xmm7, %xmm6
1364 movaps %xmm6, -0x60(%rdi)
1365
1366 movaps -0x7e(%rsi), %xmm8
1367 palignr $14, %xmm8, %xmm7
1368 movaps %xmm7, -0x70(%rdi)
1369
1370 movaps -0x8e(%rsi), %xmm9
1371 palignr $14, %xmm9, %xmm8
1372 movaps %xmm8, -0x80(%rdi)
1373
1374 sub $0x80, %rdx
1375 lea -0x80(%rdi), %rdi
1376 lea -0x80(%rsi), %rsi
1377 jae L(shl_14_bwd)
1378 movdqu %xmm0, (%r8)
1379 add $0x80, %rdx
1380 sub %rdx, %rdi
1381 sub %rdx, %rsi
1382 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_bwd), %rdx, 4)
1383
e7044ea7 1384 .p2align 4
6fb8cbcb
L
1385L(shl_15):
1386 sub $0x80, %rdx
1387 movaps -0x0f(%rsi), %xmm1
1388 movaps 0x01(%rsi), %xmm2
1389 movaps 0x11(%rsi), %xmm3
1390 movaps 0x21(%rsi), %xmm4
1391 movaps 0x31(%rsi), %xmm5
1392 movaps 0x41(%rsi), %xmm6
1393 movaps 0x51(%rsi), %xmm7
1394 movaps 0x61(%rsi), %xmm8
1395 movaps 0x71(%rsi), %xmm9
1396 lea 0x80(%rsi), %rsi
1397 palignr $15, %xmm8, %xmm9
1398 movaps %xmm9, 0x70(%rdi)
1399 palignr $15, %xmm7, %xmm8
1400 movaps %xmm8, 0x60(%rdi)
1401 palignr $15, %xmm6, %xmm7
1402 movaps %xmm7, 0x50(%rdi)
1403 palignr $15, %xmm5, %xmm6
1404 movaps %xmm6, 0x40(%rdi)
1405 palignr $15, %xmm4, %xmm5
1406 movaps %xmm5, 0x30(%rdi)
1407 palignr $15, %xmm3, %xmm4
1408 movaps %xmm4, 0x20(%rdi)
1409 palignr $15, %xmm2, %xmm3
1410 movaps %xmm3, 0x10(%rdi)
1411 palignr $15, %xmm1, %xmm2
1412 movaps %xmm2, (%rdi)
1413 lea 0x80(%rdi), %rdi
1414 jae L(shl_15)
1415 movdqu %xmm0, (%r8)
1416 add $0x80, %rdx
1417 add %rdx, %rdi
1418 add %rdx, %rsi
1419 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_fwd), %rdx, 4)
1420
e7044ea7 1421 .p2align 4
6fb8cbcb
L
1422L(shl_15_bwd):
1423 movaps -0x0f(%rsi), %xmm1
1424
1425 movaps -0x1f(%rsi), %xmm2
1426 palignr $15, %xmm2, %xmm1
1427 movaps %xmm1, -0x10(%rdi)
1428
1429 movaps -0x2f(%rsi), %xmm3
1430 palignr $15, %xmm3, %xmm2
1431 movaps %xmm2, -0x20(%rdi)
1432
1433 movaps -0x3f(%rsi), %xmm4
1434 palignr $15, %xmm4, %xmm3
1435 movaps %xmm3, -0x30(%rdi)
1436
1437 movaps -0x4f(%rsi), %xmm5
1438 palignr $15, %xmm5, %xmm4
1439 movaps %xmm4, -0x40(%rdi)
1440
1441 movaps -0x5f(%rsi), %xmm6
1442 palignr $15, %xmm6, %xmm5
1443 movaps %xmm5, -0x50(%rdi)
1444
1445 movaps -0x6f(%rsi), %xmm7
1446 palignr $15, %xmm7, %xmm6
1447 movaps %xmm6, -0x60(%rdi)
1448
1449 movaps -0x7f(%rsi), %xmm8
1450 palignr $15, %xmm8, %xmm7
1451 movaps %xmm7, -0x70(%rdi)
1452
1453 movaps -0x8f(%rsi), %xmm9
1454 palignr $15, %xmm9, %xmm8
1455 movaps %xmm8, -0x80(%rdi)
1456
1457 sub $0x80, %rdx
1458 lea -0x80(%rdi), %rdi
1459 lea -0x80(%rsi), %rsi
1460 jae L(shl_15_bwd)
1461 movdqu %xmm0, (%r8)
1462 add $0x80, %rdx
1463 sub %rdx, %rdi
1464 sub %rdx, %rsi
1465 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_bwd), %rdx, 4)
1466
e7044ea7 1467 .p2align 4
6fb8cbcb
L
1468L(gobble_mem_fwd):
1469 movdqu (%rsi), %xmm1
1470 movdqu %xmm0, (%r8)
1471 movdqa %xmm1, (%rdi)
1472 sub $16, %rdx
1473 add $16, %rsi
1474 add $16, %rdi
1475
1476#ifdef SHARED_CACHE_SIZE_HALF
6d2850e7 1477 mov $SHARED_CACHE_SIZE_HALF, %RCX_LP
6fb8cbcb 1478#else
afec409a 1479 mov __x86_shared_cache_size_half(%rip), %RCX_LP
6fb8cbcb
L
1480#endif
1481#ifdef USE_AS_MEMMOVE
1482 mov %rsi, %r9
1483 sub %rdi, %r9
1484 cmp %rdx, %r9
1485 jae L(memmove_is_memcpy_fwd)
1486 cmp %rcx, %r9
1487 jbe L(ll_cache_copy_fwd_start)
1488L(memmove_is_memcpy_fwd):
1489#endif
1490 cmp %rcx, %rdx
1491 ja L(bigger_in_fwd)
1492 mov %rdx, %rcx
1493L(bigger_in_fwd):
1494 sub %rcx, %rdx
1495 cmp $0x1000, %rdx
1496 jbe L(ll_cache_copy_fwd)
1497
1498 mov %rcx, %r9
1499 shl $3, %r9
1500 cmp %r9, %rdx
1501 jbe L(2steps_copy_fwd)
1502 add %rcx, %rdx
1503 xor %rcx, %rcx
1504L(2steps_copy_fwd):
1505 sub $0x80, %rdx
1506L(gobble_mem_fwd_loop):
1507 sub $0x80, %rdx
1508 prefetcht0 0x200(%rsi)
1509 prefetcht0 0x300(%rsi)
1510 movdqu (%rsi), %xmm0
1511 movdqu 0x10(%rsi), %xmm1
1512 movdqu 0x20(%rsi), %xmm2
1513 movdqu 0x30(%rsi), %xmm3
1514 movdqu 0x40(%rsi), %xmm4
1515 movdqu 0x50(%rsi), %xmm5
1516 movdqu 0x60(%rsi), %xmm6
1517 movdqu 0x70(%rsi), %xmm7
1518 lfence
1519 movntdq %xmm0, (%rdi)
1520 movntdq %xmm1, 0x10(%rdi)
1521 movntdq %xmm2, 0x20(%rdi)
1522 movntdq %xmm3, 0x30(%rdi)
1523 movntdq %xmm4, 0x40(%rdi)
1524 movntdq %xmm5, 0x50(%rdi)
1525 movntdq %xmm6, 0x60(%rdi)
1526 movntdq %xmm7, 0x70(%rdi)
1527 lea 0x80(%rsi), %rsi
1528 lea 0x80(%rdi), %rdi
1529 jae L(gobble_mem_fwd_loop)
1530 sfence
1531 cmp $0x80, %rcx
1532 jb L(gobble_mem_fwd_end)
1533 add $0x80, %rdx
1534L(ll_cache_copy_fwd):
1535 add %rcx, %rdx
1536L(ll_cache_copy_fwd_start):
1537 sub $0x80, %rdx
1538L(gobble_ll_loop_fwd):
1539 prefetchnta 0x1c0(%rsi)
1540 prefetchnta 0x280(%rsi)
1541 prefetchnta 0x1c0(%rdi)
1542 prefetchnta 0x280(%rdi)
1543 sub $0x80, %rdx
1544 movdqu (%rsi), %xmm0
1545 movdqu 0x10(%rsi), %xmm1
1546 movdqu 0x20(%rsi), %xmm2
1547 movdqu 0x30(%rsi), %xmm3
1548 movdqu 0x40(%rsi), %xmm4
1549 movdqu 0x50(%rsi), %xmm5
1550 movdqu 0x60(%rsi), %xmm6
1551 movdqu 0x70(%rsi), %xmm7
1552 movdqa %xmm0, (%rdi)
1553 movdqa %xmm1, 0x10(%rdi)
1554 movdqa %xmm2, 0x20(%rdi)
1555 movdqa %xmm3, 0x30(%rdi)
1556 movdqa %xmm4, 0x40(%rdi)
1557 movdqa %xmm5, 0x50(%rdi)
1558 movdqa %xmm6, 0x60(%rdi)
1559 movdqa %xmm7, 0x70(%rdi)
1560 lea 0x80(%rsi), %rsi
1561 lea 0x80(%rdi), %rdi
1562 jae L(gobble_ll_loop_fwd)
1563L(gobble_mem_fwd_end):
1564 add $0x80, %rdx
1565 add %rdx, %rsi
1566 add %rdx, %rdi
1567 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_fwd), %rdx, 4)
1568
e7044ea7 1569 .p2align 4
6fb8cbcb
L
1570L(gobble_mem_bwd):
1571 add %rdx, %rsi
1572 add %rdx, %rdi
1573
1574 movdqu -16(%rsi), %xmm0
1575 lea -16(%rdi), %r8
1576 mov %rdi, %r9
1577 and $-16, %rdi
1578 sub %rdi, %r9
1579 sub %r9, %rsi
1580 sub %r9, %rdx
1581
1582
1583#ifdef SHARED_CACHE_SIZE_HALF
6d2850e7 1584 mov $SHARED_CACHE_SIZE_HALF, %RCX_LP
6fb8cbcb 1585#else
afec409a 1586 mov __x86_shared_cache_size_half(%rip), %RCX_LP
6fb8cbcb
L
1587#endif
1588#ifdef USE_AS_MEMMOVE
1589 mov %rdi, %r9
1590 sub %rsi, %r9
1591 cmp %rdx, %r9
1592 jae L(memmove_is_memcpy_bwd)
1593 cmp %rcx, %r9
1594 jbe L(ll_cache_copy_bwd_start)
1595L(memmove_is_memcpy_bwd):
1596#endif
1597 cmp %rcx, %rdx
1598 ja L(bigger)
1599 mov %rdx, %rcx
1600L(bigger):
1601 sub %rcx, %rdx
1602 cmp $0x1000, %rdx
1603 jbe L(ll_cache_copy)
1604
1605 mov %rcx, %r9
1606 shl $3, %r9
1607 cmp %r9, %rdx
1608 jbe L(2steps_copy)
1609 add %rcx, %rdx
1610 xor %rcx, %rcx
1611L(2steps_copy):
1612 sub $0x80, %rdx
1613L(gobble_mem_bwd_loop):
1614 sub $0x80, %rdx
1615 prefetcht0 -0x200(%rsi)
1616 prefetcht0 -0x300(%rsi)
1617 movdqu -0x10(%rsi), %xmm1
1618 movdqu -0x20(%rsi), %xmm2
1619 movdqu -0x30(%rsi), %xmm3
1620 movdqu -0x40(%rsi), %xmm4
1621 movdqu -0x50(%rsi), %xmm5
1622 movdqu -0x60(%rsi), %xmm6
1623 movdqu -0x70(%rsi), %xmm7
1624 movdqu -0x80(%rsi), %xmm8
1625 lfence
1626 movntdq %xmm1, -0x10(%rdi)
1627 movntdq %xmm2, -0x20(%rdi)
1628 movntdq %xmm3, -0x30(%rdi)
1629 movntdq %xmm4, -0x40(%rdi)
1630 movntdq %xmm5, -0x50(%rdi)
1631 movntdq %xmm6, -0x60(%rdi)
1632 movntdq %xmm7, -0x70(%rdi)
1633 movntdq %xmm8, -0x80(%rdi)
1634 lea -0x80(%rsi), %rsi
1635 lea -0x80(%rdi), %rdi
1636 jae L(gobble_mem_bwd_loop)
1637 sfence
1638 cmp $0x80, %rcx
1639 jb L(gobble_mem_bwd_end)
1640 add $0x80, %rdx
1641L(ll_cache_copy):
1642 add %rcx, %rdx
1643L(ll_cache_copy_bwd_start):
1644 sub $0x80, %rdx
1645L(gobble_ll_loop):
1646 prefetchnta -0x1c0(%rsi)
1647 prefetchnta -0x280(%rsi)
1648 prefetchnta -0x1c0(%rdi)
1649 prefetchnta -0x280(%rdi)
1650 sub $0x80, %rdx
1651 movdqu -0x10(%rsi), %xmm1
1652 movdqu -0x20(%rsi), %xmm2
1653 movdqu -0x30(%rsi), %xmm3
1654 movdqu -0x40(%rsi), %xmm4
1655 movdqu -0x50(%rsi), %xmm5
1656 movdqu -0x60(%rsi), %xmm6
1657 movdqu -0x70(%rsi), %xmm7
1658 movdqu -0x80(%rsi), %xmm8
1659 movdqa %xmm1, -0x10(%rdi)
1660 movdqa %xmm2, -0x20(%rdi)
1661 movdqa %xmm3, -0x30(%rdi)
1662 movdqa %xmm4, -0x40(%rdi)
1663 movdqa %xmm5, -0x50(%rdi)
1664 movdqa %xmm6, -0x60(%rdi)
1665 movdqa %xmm7, -0x70(%rdi)
1666 movdqa %xmm8, -0x80(%rdi)
1667 lea -0x80(%rsi), %rsi
1668 lea -0x80(%rdi), %rdi
1669 jae L(gobble_ll_loop)
1670L(gobble_mem_bwd_end):
1671 movdqu %xmm0, (%r8)
1672 add $0x80, %rdx
1673 sub %rdx, %rsi
1674 sub %rdx, %rdi
1675 BRANCH_TO_JMPTBL_ENTRY (L(table_144_bytes_bwd), %rdx, 4)
1676
1677 .p2align 4
1678L(fwd_write_128bytes):
1679 lddqu -128(%rsi), %xmm0
1680 movdqu %xmm0, -128(%rdi)
1681L(fwd_write_112bytes):
1682 lddqu -112(%rsi), %xmm0
1683 movdqu %xmm0, -112(%rdi)
1684L(fwd_write_96bytes):
1685 lddqu -96(%rsi), %xmm0
1686 movdqu %xmm0, -96(%rdi)
1687L(fwd_write_80bytes):
1688 lddqu -80(%rsi), %xmm0
1689 movdqu %xmm0, -80(%rdi)
1690L(fwd_write_64bytes):
1691 lddqu -64(%rsi), %xmm0
1692 movdqu %xmm0, -64(%rdi)
1693L(fwd_write_48bytes):
1694 lddqu -48(%rsi), %xmm0
1695 movdqu %xmm0, -48(%rdi)
1696L(fwd_write_32bytes):
1697 lddqu -32(%rsi), %xmm0
1698 movdqu %xmm0, -32(%rdi)
1699L(fwd_write_16bytes):
1700 lddqu -16(%rsi), %xmm0
1701 movdqu %xmm0, -16(%rdi)
1702L(fwd_write_0bytes):
1703 ret
1704
1705
1706 .p2align 4
1707L(fwd_write_143bytes):
1708 lddqu -143(%rsi), %xmm0
1709 movdqu %xmm0, -143(%rdi)
1710L(fwd_write_127bytes):
1711 lddqu -127(%rsi), %xmm0
1712 movdqu %xmm0, -127(%rdi)
1713L(fwd_write_111bytes):
1714 lddqu -111(%rsi), %xmm0
1715 movdqu %xmm0, -111(%rdi)
1716L(fwd_write_95bytes):
1717 lddqu -95(%rsi), %xmm0
1718 movdqu %xmm0, -95(%rdi)
1719L(fwd_write_79bytes):
1720 lddqu -79(%rsi), %xmm0
1721 movdqu %xmm0, -79(%rdi)
1722L(fwd_write_63bytes):
1723 lddqu -63(%rsi), %xmm0
1724 movdqu %xmm0, -63(%rdi)
1725L(fwd_write_47bytes):
1726 lddqu -47(%rsi), %xmm0
1727 movdqu %xmm0, -47(%rdi)
1728L(fwd_write_31bytes):
1729 lddqu -31(%rsi), %xmm0
1730 lddqu -16(%rsi), %xmm1
1731 movdqu %xmm0, -31(%rdi)
1732 movdqu %xmm1, -16(%rdi)
1733 ret
1734
1735 .p2align 4
1736L(fwd_write_15bytes):
1737 mov -15(%rsi), %rdx
1738 mov -8(%rsi), %rcx
1739 mov %rdx, -15(%rdi)
1740 mov %rcx, -8(%rdi)
1741 ret
1742
1743 .p2align 4
1744L(fwd_write_142bytes):
1745 lddqu -142(%rsi), %xmm0
1746 movdqu %xmm0, -142(%rdi)
1747L(fwd_write_126bytes):
1748 lddqu -126(%rsi), %xmm0
1749 movdqu %xmm0, -126(%rdi)
1750L(fwd_write_110bytes):
1751 lddqu -110(%rsi), %xmm0
1752 movdqu %xmm0, -110(%rdi)
1753L(fwd_write_94bytes):
1754 lddqu -94(%rsi), %xmm0
1755 movdqu %xmm0, -94(%rdi)
1756L(fwd_write_78bytes):
1757 lddqu -78(%rsi), %xmm0
1758 movdqu %xmm0, -78(%rdi)
1759L(fwd_write_62bytes):
1760 lddqu -62(%rsi), %xmm0
1761 movdqu %xmm0, -62(%rdi)
1762L(fwd_write_46bytes):
1763 lddqu -46(%rsi), %xmm0
1764 movdqu %xmm0, -46(%rdi)
1765L(fwd_write_30bytes):
1766 lddqu -30(%rsi), %xmm0
1767 lddqu -16(%rsi), %xmm1
1768 movdqu %xmm0, -30(%rdi)
1769 movdqu %xmm1, -16(%rdi)
1770 ret
1771
1772 .p2align 4
1773L(fwd_write_14bytes):
1774 mov -14(%rsi), %rdx
1775 mov -8(%rsi), %rcx
1776 mov %rdx, -14(%rdi)
1777 mov %rcx, -8(%rdi)
1778 ret
1779
1780 .p2align 4
1781L(fwd_write_141bytes):
1782 lddqu -141(%rsi), %xmm0
1783 movdqu %xmm0, -141(%rdi)
1784L(fwd_write_125bytes):
1785 lddqu -125(%rsi), %xmm0
1786 movdqu %xmm0, -125(%rdi)
1787L(fwd_write_109bytes):
1788 lddqu -109(%rsi), %xmm0
1789 movdqu %xmm0, -109(%rdi)
1790L(fwd_write_93bytes):
1791 lddqu -93(%rsi), %xmm0
1792 movdqu %xmm0, -93(%rdi)
1793L(fwd_write_77bytes):
1794 lddqu -77(%rsi), %xmm0
1795 movdqu %xmm0, -77(%rdi)
1796L(fwd_write_61bytes):
1797 lddqu -61(%rsi), %xmm0
1798 movdqu %xmm0, -61(%rdi)
1799L(fwd_write_45bytes):
1800 lddqu -45(%rsi), %xmm0
1801 movdqu %xmm0, -45(%rdi)
1802L(fwd_write_29bytes):
1803 lddqu -29(%rsi), %xmm0
1804 lddqu -16(%rsi), %xmm1
1805 movdqu %xmm0, -29(%rdi)
1806 movdqu %xmm1, -16(%rdi)
1807 ret
1808
1809 .p2align 4
1810L(fwd_write_13bytes):
1811 mov -13(%rsi), %rdx
1812 mov -8(%rsi), %rcx
1813 mov %rdx, -13(%rdi)
1814 mov %rcx, -8(%rdi)
1815 ret
1816
1817 .p2align 4
1818L(fwd_write_140bytes):
1819 lddqu -140(%rsi), %xmm0
1820 movdqu %xmm0, -140(%rdi)
1821L(fwd_write_124bytes):
1822 lddqu -124(%rsi), %xmm0
1823 movdqu %xmm0, -124(%rdi)
1824L(fwd_write_108bytes):
1825 lddqu -108(%rsi), %xmm0
1826 movdqu %xmm0, -108(%rdi)
1827L(fwd_write_92bytes):
1828 lddqu -92(%rsi), %xmm0
1829 movdqu %xmm0, -92(%rdi)
1830L(fwd_write_76bytes):
1831 lddqu -76(%rsi), %xmm0
1832 movdqu %xmm0, -76(%rdi)
1833L(fwd_write_60bytes):
1834 lddqu -60(%rsi), %xmm0
1835 movdqu %xmm0, -60(%rdi)
1836L(fwd_write_44bytes):
1837 lddqu -44(%rsi), %xmm0
1838 movdqu %xmm0, -44(%rdi)
1839L(fwd_write_28bytes):
1840 lddqu -28(%rsi), %xmm0
1841 lddqu -16(%rsi), %xmm1
1842 movdqu %xmm0, -28(%rdi)
1843 movdqu %xmm1, -16(%rdi)
1844 ret
1845
1846 .p2align 4
1847L(fwd_write_12bytes):
1848 mov -12(%rsi), %rdx
1849 mov -4(%rsi), %ecx
1850 mov %rdx, -12(%rdi)
1851 mov %ecx, -4(%rdi)
1852 ret
1853
1854 .p2align 4
1855L(fwd_write_139bytes):
1856 lddqu -139(%rsi), %xmm0
1857 movdqu %xmm0, -139(%rdi)
1858L(fwd_write_123bytes):
1859 lddqu -123(%rsi), %xmm0
1860 movdqu %xmm0, -123(%rdi)
1861L(fwd_write_107bytes):
1862 lddqu -107(%rsi), %xmm0
1863 movdqu %xmm0, -107(%rdi)
1864L(fwd_write_91bytes):
1865 lddqu -91(%rsi), %xmm0
1866 movdqu %xmm0, -91(%rdi)
1867L(fwd_write_75bytes):
1868 lddqu -75(%rsi), %xmm0
1869 movdqu %xmm0, -75(%rdi)
1870L(fwd_write_59bytes):
1871 lddqu -59(%rsi), %xmm0
1872 movdqu %xmm0, -59(%rdi)
1873L(fwd_write_43bytes):
1874 lddqu -43(%rsi), %xmm0
1875 movdqu %xmm0, -43(%rdi)
1876L(fwd_write_27bytes):
1877 lddqu -27(%rsi), %xmm0
1878 lddqu -16(%rsi), %xmm1
1879 movdqu %xmm0, -27(%rdi)
1880 movdqu %xmm1, -16(%rdi)
1881 ret
1882
1883 .p2align 4
1884L(fwd_write_11bytes):
1885 mov -11(%rsi), %rdx
1886 mov -4(%rsi), %ecx
1887 mov %rdx, -11(%rdi)
1888 mov %ecx, -4(%rdi)
1889 ret
1890
1891 .p2align 4
1892L(fwd_write_138bytes):
1893 lddqu -138(%rsi), %xmm0
1894 movdqu %xmm0, -138(%rdi)
1895L(fwd_write_122bytes):
1896 lddqu -122(%rsi), %xmm0
1897 movdqu %xmm0, -122(%rdi)
1898L(fwd_write_106bytes):
1899 lddqu -106(%rsi), %xmm0
1900 movdqu %xmm0, -106(%rdi)
1901L(fwd_write_90bytes):
1902 lddqu -90(%rsi), %xmm0
1903 movdqu %xmm0, -90(%rdi)
1904L(fwd_write_74bytes):
1905 lddqu -74(%rsi), %xmm0
1906 movdqu %xmm0, -74(%rdi)
1907L(fwd_write_58bytes):
1908 lddqu -58(%rsi), %xmm0
1909 movdqu %xmm0, -58(%rdi)
1910L(fwd_write_42bytes):
1911 lddqu -42(%rsi), %xmm0
1912 movdqu %xmm0, -42(%rdi)
1913L(fwd_write_26bytes):
1914 lddqu -26(%rsi), %xmm0
1915 lddqu -16(%rsi), %xmm1
1916 movdqu %xmm0, -26(%rdi)
1917 movdqu %xmm1, -16(%rdi)
1918 ret
1919
1920 .p2align 4
1921L(fwd_write_10bytes):
1922 mov -10(%rsi), %rdx
1923 mov -4(%rsi), %ecx
1924 mov %rdx, -10(%rdi)
1925 mov %ecx, -4(%rdi)
1926 ret
1927
1928 .p2align 4
1929L(fwd_write_137bytes):
1930 lddqu -137(%rsi), %xmm0
1931 movdqu %xmm0, -137(%rdi)
1932L(fwd_write_121bytes):
1933 lddqu -121(%rsi), %xmm0
1934 movdqu %xmm0, -121(%rdi)
1935L(fwd_write_105bytes):
1936 lddqu -105(%rsi), %xmm0
1937 movdqu %xmm0, -105(%rdi)
1938L(fwd_write_89bytes):
1939 lddqu -89(%rsi), %xmm0
1940 movdqu %xmm0, -89(%rdi)
1941L(fwd_write_73bytes):
1942 lddqu -73(%rsi), %xmm0
1943 movdqu %xmm0, -73(%rdi)
1944L(fwd_write_57bytes):
1945 lddqu -57(%rsi), %xmm0
1946 movdqu %xmm0, -57(%rdi)
1947L(fwd_write_41bytes):
1948 lddqu -41(%rsi), %xmm0
1949 movdqu %xmm0, -41(%rdi)
1950L(fwd_write_25bytes):
1951 lddqu -25(%rsi), %xmm0
1952 lddqu -16(%rsi), %xmm1
1953 movdqu %xmm0, -25(%rdi)
1954 movdqu %xmm1, -16(%rdi)
1955 ret
1956
1957 .p2align 4
1958L(fwd_write_9bytes):
1959 mov -9(%rsi), %rdx
1960 mov -4(%rsi), %ecx
1961 mov %rdx, -9(%rdi)
1962 mov %ecx, -4(%rdi)
1963 ret
1964
1965 .p2align 4
1966L(fwd_write_136bytes):
1967 lddqu -136(%rsi), %xmm0
1968 movdqu %xmm0, -136(%rdi)
1969L(fwd_write_120bytes):
1970 lddqu -120(%rsi), %xmm0
1971 movdqu %xmm0, -120(%rdi)
1972L(fwd_write_104bytes):
1973 lddqu -104(%rsi), %xmm0
1974 movdqu %xmm0, -104(%rdi)
1975L(fwd_write_88bytes):
1976 lddqu -88(%rsi), %xmm0
1977 movdqu %xmm0, -88(%rdi)
1978L(fwd_write_72bytes):
1979 lddqu -72(%rsi), %xmm0
1980 movdqu %xmm0, -72(%rdi)
1981L(fwd_write_56bytes):
1982 lddqu -56(%rsi), %xmm0
1983 movdqu %xmm0, -56(%rdi)
1984L(fwd_write_40bytes):
1985 lddqu -40(%rsi), %xmm0
1986 movdqu %xmm0, -40(%rdi)
1987L(fwd_write_24bytes):
1988 lddqu -24(%rsi), %xmm0
1989 lddqu -16(%rsi), %xmm1
1990 movdqu %xmm0, -24(%rdi)
1991 movdqu %xmm1, -16(%rdi)
1992 ret
1993
1994 .p2align 4
1995L(fwd_write_8bytes):
1996 mov -8(%rsi), %rdx
1997 mov %rdx, -8(%rdi)
1998 ret
1999
2000 .p2align 4
2001L(fwd_write_135bytes):
2002 lddqu -135(%rsi), %xmm0
2003 movdqu %xmm0, -135(%rdi)
2004L(fwd_write_119bytes):
2005 lddqu -119(%rsi), %xmm0
2006 movdqu %xmm0, -119(%rdi)
2007L(fwd_write_103bytes):
2008 lddqu -103(%rsi), %xmm0
2009 movdqu %xmm0, -103(%rdi)
2010L(fwd_write_87bytes):
2011 lddqu -87(%rsi), %xmm0
2012 movdqu %xmm0, -87(%rdi)
2013L(fwd_write_71bytes):
2014 lddqu -71(%rsi), %xmm0
2015 movdqu %xmm0, -71(%rdi)
2016L(fwd_write_55bytes):
2017 lddqu -55(%rsi), %xmm0
2018 movdqu %xmm0, -55(%rdi)
2019L(fwd_write_39bytes):
2020 lddqu -39(%rsi), %xmm0
2021 movdqu %xmm0, -39(%rdi)
2022L(fwd_write_23bytes):
2023 lddqu -23(%rsi), %xmm0
2024 lddqu -16(%rsi), %xmm1
2025 movdqu %xmm0, -23(%rdi)
2026 movdqu %xmm1, -16(%rdi)
2027 ret
2028
2029 .p2align 4
2030L(fwd_write_7bytes):
2031 mov -7(%rsi), %edx
2032 mov -4(%rsi), %ecx
2033 mov %edx, -7(%rdi)
2034 mov %ecx, -4(%rdi)
2035 ret
2036
2037 .p2align 4
2038L(fwd_write_134bytes):
2039 lddqu -134(%rsi), %xmm0
2040 movdqu %xmm0, -134(%rdi)
2041L(fwd_write_118bytes):
2042 lddqu -118(%rsi), %xmm0
2043 movdqu %xmm0, -118(%rdi)
2044L(fwd_write_102bytes):
2045 lddqu -102(%rsi), %xmm0
2046 movdqu %xmm0, -102(%rdi)
2047L(fwd_write_86bytes):
2048 lddqu -86(%rsi), %xmm0
2049 movdqu %xmm0, -86(%rdi)
2050L(fwd_write_70bytes):
2051 lddqu -70(%rsi), %xmm0
2052 movdqu %xmm0, -70(%rdi)
2053L(fwd_write_54bytes):
2054 lddqu -54(%rsi), %xmm0
2055 movdqu %xmm0, -54(%rdi)
2056L(fwd_write_38bytes):
2057 lddqu -38(%rsi), %xmm0
2058 movdqu %xmm0, -38(%rdi)
2059L(fwd_write_22bytes):
2060 lddqu -22(%rsi), %xmm0
2061 lddqu -16(%rsi), %xmm1
2062 movdqu %xmm0, -22(%rdi)
2063 movdqu %xmm1, -16(%rdi)
2064 ret
2065
2066 .p2align 4
2067L(fwd_write_6bytes):
2068 mov -6(%rsi), %edx
2069 mov -4(%rsi), %ecx
2070 mov %edx, -6(%rdi)
2071 mov %ecx, -4(%rdi)
2072 ret
2073
2074 .p2align 4
2075L(fwd_write_133bytes):
2076 lddqu -133(%rsi), %xmm0
2077 movdqu %xmm0, -133(%rdi)
2078L(fwd_write_117bytes):
2079 lddqu -117(%rsi), %xmm0
2080 movdqu %xmm0, -117(%rdi)
2081L(fwd_write_101bytes):
2082 lddqu -101(%rsi), %xmm0
2083 movdqu %xmm0, -101(%rdi)
2084L(fwd_write_85bytes):
2085 lddqu -85(%rsi), %xmm0
2086 movdqu %xmm0, -85(%rdi)
2087L(fwd_write_69bytes):
2088 lddqu -69(%rsi), %xmm0
2089 movdqu %xmm0, -69(%rdi)
2090L(fwd_write_53bytes):
2091 lddqu -53(%rsi), %xmm0
2092 movdqu %xmm0, -53(%rdi)
2093L(fwd_write_37bytes):
2094 lddqu -37(%rsi), %xmm0
2095 movdqu %xmm0, -37(%rdi)
2096L(fwd_write_21bytes):
2097 lddqu -21(%rsi), %xmm0
2098 lddqu -16(%rsi), %xmm1
2099 movdqu %xmm0, -21(%rdi)
2100 movdqu %xmm1, -16(%rdi)
2101 ret
2102
2103 .p2align 4
2104L(fwd_write_5bytes):
2105 mov -5(%rsi), %edx
2106 mov -4(%rsi), %ecx
2107 mov %edx, -5(%rdi)
2108 mov %ecx, -4(%rdi)
2109 ret
2110
2111 .p2align 4
2112L(fwd_write_132bytes):
2113 lddqu -132(%rsi), %xmm0
2114 movdqu %xmm0, -132(%rdi)
2115L(fwd_write_116bytes):
2116 lddqu -116(%rsi), %xmm0
2117 movdqu %xmm0, -116(%rdi)
2118L(fwd_write_100bytes):
2119 lddqu -100(%rsi), %xmm0
2120 movdqu %xmm0, -100(%rdi)
2121L(fwd_write_84bytes):
2122 lddqu -84(%rsi), %xmm0
2123 movdqu %xmm0, -84(%rdi)
2124L(fwd_write_68bytes):
2125 lddqu -68(%rsi), %xmm0
2126 movdqu %xmm0, -68(%rdi)
2127L(fwd_write_52bytes):
2128 lddqu -52(%rsi), %xmm0
2129 movdqu %xmm0, -52(%rdi)
2130L(fwd_write_36bytes):
2131 lddqu -36(%rsi), %xmm0
2132 movdqu %xmm0, -36(%rdi)
2133L(fwd_write_20bytes):
2134 lddqu -20(%rsi), %xmm0
2135 lddqu -16(%rsi), %xmm1
2136 movdqu %xmm0, -20(%rdi)
2137 movdqu %xmm1, -16(%rdi)
2138 ret
2139
2140 .p2align 4
2141L(fwd_write_4bytes):
2142 mov -4(%rsi), %edx
2143 mov %edx, -4(%rdi)
2144 ret
2145
2146 .p2align 4
2147L(fwd_write_131bytes):
2148 lddqu -131(%rsi), %xmm0
2149 movdqu %xmm0, -131(%rdi)
2150L(fwd_write_115bytes):
2151 lddqu -115(%rsi), %xmm0
2152 movdqu %xmm0, -115(%rdi)
2153L(fwd_write_99bytes):
2154 lddqu -99(%rsi), %xmm0
2155 movdqu %xmm0, -99(%rdi)
2156L(fwd_write_83bytes):
2157 lddqu -83(%rsi), %xmm0
2158 movdqu %xmm0, -83(%rdi)
2159L(fwd_write_67bytes):
2160 lddqu -67(%rsi), %xmm0
2161 movdqu %xmm0, -67(%rdi)
2162L(fwd_write_51bytes):
2163 lddqu -51(%rsi), %xmm0
2164 movdqu %xmm0, -51(%rdi)
2165L(fwd_write_35bytes):
2166 lddqu -35(%rsi), %xmm0
2167 movdqu %xmm0, -35(%rdi)
2168L(fwd_write_19bytes):
2169 lddqu -19(%rsi), %xmm0
2170 lddqu -16(%rsi), %xmm1
2171 movdqu %xmm0, -19(%rdi)
2172 movdqu %xmm1, -16(%rdi)
2173 ret
2174
2175 .p2align 4
2176L(fwd_write_3bytes):
2177 mov -3(%rsi), %dx
2178 mov -2(%rsi), %cx
2179 mov %dx, -3(%rdi)
2180 mov %cx, -2(%rdi)
2181 ret
2182
2183 .p2align 4
2184L(fwd_write_130bytes):
2185 lddqu -130(%rsi), %xmm0
2186 movdqu %xmm0, -130(%rdi)
2187L(fwd_write_114bytes):
2188 lddqu -114(%rsi), %xmm0
2189 movdqu %xmm0, -114(%rdi)
2190L(fwd_write_98bytes):
2191 lddqu -98(%rsi), %xmm0
2192 movdqu %xmm0, -98(%rdi)
2193L(fwd_write_82bytes):
2194 lddqu -82(%rsi), %xmm0
2195 movdqu %xmm0, -82(%rdi)
2196L(fwd_write_66bytes):
2197 lddqu -66(%rsi), %xmm0
2198 movdqu %xmm0, -66(%rdi)
2199L(fwd_write_50bytes):
2200 lddqu -50(%rsi), %xmm0
2201 movdqu %xmm0, -50(%rdi)
2202L(fwd_write_34bytes):
2203 lddqu -34(%rsi), %xmm0
2204 movdqu %xmm0, -34(%rdi)
2205L(fwd_write_18bytes):
2206 lddqu -18(%rsi), %xmm0
2207 lddqu -16(%rsi), %xmm1
2208 movdqu %xmm0, -18(%rdi)
2209 movdqu %xmm1, -16(%rdi)
2210 ret
2211
2212 .p2align 4
2213L(fwd_write_2bytes):
2214 movzwl -2(%rsi), %edx
2215 mov %dx, -2(%rdi)
2216 ret
2217
2218 .p2align 4
2219L(fwd_write_129bytes):
2220 lddqu -129(%rsi), %xmm0
2221 movdqu %xmm0, -129(%rdi)
2222L(fwd_write_113bytes):
2223 lddqu -113(%rsi), %xmm0
2224 movdqu %xmm0, -113(%rdi)
2225L(fwd_write_97bytes):
2226 lddqu -97(%rsi), %xmm0
2227 movdqu %xmm0, -97(%rdi)
2228L(fwd_write_81bytes):
2229 lddqu -81(%rsi), %xmm0
2230 movdqu %xmm0, -81(%rdi)
2231L(fwd_write_65bytes):
2232 lddqu -65(%rsi), %xmm0
2233 movdqu %xmm0, -65(%rdi)
2234L(fwd_write_49bytes):
2235 lddqu -49(%rsi), %xmm0
2236 movdqu %xmm0, -49(%rdi)
2237L(fwd_write_33bytes):
2238 lddqu -33(%rsi), %xmm0
2239 movdqu %xmm0, -33(%rdi)
2240L(fwd_write_17bytes):
2241 lddqu -17(%rsi), %xmm0
2242 lddqu -16(%rsi), %xmm1
2243 movdqu %xmm0, -17(%rdi)
2244 movdqu %xmm1, -16(%rdi)
2245 ret
2246
2247 .p2align 4
2248L(fwd_write_1bytes):
2249 movzbl -1(%rsi), %edx
2250 mov %dl, -1(%rdi)
2251 ret
2252
2253 .p2align 4
2254L(bwd_write_128bytes):
2255 lddqu 112(%rsi), %xmm0
2256 movdqu %xmm0, 112(%rdi)
2257L(bwd_write_112bytes):
2258 lddqu 96(%rsi), %xmm0
2259 movdqu %xmm0, 96(%rdi)
2260L(bwd_write_96bytes):
2261 lddqu 80(%rsi), %xmm0
2262 movdqu %xmm0, 80(%rdi)
2263L(bwd_write_80bytes):
2264 lddqu 64(%rsi), %xmm0
2265 movdqu %xmm0, 64(%rdi)
2266L(bwd_write_64bytes):
2267 lddqu 48(%rsi), %xmm0
2268 movdqu %xmm0, 48(%rdi)
2269L(bwd_write_48bytes):
2270 lddqu 32(%rsi), %xmm0
2271 movdqu %xmm0, 32(%rdi)
2272L(bwd_write_32bytes):
2273 lddqu 16(%rsi), %xmm0
2274 movdqu %xmm0, 16(%rdi)
2275L(bwd_write_16bytes):
2276 lddqu (%rsi), %xmm0
2277 movdqu %xmm0, (%rdi)
2278L(bwd_write_0bytes):
2279 ret
2280
2281 .p2align 4
2282L(bwd_write_143bytes):
2283 lddqu 127(%rsi), %xmm0
2284 movdqu %xmm0, 127(%rdi)
2285L(bwd_write_127bytes):
2286 lddqu 111(%rsi), %xmm0
2287 movdqu %xmm0, 111(%rdi)
2288L(bwd_write_111bytes):
2289 lddqu 95(%rsi), %xmm0
2290 movdqu %xmm0, 95(%rdi)
2291L(bwd_write_95bytes):
2292 lddqu 79(%rsi), %xmm0
2293 movdqu %xmm0, 79(%rdi)
2294L(bwd_write_79bytes):
2295 lddqu 63(%rsi), %xmm0
2296 movdqu %xmm0, 63(%rdi)
2297L(bwd_write_63bytes):
2298 lddqu 47(%rsi), %xmm0
2299 movdqu %xmm0, 47(%rdi)
2300L(bwd_write_47bytes):
2301 lddqu 31(%rsi), %xmm0
2302 movdqu %xmm0, 31(%rdi)
2303L(bwd_write_31bytes):
2304 lddqu 15(%rsi), %xmm0
2305 lddqu (%rsi), %xmm1
2306 movdqu %xmm0, 15(%rdi)
2307 movdqu %xmm1, (%rdi)
2308 ret
2309
2310
2311 .p2align 4
2312L(bwd_write_15bytes):
2313 mov 7(%rsi), %rdx
2314 mov (%rsi), %rcx
2315 mov %rdx, 7(%rdi)
2316 mov %rcx, (%rdi)
2317 ret
2318
2319 .p2align 4
2320L(bwd_write_142bytes):
2321 lddqu 126(%rsi), %xmm0
2322 movdqu %xmm0, 126(%rdi)
2323L(bwd_write_126bytes):
2324 lddqu 110(%rsi), %xmm0
2325 movdqu %xmm0, 110(%rdi)
2326L(bwd_write_110bytes):
2327 lddqu 94(%rsi), %xmm0
2328 movdqu %xmm0, 94(%rdi)
2329L(bwd_write_94bytes):
2330 lddqu 78(%rsi), %xmm0
2331 movdqu %xmm0, 78(%rdi)
2332L(bwd_write_78bytes):
2333 lddqu 62(%rsi), %xmm0
2334 movdqu %xmm0, 62(%rdi)
2335L(bwd_write_62bytes):
2336 lddqu 46(%rsi), %xmm0
2337 movdqu %xmm0, 46(%rdi)
2338L(bwd_write_46bytes):
2339 lddqu 30(%rsi), %xmm0
2340 movdqu %xmm0, 30(%rdi)
2341L(bwd_write_30bytes):
2342 lddqu 14(%rsi), %xmm0
2343 lddqu (%rsi), %xmm1
2344 movdqu %xmm0, 14(%rdi)
2345 movdqu %xmm1, (%rdi)
2346 ret
2347
2348 .p2align 4
2349L(bwd_write_14bytes):
2350 mov 6(%rsi), %rdx
2351 mov (%rsi), %rcx
2352 mov %rdx, 6(%rdi)
2353 mov %rcx, (%rdi)
2354 ret
2355
2356 .p2align 4
2357L(bwd_write_141bytes):
2358 lddqu 125(%rsi), %xmm0
2359 movdqu %xmm0, 125(%rdi)
2360L(bwd_write_125bytes):
2361 lddqu 109(%rsi), %xmm0
2362 movdqu %xmm0, 109(%rdi)
2363L(bwd_write_109bytes):
2364 lddqu 93(%rsi), %xmm0
2365 movdqu %xmm0, 93(%rdi)
2366L(bwd_write_93bytes):
2367 lddqu 77(%rsi), %xmm0
2368 movdqu %xmm0, 77(%rdi)
2369L(bwd_write_77bytes):
2370 lddqu 61(%rsi), %xmm0
2371 movdqu %xmm0, 61(%rdi)
2372L(bwd_write_61bytes):
2373 lddqu 45(%rsi), %xmm0
2374 movdqu %xmm0, 45(%rdi)
2375L(bwd_write_45bytes):
2376 lddqu 29(%rsi), %xmm0
2377 movdqu %xmm0, 29(%rdi)
2378L(bwd_write_29bytes):
2379 lddqu 13(%rsi), %xmm0
2380 lddqu (%rsi), %xmm1
2381 movdqu %xmm0, 13(%rdi)
2382 movdqu %xmm1, (%rdi)
2383 ret
2384
2385 .p2align 4
2386L(bwd_write_13bytes):
2387 mov 5(%rsi), %rdx
2388 mov (%rsi), %rcx
2389 mov %rdx, 5(%rdi)
2390 mov %rcx, (%rdi)
2391 ret
2392
2393 .p2align 4
2394L(bwd_write_140bytes):
2395 lddqu 124(%rsi), %xmm0
2396 movdqu %xmm0, 124(%rdi)
2397L(bwd_write_124bytes):
2398 lddqu 108(%rsi), %xmm0
2399 movdqu %xmm0, 108(%rdi)
2400L(bwd_write_108bytes):
2401 lddqu 92(%rsi), %xmm0
2402 movdqu %xmm0, 92(%rdi)
2403L(bwd_write_92bytes):
2404 lddqu 76(%rsi), %xmm0
2405 movdqu %xmm0, 76(%rdi)
2406L(bwd_write_76bytes):
2407 lddqu 60(%rsi), %xmm0
2408 movdqu %xmm0, 60(%rdi)
2409L(bwd_write_60bytes):
2410 lddqu 44(%rsi), %xmm0
2411 movdqu %xmm0, 44(%rdi)
2412L(bwd_write_44bytes):
2413 lddqu 28(%rsi), %xmm0
2414 movdqu %xmm0, 28(%rdi)
2415L(bwd_write_28bytes):
2416 lddqu 12(%rsi), %xmm0
2417 lddqu (%rsi), %xmm1
2418 movdqu %xmm0, 12(%rdi)
2419 movdqu %xmm1, (%rdi)
2420 ret
2421
2422 .p2align 4
2423L(bwd_write_12bytes):
2424 mov 4(%rsi), %rdx
2425 mov (%rsi), %rcx
2426 mov %rdx, 4(%rdi)
2427 mov %rcx, (%rdi)
2428 ret
2429
2430 .p2align 4
2431L(bwd_write_139bytes):
2432 lddqu 123(%rsi), %xmm0
2433 movdqu %xmm0, 123(%rdi)
2434L(bwd_write_123bytes):
2435 lddqu 107(%rsi), %xmm0
2436 movdqu %xmm0, 107(%rdi)
2437L(bwd_write_107bytes):
2438 lddqu 91(%rsi), %xmm0
2439 movdqu %xmm0, 91(%rdi)
2440L(bwd_write_91bytes):
2441 lddqu 75(%rsi), %xmm0
2442 movdqu %xmm0, 75(%rdi)
2443L(bwd_write_75bytes):
2444 lddqu 59(%rsi), %xmm0
2445 movdqu %xmm0, 59(%rdi)
2446L(bwd_write_59bytes):
2447 lddqu 43(%rsi), %xmm0
2448 movdqu %xmm0, 43(%rdi)
2449L(bwd_write_43bytes):
2450 lddqu 27(%rsi), %xmm0
2451 movdqu %xmm0, 27(%rdi)
2452L(bwd_write_27bytes):
2453 lddqu 11(%rsi), %xmm0
2454 lddqu (%rsi), %xmm1
2455 movdqu %xmm0, 11(%rdi)
2456 movdqu %xmm1, (%rdi)
2457 ret
2458
2459 .p2align 4
2460L(bwd_write_11bytes):
2461 mov 3(%rsi), %rdx
2462 mov (%rsi), %rcx
2463 mov %rdx, 3(%rdi)
2464 mov %rcx, (%rdi)
2465 ret
2466
2467 .p2align 4
2468L(bwd_write_138bytes):
2469 lddqu 122(%rsi), %xmm0
2470 movdqu %xmm0, 122(%rdi)
2471L(bwd_write_122bytes):
2472 lddqu 106(%rsi), %xmm0
2473 movdqu %xmm0, 106(%rdi)
2474L(bwd_write_106bytes):
2475 lddqu 90(%rsi), %xmm0
2476 movdqu %xmm0, 90(%rdi)
2477L(bwd_write_90bytes):
2478 lddqu 74(%rsi), %xmm0
2479 movdqu %xmm0, 74(%rdi)
2480L(bwd_write_74bytes):
2481 lddqu 58(%rsi), %xmm0
2482 movdqu %xmm0, 58(%rdi)
2483L(bwd_write_58bytes):
2484 lddqu 42(%rsi), %xmm0
2485 movdqu %xmm0, 42(%rdi)
2486L(bwd_write_42bytes):
2487 lddqu 26(%rsi), %xmm0
2488 movdqu %xmm0, 26(%rdi)
2489L(bwd_write_26bytes):
2490 lddqu 10(%rsi), %xmm0
2491 lddqu (%rsi), %xmm1
2492 movdqu %xmm0, 10(%rdi)
2493 movdqu %xmm1, (%rdi)
2494 ret
2495
2496 .p2align 4
2497L(bwd_write_10bytes):
2498 mov 2(%rsi), %rdx
2499 mov (%rsi), %rcx
2500 mov %rdx, 2(%rdi)
2501 mov %rcx, (%rdi)
2502 ret
2503
2504 .p2align 4
2505L(bwd_write_137bytes):
2506 lddqu 121(%rsi), %xmm0
2507 movdqu %xmm0, 121(%rdi)
2508L(bwd_write_121bytes):
2509 lddqu 105(%rsi), %xmm0
2510 movdqu %xmm0, 105(%rdi)
2511L(bwd_write_105bytes):
2512 lddqu 89(%rsi), %xmm0
2513 movdqu %xmm0, 89(%rdi)
2514L(bwd_write_89bytes):
2515 lddqu 73(%rsi), %xmm0
2516 movdqu %xmm0, 73(%rdi)
2517L(bwd_write_73bytes):
2518 lddqu 57(%rsi), %xmm0
2519 movdqu %xmm0, 57(%rdi)
2520L(bwd_write_57bytes):
2521 lddqu 41(%rsi), %xmm0
2522 movdqu %xmm0, 41(%rdi)
2523L(bwd_write_41bytes):
2524 lddqu 25(%rsi), %xmm0
2525 movdqu %xmm0, 25(%rdi)
2526L(bwd_write_25bytes):
2527 lddqu 9(%rsi), %xmm0
2528 lddqu (%rsi), %xmm1
2529 movdqu %xmm0, 9(%rdi)
2530 movdqu %xmm1, (%rdi)
2531 ret
2532
2533 .p2align 4
2534L(bwd_write_9bytes):
2535 mov 1(%rsi), %rdx
2536 mov (%rsi), %rcx
2537 mov %rdx, 1(%rdi)
2538 mov %rcx, (%rdi)
2539 ret
2540
2541 .p2align 4
2542L(bwd_write_136bytes):
2543 lddqu 120(%rsi), %xmm0
2544 movdqu %xmm0, 120(%rdi)
2545L(bwd_write_120bytes):
2546 lddqu 104(%rsi), %xmm0
2547 movdqu %xmm0, 104(%rdi)
2548L(bwd_write_104bytes):
2549 lddqu 88(%rsi), %xmm0
2550 movdqu %xmm0, 88(%rdi)
2551L(bwd_write_88bytes):
2552 lddqu 72(%rsi), %xmm0
2553 movdqu %xmm0, 72(%rdi)
2554L(bwd_write_72bytes):
2555 lddqu 56(%rsi), %xmm0
2556 movdqu %xmm0, 56(%rdi)
2557L(bwd_write_56bytes):
2558 lddqu 40(%rsi), %xmm0
2559 movdqu %xmm0, 40(%rdi)
2560L(bwd_write_40bytes):
2561 lddqu 24(%rsi), %xmm0
2562 movdqu %xmm0, 24(%rdi)
2563L(bwd_write_24bytes):
2564 lddqu 8(%rsi), %xmm0
2565 lddqu (%rsi), %xmm1
2566 movdqu %xmm0, 8(%rdi)
2567 movdqu %xmm1, (%rdi)
2568 ret
2569
2570 .p2align 4
2571L(bwd_write_8bytes):
2572 mov (%rsi), %rdx
2573 mov %rdx, (%rdi)
2574 ret
2575
2576 .p2align 4
2577L(bwd_write_135bytes):
2578 lddqu 119(%rsi), %xmm0
2579 movdqu %xmm0, 119(%rdi)
2580L(bwd_write_119bytes):
2581 lddqu 103(%rsi), %xmm0
2582 movdqu %xmm0, 103(%rdi)
2583L(bwd_write_103bytes):
2584 lddqu 87(%rsi), %xmm0
2585 movdqu %xmm0, 87(%rdi)
2586L(bwd_write_87bytes):
2587 lddqu 71(%rsi), %xmm0
2588 movdqu %xmm0, 71(%rdi)
2589L(bwd_write_71bytes):
2590 lddqu 55(%rsi), %xmm0
2591 movdqu %xmm0, 55(%rdi)
2592L(bwd_write_55bytes):
2593 lddqu 39(%rsi), %xmm0
2594 movdqu %xmm0, 39(%rdi)
2595L(bwd_write_39bytes):
2596 lddqu 23(%rsi), %xmm0
2597 movdqu %xmm0, 23(%rdi)
2598L(bwd_write_23bytes):
2599 lddqu 7(%rsi), %xmm0
2600 lddqu (%rsi), %xmm1
2601 movdqu %xmm0, 7(%rdi)
2602 movdqu %xmm1, (%rdi)
2603 ret
2604
2605 .p2align 4
2606L(bwd_write_7bytes):
2607 mov 3(%rsi), %edx
2608 mov (%rsi), %ecx
2609 mov %edx, 3(%rdi)
2610 mov %ecx, (%rdi)
2611 ret
2612
2613 .p2align 4
2614L(bwd_write_134bytes):
2615 lddqu 118(%rsi), %xmm0
2616 movdqu %xmm0, 118(%rdi)
2617L(bwd_write_118bytes):
2618 lddqu 102(%rsi), %xmm0
2619 movdqu %xmm0, 102(%rdi)
2620L(bwd_write_102bytes):
2621 lddqu 86(%rsi), %xmm0
2622 movdqu %xmm0, 86(%rdi)
2623L(bwd_write_86bytes):
2624 lddqu 70(%rsi), %xmm0
2625 movdqu %xmm0, 70(%rdi)
2626L(bwd_write_70bytes):
2627 lddqu 54(%rsi), %xmm0
2628 movdqu %xmm0, 54(%rdi)
2629L(bwd_write_54bytes):
2630 lddqu 38(%rsi), %xmm0
2631 movdqu %xmm0, 38(%rdi)
2632L(bwd_write_38bytes):
2633 lddqu 22(%rsi), %xmm0
2634 movdqu %xmm0, 22(%rdi)
2635L(bwd_write_22bytes):
2636 lddqu 6(%rsi), %xmm0
2637 lddqu (%rsi), %xmm1
2638 movdqu %xmm0, 6(%rdi)
2639 movdqu %xmm1, (%rdi)
2640 ret
2641
2642 .p2align 4
2643L(bwd_write_6bytes):
2644 mov 2(%rsi), %edx
2645 mov (%rsi), %ecx
2646 mov %edx, 2(%rdi)
2647 mov %ecx, (%rdi)
2648 ret
2649
2650 .p2align 4
2651L(bwd_write_133bytes):
2652 lddqu 117(%rsi), %xmm0
2653 movdqu %xmm0, 117(%rdi)
2654L(bwd_write_117bytes):
2655 lddqu 101(%rsi), %xmm0
2656 movdqu %xmm0, 101(%rdi)
2657L(bwd_write_101bytes):
2658 lddqu 85(%rsi), %xmm0
2659 movdqu %xmm0, 85(%rdi)
2660L(bwd_write_85bytes):
2661 lddqu 69(%rsi), %xmm0
2662 movdqu %xmm0, 69(%rdi)
2663L(bwd_write_69bytes):
2664 lddqu 53(%rsi), %xmm0
2665 movdqu %xmm0, 53(%rdi)
2666L(bwd_write_53bytes):
2667 lddqu 37(%rsi), %xmm0
2668 movdqu %xmm0, 37(%rdi)
2669L(bwd_write_37bytes):
2670 lddqu 21(%rsi), %xmm0
2671 movdqu %xmm0, 21(%rdi)
2672L(bwd_write_21bytes):
2673 lddqu 5(%rsi), %xmm0
2674 lddqu (%rsi), %xmm1
2675 movdqu %xmm0, 5(%rdi)
2676 movdqu %xmm1, (%rdi)
2677 ret
2678
2679 .p2align 4
2680L(bwd_write_5bytes):
2681 mov 1(%rsi), %edx
2682 mov (%rsi), %ecx
2683 mov %edx, 1(%rdi)
2684 mov %ecx, (%rdi)
2685 ret
2686
2687 .p2align 4
2688L(bwd_write_132bytes):
2689 lddqu 116(%rsi), %xmm0
2690 movdqu %xmm0, 116(%rdi)
2691L(bwd_write_116bytes):
2692 lddqu 100(%rsi), %xmm0
2693 movdqu %xmm0, 100(%rdi)
2694L(bwd_write_100bytes):
2695 lddqu 84(%rsi), %xmm0
2696 movdqu %xmm0, 84(%rdi)
2697L(bwd_write_84bytes):
2698 lddqu 68(%rsi), %xmm0
2699 movdqu %xmm0, 68(%rdi)
2700L(bwd_write_68bytes):
2701 lddqu 52(%rsi), %xmm0
2702 movdqu %xmm0, 52(%rdi)
2703L(bwd_write_52bytes):
2704 lddqu 36(%rsi), %xmm0
2705 movdqu %xmm0, 36(%rdi)
2706L(bwd_write_36bytes):
2707 lddqu 20(%rsi), %xmm0
2708 movdqu %xmm0, 20(%rdi)
2709L(bwd_write_20bytes):
2710 lddqu 4(%rsi), %xmm0
2711 lddqu (%rsi), %xmm1
2712 movdqu %xmm0, 4(%rdi)
2713 movdqu %xmm1, (%rdi)
2714 ret
2715
2716 .p2align 4
2717L(bwd_write_4bytes):
2718 mov (%rsi), %edx
2719 mov %edx, (%rdi)
2720 ret
2721
2722 .p2align 4
2723L(bwd_write_131bytes):
2724 lddqu 115(%rsi), %xmm0
2725 movdqu %xmm0, 115(%rdi)
2726L(bwd_write_115bytes):
2727 lddqu 99(%rsi), %xmm0
2728 movdqu %xmm0, 99(%rdi)
2729L(bwd_write_99bytes):
2730 lddqu 83(%rsi), %xmm0
2731 movdqu %xmm0, 83(%rdi)
2732L(bwd_write_83bytes):
2733 lddqu 67(%rsi), %xmm0
2734 movdqu %xmm0, 67(%rdi)
2735L(bwd_write_67bytes):
2736 lddqu 51(%rsi), %xmm0
2737 movdqu %xmm0, 51(%rdi)
2738L(bwd_write_51bytes):
2739 lddqu 35(%rsi), %xmm0
2740 movdqu %xmm0, 35(%rdi)
2741L(bwd_write_35bytes):
2742 lddqu 19(%rsi), %xmm0
2743 movdqu %xmm0, 19(%rdi)
2744L(bwd_write_19bytes):
2745 lddqu 3(%rsi), %xmm0
2746 lddqu (%rsi), %xmm1
2747 movdqu %xmm0, 3(%rdi)
2748 movdqu %xmm1, (%rdi)
2749 ret
2750
2751 .p2align 4
2752L(bwd_write_3bytes):
2753 mov 1(%rsi), %dx
2754 mov (%rsi), %cx
2755 mov %dx, 1(%rdi)
2756 mov %cx, (%rdi)
2757 ret
2758
2759 .p2align 4
2760L(bwd_write_130bytes):
2761 lddqu 114(%rsi), %xmm0
2762 movdqu %xmm0, 114(%rdi)
2763L(bwd_write_114bytes):
2764 lddqu 98(%rsi), %xmm0
2765 movdqu %xmm0, 98(%rdi)
2766L(bwd_write_98bytes):
2767 lddqu 82(%rsi), %xmm0
2768 movdqu %xmm0, 82(%rdi)
2769L(bwd_write_82bytes):
2770 lddqu 66(%rsi), %xmm0
2771 movdqu %xmm0, 66(%rdi)
2772L(bwd_write_66bytes):
2773 lddqu 50(%rsi), %xmm0
2774 movdqu %xmm0, 50(%rdi)
2775L(bwd_write_50bytes):
2776 lddqu 34(%rsi), %xmm0
2777 movdqu %xmm0, 34(%rdi)
2778L(bwd_write_34bytes):
2779 lddqu 18(%rsi), %xmm0
2780 movdqu %xmm0, 18(%rdi)
2781L(bwd_write_18bytes):
2782 lddqu 2(%rsi), %xmm0
2783 lddqu (%rsi), %xmm1
2784 movdqu %xmm0, 2(%rdi)
2785 movdqu %xmm1, (%rdi)
2786 ret
2787
2788 .p2align 4
2789L(bwd_write_2bytes):
2790 movzwl (%rsi), %edx
2791 mov %dx, (%rdi)
2792 ret
2793
2794 .p2align 4
2795L(bwd_write_129bytes):
2796 lddqu 113(%rsi), %xmm0
2797 movdqu %xmm0, 113(%rdi)
2798L(bwd_write_113bytes):
2799 lddqu 97(%rsi), %xmm0
2800 movdqu %xmm0, 97(%rdi)
2801L(bwd_write_97bytes):
2802 lddqu 81(%rsi), %xmm0
2803 movdqu %xmm0, 81(%rdi)
2804L(bwd_write_81bytes):
2805 lddqu 65(%rsi), %xmm0
2806 movdqu %xmm0, 65(%rdi)
2807L(bwd_write_65bytes):
2808 lddqu 49(%rsi), %xmm0
2809 movdqu %xmm0, 49(%rdi)
2810L(bwd_write_49bytes):
2811 lddqu 33(%rsi), %xmm0
2812 movdqu %xmm0, 33(%rdi)
2813L(bwd_write_33bytes):
2814 lddqu 17(%rsi), %xmm0
2815 movdqu %xmm0, 17(%rdi)
2816L(bwd_write_17bytes):
2817 lddqu 1(%rsi), %xmm0
2818 lddqu (%rsi), %xmm1
2819 movdqu %xmm0, 1(%rdi)
2820 movdqu %xmm1, (%rdi)
2821 ret
2822
2823 .p2align 4
2824L(bwd_write_1bytes):
2825 movzbl (%rsi), %edx
2826 mov %dl, (%rdi)
2827 ret
2828
2829END (MEMCPY)
2830
2831 .section .rodata.ssse3,"a",@progbits
e7044ea7 2832 .p2align 3
6fb8cbcb
L
2833L(table_144_bytes_bwd):
2834 .int JMPTBL (L(bwd_write_0bytes), L(table_144_bytes_bwd))
2835 .int JMPTBL (L(bwd_write_1bytes), L(table_144_bytes_bwd))
2836 .int JMPTBL (L(bwd_write_2bytes), L(table_144_bytes_bwd))
2837 .int JMPTBL (L(bwd_write_3bytes), L(table_144_bytes_bwd))
2838 .int JMPTBL (L(bwd_write_4bytes), L(table_144_bytes_bwd))
2839 .int JMPTBL (L(bwd_write_5bytes), L(table_144_bytes_bwd))
2840 .int JMPTBL (L(bwd_write_6bytes), L(table_144_bytes_bwd))
2841 .int JMPTBL (L(bwd_write_7bytes), L(table_144_bytes_bwd))
2842 .int JMPTBL (L(bwd_write_8bytes), L(table_144_bytes_bwd))
2843 .int JMPTBL (L(bwd_write_9bytes), L(table_144_bytes_bwd))
2844 .int JMPTBL (L(bwd_write_10bytes), L(table_144_bytes_bwd))
2845 .int JMPTBL (L(bwd_write_11bytes), L(table_144_bytes_bwd))
2846 .int JMPTBL (L(bwd_write_12bytes), L(table_144_bytes_bwd))
2847 .int JMPTBL (L(bwd_write_13bytes), L(table_144_bytes_bwd))
2848 .int JMPTBL (L(bwd_write_14bytes), L(table_144_bytes_bwd))
2849 .int JMPTBL (L(bwd_write_15bytes), L(table_144_bytes_bwd))
2850 .int JMPTBL (L(bwd_write_16bytes), L(table_144_bytes_bwd))
2851 .int JMPTBL (L(bwd_write_17bytes), L(table_144_bytes_bwd))
2852 .int JMPTBL (L(bwd_write_18bytes), L(table_144_bytes_bwd))
2853 .int JMPTBL (L(bwd_write_19bytes), L(table_144_bytes_bwd))
2854 .int JMPTBL (L(bwd_write_20bytes), L(table_144_bytes_bwd))
2855 .int JMPTBL (L(bwd_write_21bytes), L(table_144_bytes_bwd))
2856 .int JMPTBL (L(bwd_write_22bytes), L(table_144_bytes_bwd))
2857 .int JMPTBL (L(bwd_write_23bytes), L(table_144_bytes_bwd))
2858 .int JMPTBL (L(bwd_write_24bytes), L(table_144_bytes_bwd))
2859 .int JMPTBL (L(bwd_write_25bytes), L(table_144_bytes_bwd))
2860 .int JMPTBL (L(bwd_write_26bytes), L(table_144_bytes_bwd))
2861 .int JMPTBL (L(bwd_write_27bytes), L(table_144_bytes_bwd))
2862 .int JMPTBL (L(bwd_write_28bytes), L(table_144_bytes_bwd))
2863 .int JMPTBL (L(bwd_write_29bytes), L(table_144_bytes_bwd))
2864 .int JMPTBL (L(bwd_write_30bytes), L(table_144_bytes_bwd))
2865 .int JMPTBL (L(bwd_write_31bytes), L(table_144_bytes_bwd))
2866 .int JMPTBL (L(bwd_write_32bytes), L(table_144_bytes_bwd))
2867 .int JMPTBL (L(bwd_write_33bytes), L(table_144_bytes_bwd))
2868 .int JMPTBL (L(bwd_write_34bytes), L(table_144_bytes_bwd))
2869 .int JMPTBL (L(bwd_write_35bytes), L(table_144_bytes_bwd))
2870 .int JMPTBL (L(bwd_write_36bytes), L(table_144_bytes_bwd))
2871 .int JMPTBL (L(bwd_write_37bytes), L(table_144_bytes_bwd))
2872 .int JMPTBL (L(bwd_write_38bytes), L(table_144_bytes_bwd))
2873 .int JMPTBL (L(bwd_write_39bytes), L(table_144_bytes_bwd))
2874 .int JMPTBL (L(bwd_write_40bytes), L(table_144_bytes_bwd))
2875 .int JMPTBL (L(bwd_write_41bytes), L(table_144_bytes_bwd))
2876 .int JMPTBL (L(bwd_write_42bytes), L(table_144_bytes_bwd))
2877 .int JMPTBL (L(bwd_write_43bytes), L(table_144_bytes_bwd))
2878 .int JMPTBL (L(bwd_write_44bytes), L(table_144_bytes_bwd))
2879 .int JMPTBL (L(bwd_write_45bytes), L(table_144_bytes_bwd))
2880 .int JMPTBL (L(bwd_write_46bytes), L(table_144_bytes_bwd))
2881 .int JMPTBL (L(bwd_write_47bytes), L(table_144_bytes_bwd))
2882 .int JMPTBL (L(bwd_write_48bytes), L(table_144_bytes_bwd))
2883 .int JMPTBL (L(bwd_write_49bytes), L(table_144_bytes_bwd))
2884 .int JMPTBL (L(bwd_write_50bytes), L(table_144_bytes_bwd))
2885 .int JMPTBL (L(bwd_write_51bytes), L(table_144_bytes_bwd))
2886 .int JMPTBL (L(bwd_write_52bytes), L(table_144_bytes_bwd))
2887 .int JMPTBL (L(bwd_write_53bytes), L(table_144_bytes_bwd))
2888 .int JMPTBL (L(bwd_write_54bytes), L(table_144_bytes_bwd))
2889 .int JMPTBL (L(bwd_write_55bytes), L(table_144_bytes_bwd))
2890 .int JMPTBL (L(bwd_write_56bytes), L(table_144_bytes_bwd))
2891 .int JMPTBL (L(bwd_write_57bytes), L(table_144_bytes_bwd))
2892 .int JMPTBL (L(bwd_write_58bytes), L(table_144_bytes_bwd))
2893 .int JMPTBL (L(bwd_write_59bytes), L(table_144_bytes_bwd))
2894 .int JMPTBL (L(bwd_write_60bytes), L(table_144_bytes_bwd))
2895 .int JMPTBL (L(bwd_write_61bytes), L(table_144_bytes_bwd))
2896 .int JMPTBL (L(bwd_write_62bytes), L(table_144_bytes_bwd))
2897 .int JMPTBL (L(bwd_write_63bytes), L(table_144_bytes_bwd))
2898 .int JMPTBL (L(bwd_write_64bytes), L(table_144_bytes_bwd))
2899 .int JMPTBL (L(bwd_write_65bytes), L(table_144_bytes_bwd))
2900 .int JMPTBL (L(bwd_write_66bytes), L(table_144_bytes_bwd))
2901 .int JMPTBL (L(bwd_write_67bytes), L(table_144_bytes_bwd))
2902 .int JMPTBL (L(bwd_write_68bytes), L(table_144_bytes_bwd))
2903 .int JMPTBL (L(bwd_write_69bytes), L(table_144_bytes_bwd))
2904 .int JMPTBL (L(bwd_write_70bytes), L(table_144_bytes_bwd))
2905 .int JMPTBL (L(bwd_write_71bytes), L(table_144_bytes_bwd))
2906 .int JMPTBL (L(bwd_write_72bytes), L(table_144_bytes_bwd))
2907 .int JMPTBL (L(bwd_write_73bytes), L(table_144_bytes_bwd))
2908 .int JMPTBL (L(bwd_write_74bytes), L(table_144_bytes_bwd))
2909 .int JMPTBL (L(bwd_write_75bytes), L(table_144_bytes_bwd))
2910 .int JMPTBL (L(bwd_write_76bytes), L(table_144_bytes_bwd))
2911 .int JMPTBL (L(bwd_write_77bytes), L(table_144_bytes_bwd))
2912 .int JMPTBL (L(bwd_write_78bytes), L(table_144_bytes_bwd))
2913 .int JMPTBL (L(bwd_write_79bytes), L(table_144_bytes_bwd))
2914 .int JMPTBL (L(bwd_write_80bytes), L(table_144_bytes_bwd))
2915 .int JMPTBL (L(bwd_write_81bytes), L(table_144_bytes_bwd))
2916 .int JMPTBL (L(bwd_write_82bytes), L(table_144_bytes_bwd))
2917 .int JMPTBL (L(bwd_write_83bytes), L(table_144_bytes_bwd))
2918 .int JMPTBL (L(bwd_write_84bytes), L(table_144_bytes_bwd))
2919 .int JMPTBL (L(bwd_write_85bytes), L(table_144_bytes_bwd))
2920 .int JMPTBL (L(bwd_write_86bytes), L(table_144_bytes_bwd))
2921 .int JMPTBL (L(bwd_write_87bytes), L(table_144_bytes_bwd))
2922 .int JMPTBL (L(bwd_write_88bytes), L(table_144_bytes_bwd))
2923 .int JMPTBL (L(bwd_write_89bytes), L(table_144_bytes_bwd))
2924 .int JMPTBL (L(bwd_write_90bytes), L(table_144_bytes_bwd))
2925 .int JMPTBL (L(bwd_write_91bytes), L(table_144_bytes_bwd))
2926 .int JMPTBL (L(bwd_write_92bytes), L(table_144_bytes_bwd))
2927 .int JMPTBL (L(bwd_write_93bytes), L(table_144_bytes_bwd))
2928 .int JMPTBL (L(bwd_write_94bytes), L(table_144_bytes_bwd))
2929 .int JMPTBL (L(bwd_write_95bytes), L(table_144_bytes_bwd))
2930 .int JMPTBL (L(bwd_write_96bytes), L(table_144_bytes_bwd))
2931 .int JMPTBL (L(bwd_write_97bytes), L(table_144_bytes_bwd))
2932 .int JMPTBL (L(bwd_write_98bytes), L(table_144_bytes_bwd))
2933 .int JMPTBL (L(bwd_write_99bytes), L(table_144_bytes_bwd))
2934 .int JMPTBL (L(bwd_write_100bytes), L(table_144_bytes_bwd))
2935 .int JMPTBL (L(bwd_write_101bytes), L(table_144_bytes_bwd))
2936 .int JMPTBL (L(bwd_write_102bytes), L(table_144_bytes_bwd))
2937 .int JMPTBL (L(bwd_write_103bytes), L(table_144_bytes_bwd))
2938 .int JMPTBL (L(bwd_write_104bytes), L(table_144_bytes_bwd))
2939 .int JMPTBL (L(bwd_write_105bytes), L(table_144_bytes_bwd))
2940 .int JMPTBL (L(bwd_write_106bytes), L(table_144_bytes_bwd))
2941 .int JMPTBL (L(bwd_write_107bytes), L(table_144_bytes_bwd))
2942 .int JMPTBL (L(bwd_write_108bytes), L(table_144_bytes_bwd))
2943 .int JMPTBL (L(bwd_write_109bytes), L(table_144_bytes_bwd))
2944 .int JMPTBL (L(bwd_write_110bytes), L(table_144_bytes_bwd))
2945 .int JMPTBL (L(bwd_write_111bytes), L(table_144_bytes_bwd))
2946 .int JMPTBL (L(bwd_write_112bytes), L(table_144_bytes_bwd))
2947 .int JMPTBL (L(bwd_write_113bytes), L(table_144_bytes_bwd))
2948 .int JMPTBL (L(bwd_write_114bytes), L(table_144_bytes_bwd))
2949 .int JMPTBL (L(bwd_write_115bytes), L(table_144_bytes_bwd))
2950 .int JMPTBL (L(bwd_write_116bytes), L(table_144_bytes_bwd))
2951 .int JMPTBL (L(bwd_write_117bytes), L(table_144_bytes_bwd))
2952 .int JMPTBL (L(bwd_write_118bytes), L(table_144_bytes_bwd))
2953 .int JMPTBL (L(bwd_write_119bytes), L(table_144_bytes_bwd))
2954 .int JMPTBL (L(bwd_write_120bytes), L(table_144_bytes_bwd))
2955 .int JMPTBL (L(bwd_write_121bytes), L(table_144_bytes_bwd))
2956 .int JMPTBL (L(bwd_write_122bytes), L(table_144_bytes_bwd))
2957 .int JMPTBL (L(bwd_write_123bytes), L(table_144_bytes_bwd))
2958 .int JMPTBL (L(bwd_write_124bytes), L(table_144_bytes_bwd))
2959 .int JMPTBL (L(bwd_write_125bytes), L(table_144_bytes_bwd))
2960 .int JMPTBL (L(bwd_write_126bytes), L(table_144_bytes_bwd))
2961 .int JMPTBL (L(bwd_write_127bytes), L(table_144_bytes_bwd))
2962 .int JMPTBL (L(bwd_write_128bytes), L(table_144_bytes_bwd))
2963 .int JMPTBL (L(bwd_write_129bytes), L(table_144_bytes_bwd))
2964 .int JMPTBL (L(bwd_write_130bytes), L(table_144_bytes_bwd))
2965 .int JMPTBL (L(bwd_write_131bytes), L(table_144_bytes_bwd))
2966 .int JMPTBL (L(bwd_write_132bytes), L(table_144_bytes_bwd))
2967 .int JMPTBL (L(bwd_write_133bytes), L(table_144_bytes_bwd))
2968 .int JMPTBL (L(bwd_write_134bytes), L(table_144_bytes_bwd))
2969 .int JMPTBL (L(bwd_write_135bytes), L(table_144_bytes_bwd))
2970 .int JMPTBL (L(bwd_write_136bytes), L(table_144_bytes_bwd))
2971 .int JMPTBL (L(bwd_write_137bytes), L(table_144_bytes_bwd))
2972 .int JMPTBL (L(bwd_write_138bytes), L(table_144_bytes_bwd))
2973 .int JMPTBL (L(bwd_write_139bytes), L(table_144_bytes_bwd))
2974 .int JMPTBL (L(bwd_write_140bytes), L(table_144_bytes_bwd))
2975 .int JMPTBL (L(bwd_write_141bytes), L(table_144_bytes_bwd))
2976 .int JMPTBL (L(bwd_write_142bytes), L(table_144_bytes_bwd))
2977 .int JMPTBL (L(bwd_write_143bytes), L(table_144_bytes_bwd))
2978
e7044ea7 2979 .p2align 3
6fb8cbcb
L
2980L(table_144_bytes_fwd):
2981 .int JMPTBL (L(fwd_write_0bytes), L(table_144_bytes_fwd))
2982 .int JMPTBL (L(fwd_write_1bytes), L(table_144_bytes_fwd))
2983 .int JMPTBL (L(fwd_write_2bytes), L(table_144_bytes_fwd))
2984 .int JMPTBL (L(fwd_write_3bytes), L(table_144_bytes_fwd))
2985 .int JMPTBL (L(fwd_write_4bytes), L(table_144_bytes_fwd))
2986 .int JMPTBL (L(fwd_write_5bytes), L(table_144_bytes_fwd))
2987 .int JMPTBL (L(fwd_write_6bytes), L(table_144_bytes_fwd))
2988 .int JMPTBL (L(fwd_write_7bytes), L(table_144_bytes_fwd))
2989 .int JMPTBL (L(fwd_write_8bytes), L(table_144_bytes_fwd))
2990 .int JMPTBL (L(fwd_write_9bytes), L(table_144_bytes_fwd))
2991 .int JMPTBL (L(fwd_write_10bytes), L(table_144_bytes_fwd))
2992 .int JMPTBL (L(fwd_write_11bytes), L(table_144_bytes_fwd))
2993 .int JMPTBL (L(fwd_write_12bytes), L(table_144_bytes_fwd))
2994 .int JMPTBL (L(fwd_write_13bytes), L(table_144_bytes_fwd))
2995 .int JMPTBL (L(fwd_write_14bytes), L(table_144_bytes_fwd))
2996 .int JMPTBL (L(fwd_write_15bytes), L(table_144_bytes_fwd))
2997 .int JMPTBL (L(fwd_write_16bytes), L(table_144_bytes_fwd))
2998 .int JMPTBL (L(fwd_write_17bytes), L(table_144_bytes_fwd))
2999 .int JMPTBL (L(fwd_write_18bytes), L(table_144_bytes_fwd))
3000 .int JMPTBL (L(fwd_write_19bytes), L(table_144_bytes_fwd))
3001 .int JMPTBL (L(fwd_write_20bytes), L(table_144_bytes_fwd))
3002 .int JMPTBL (L(fwd_write_21bytes), L(table_144_bytes_fwd))
3003 .int JMPTBL (L(fwd_write_22bytes), L(table_144_bytes_fwd))
3004 .int JMPTBL (L(fwd_write_23bytes), L(table_144_bytes_fwd))
3005 .int JMPTBL (L(fwd_write_24bytes), L(table_144_bytes_fwd))
3006 .int JMPTBL (L(fwd_write_25bytes), L(table_144_bytes_fwd))
3007 .int JMPTBL (L(fwd_write_26bytes), L(table_144_bytes_fwd))
3008 .int JMPTBL (L(fwd_write_27bytes), L(table_144_bytes_fwd))
3009 .int JMPTBL (L(fwd_write_28bytes), L(table_144_bytes_fwd))
3010 .int JMPTBL (L(fwd_write_29bytes), L(table_144_bytes_fwd))
3011 .int JMPTBL (L(fwd_write_30bytes), L(table_144_bytes_fwd))
3012 .int JMPTBL (L(fwd_write_31bytes), L(table_144_bytes_fwd))
3013 .int JMPTBL (L(fwd_write_32bytes), L(table_144_bytes_fwd))
3014 .int JMPTBL (L(fwd_write_33bytes), L(table_144_bytes_fwd))
3015 .int JMPTBL (L(fwd_write_34bytes), L(table_144_bytes_fwd))
3016 .int JMPTBL (L(fwd_write_35bytes), L(table_144_bytes_fwd))
3017 .int JMPTBL (L(fwd_write_36bytes), L(table_144_bytes_fwd))
3018 .int JMPTBL (L(fwd_write_37bytes), L(table_144_bytes_fwd))
3019 .int JMPTBL (L(fwd_write_38bytes), L(table_144_bytes_fwd))
3020 .int JMPTBL (L(fwd_write_39bytes), L(table_144_bytes_fwd))
3021 .int JMPTBL (L(fwd_write_40bytes), L(table_144_bytes_fwd))
3022 .int JMPTBL (L(fwd_write_41bytes), L(table_144_bytes_fwd))
3023 .int JMPTBL (L(fwd_write_42bytes), L(table_144_bytes_fwd))
3024 .int JMPTBL (L(fwd_write_43bytes), L(table_144_bytes_fwd))
3025 .int JMPTBL (L(fwd_write_44bytes), L(table_144_bytes_fwd))
3026 .int JMPTBL (L(fwd_write_45bytes), L(table_144_bytes_fwd))
3027 .int JMPTBL (L(fwd_write_46bytes), L(table_144_bytes_fwd))
3028 .int JMPTBL (L(fwd_write_47bytes), L(table_144_bytes_fwd))
3029 .int JMPTBL (L(fwd_write_48bytes), L(table_144_bytes_fwd))
3030 .int JMPTBL (L(fwd_write_49bytes), L(table_144_bytes_fwd))
3031 .int JMPTBL (L(fwd_write_50bytes), L(table_144_bytes_fwd))
3032 .int JMPTBL (L(fwd_write_51bytes), L(table_144_bytes_fwd))
3033 .int JMPTBL (L(fwd_write_52bytes), L(table_144_bytes_fwd))
3034 .int JMPTBL (L(fwd_write_53bytes), L(table_144_bytes_fwd))
3035 .int JMPTBL (L(fwd_write_54bytes), L(table_144_bytes_fwd))
3036 .int JMPTBL (L(fwd_write_55bytes), L(table_144_bytes_fwd))
3037 .int JMPTBL (L(fwd_write_56bytes), L(table_144_bytes_fwd))
3038 .int JMPTBL (L(fwd_write_57bytes), L(table_144_bytes_fwd))
3039 .int JMPTBL (L(fwd_write_58bytes), L(table_144_bytes_fwd))
3040 .int JMPTBL (L(fwd_write_59bytes), L(table_144_bytes_fwd))
3041 .int JMPTBL (L(fwd_write_60bytes), L(table_144_bytes_fwd))
3042 .int JMPTBL (L(fwd_write_61bytes), L(table_144_bytes_fwd))
3043 .int JMPTBL (L(fwd_write_62bytes), L(table_144_bytes_fwd))
3044 .int JMPTBL (L(fwd_write_63bytes), L(table_144_bytes_fwd))
3045 .int JMPTBL (L(fwd_write_64bytes), L(table_144_bytes_fwd))
3046 .int JMPTBL (L(fwd_write_65bytes), L(table_144_bytes_fwd))
3047 .int JMPTBL (L(fwd_write_66bytes), L(table_144_bytes_fwd))
3048 .int JMPTBL (L(fwd_write_67bytes), L(table_144_bytes_fwd))
3049 .int JMPTBL (L(fwd_write_68bytes), L(table_144_bytes_fwd))
3050 .int JMPTBL (L(fwd_write_69bytes), L(table_144_bytes_fwd))
3051 .int JMPTBL (L(fwd_write_70bytes), L(table_144_bytes_fwd))
3052 .int JMPTBL (L(fwd_write_71bytes), L(table_144_bytes_fwd))
3053 .int JMPTBL (L(fwd_write_72bytes), L(table_144_bytes_fwd))
3054 .int JMPTBL (L(fwd_write_73bytes), L(table_144_bytes_fwd))
3055 .int JMPTBL (L(fwd_write_74bytes), L(table_144_bytes_fwd))
3056 .int JMPTBL (L(fwd_write_75bytes), L(table_144_bytes_fwd))
3057 .int JMPTBL (L(fwd_write_76bytes), L(table_144_bytes_fwd))
3058 .int JMPTBL (L(fwd_write_77bytes), L(table_144_bytes_fwd))
3059 .int JMPTBL (L(fwd_write_78bytes), L(table_144_bytes_fwd))
3060 .int JMPTBL (L(fwd_write_79bytes), L(table_144_bytes_fwd))
3061 .int JMPTBL (L(fwd_write_80bytes), L(table_144_bytes_fwd))
3062 .int JMPTBL (L(fwd_write_81bytes), L(table_144_bytes_fwd))
3063 .int JMPTBL (L(fwd_write_82bytes), L(table_144_bytes_fwd))
3064 .int JMPTBL (L(fwd_write_83bytes), L(table_144_bytes_fwd))
3065 .int JMPTBL (L(fwd_write_84bytes), L(table_144_bytes_fwd))
3066 .int JMPTBL (L(fwd_write_85bytes), L(table_144_bytes_fwd))
3067 .int JMPTBL (L(fwd_write_86bytes), L(table_144_bytes_fwd))
3068 .int JMPTBL (L(fwd_write_87bytes), L(table_144_bytes_fwd))
3069 .int JMPTBL (L(fwd_write_88bytes), L(table_144_bytes_fwd))
3070 .int JMPTBL (L(fwd_write_89bytes), L(table_144_bytes_fwd))
3071 .int JMPTBL (L(fwd_write_90bytes), L(table_144_bytes_fwd))
3072 .int JMPTBL (L(fwd_write_91bytes), L(table_144_bytes_fwd))
3073 .int JMPTBL (L(fwd_write_92bytes), L(table_144_bytes_fwd))
3074 .int JMPTBL (L(fwd_write_93bytes), L(table_144_bytes_fwd))
3075 .int JMPTBL (L(fwd_write_94bytes), L(table_144_bytes_fwd))
3076 .int JMPTBL (L(fwd_write_95bytes), L(table_144_bytes_fwd))
3077 .int JMPTBL (L(fwd_write_96bytes), L(table_144_bytes_fwd))
3078 .int JMPTBL (L(fwd_write_97bytes), L(table_144_bytes_fwd))
3079 .int JMPTBL (L(fwd_write_98bytes), L(table_144_bytes_fwd))
3080 .int JMPTBL (L(fwd_write_99bytes), L(table_144_bytes_fwd))
3081 .int JMPTBL (L(fwd_write_100bytes), L(table_144_bytes_fwd))
3082 .int JMPTBL (L(fwd_write_101bytes), L(table_144_bytes_fwd))
3083 .int JMPTBL (L(fwd_write_102bytes), L(table_144_bytes_fwd))
3084 .int JMPTBL (L(fwd_write_103bytes), L(table_144_bytes_fwd))
3085 .int JMPTBL (L(fwd_write_104bytes), L(table_144_bytes_fwd))
3086 .int JMPTBL (L(fwd_write_105bytes), L(table_144_bytes_fwd))
3087 .int JMPTBL (L(fwd_write_106bytes), L(table_144_bytes_fwd))
3088 .int JMPTBL (L(fwd_write_107bytes), L(table_144_bytes_fwd))
3089 .int JMPTBL (L(fwd_write_108bytes), L(table_144_bytes_fwd))
3090 .int JMPTBL (L(fwd_write_109bytes), L(table_144_bytes_fwd))
3091 .int JMPTBL (L(fwd_write_110bytes), L(table_144_bytes_fwd))
3092 .int JMPTBL (L(fwd_write_111bytes), L(table_144_bytes_fwd))
3093 .int JMPTBL (L(fwd_write_112bytes), L(table_144_bytes_fwd))
3094 .int JMPTBL (L(fwd_write_113bytes), L(table_144_bytes_fwd))
3095 .int JMPTBL (L(fwd_write_114bytes), L(table_144_bytes_fwd))
3096 .int JMPTBL (L(fwd_write_115bytes), L(table_144_bytes_fwd))
3097 .int JMPTBL (L(fwd_write_116bytes), L(table_144_bytes_fwd))
3098 .int JMPTBL (L(fwd_write_117bytes), L(table_144_bytes_fwd))
3099 .int JMPTBL (L(fwd_write_118bytes), L(table_144_bytes_fwd))
3100 .int JMPTBL (L(fwd_write_119bytes), L(table_144_bytes_fwd))
3101 .int JMPTBL (L(fwd_write_120bytes), L(table_144_bytes_fwd))
3102 .int JMPTBL (L(fwd_write_121bytes), L(table_144_bytes_fwd))
3103 .int JMPTBL (L(fwd_write_122bytes), L(table_144_bytes_fwd))
3104 .int JMPTBL (L(fwd_write_123bytes), L(table_144_bytes_fwd))
3105 .int JMPTBL (L(fwd_write_124bytes), L(table_144_bytes_fwd))
3106 .int JMPTBL (L(fwd_write_125bytes), L(table_144_bytes_fwd))
3107 .int JMPTBL (L(fwd_write_126bytes), L(table_144_bytes_fwd))
3108 .int JMPTBL (L(fwd_write_127bytes), L(table_144_bytes_fwd))
3109 .int JMPTBL (L(fwd_write_128bytes), L(table_144_bytes_fwd))
3110 .int JMPTBL (L(fwd_write_129bytes), L(table_144_bytes_fwd))
3111 .int JMPTBL (L(fwd_write_130bytes), L(table_144_bytes_fwd))
3112 .int JMPTBL (L(fwd_write_131bytes), L(table_144_bytes_fwd))
3113 .int JMPTBL (L(fwd_write_132bytes), L(table_144_bytes_fwd))
3114 .int JMPTBL (L(fwd_write_133bytes), L(table_144_bytes_fwd))
3115 .int JMPTBL (L(fwd_write_134bytes), L(table_144_bytes_fwd))
3116 .int JMPTBL (L(fwd_write_135bytes), L(table_144_bytes_fwd))
3117 .int JMPTBL (L(fwd_write_136bytes), L(table_144_bytes_fwd))
3118 .int JMPTBL (L(fwd_write_137bytes), L(table_144_bytes_fwd))
3119 .int JMPTBL (L(fwd_write_138bytes), L(table_144_bytes_fwd))
3120 .int JMPTBL (L(fwd_write_139bytes), L(table_144_bytes_fwd))
3121 .int JMPTBL (L(fwd_write_140bytes), L(table_144_bytes_fwd))
3122 .int JMPTBL (L(fwd_write_141bytes), L(table_144_bytes_fwd))
3123 .int JMPTBL (L(fwd_write_142bytes), L(table_144_bytes_fwd))
3124 .int JMPTBL (L(fwd_write_143bytes), L(table_144_bytes_fwd))
3125
e7044ea7 3126 .p2align 3
6fb8cbcb
L
3127L(shl_table_fwd):
3128 .int JMPTBL (L(shl_0), L(shl_table_fwd))
3129 .int JMPTBL (L(shl_1), L(shl_table_fwd))
3130 .int JMPTBL (L(shl_2), L(shl_table_fwd))
3131 .int JMPTBL (L(shl_3), L(shl_table_fwd))
3132 .int JMPTBL (L(shl_4), L(shl_table_fwd))
3133 .int JMPTBL (L(shl_5), L(shl_table_fwd))
3134 .int JMPTBL (L(shl_6), L(shl_table_fwd))
3135 .int JMPTBL (L(shl_7), L(shl_table_fwd))
3136 .int JMPTBL (L(shl_8), L(shl_table_fwd))
3137 .int JMPTBL (L(shl_9), L(shl_table_fwd))
3138 .int JMPTBL (L(shl_10), L(shl_table_fwd))
3139 .int JMPTBL (L(shl_11), L(shl_table_fwd))
3140 .int JMPTBL (L(shl_12), L(shl_table_fwd))
3141 .int JMPTBL (L(shl_13), L(shl_table_fwd))
3142 .int JMPTBL (L(shl_14), L(shl_table_fwd))
3143 .int JMPTBL (L(shl_15), L(shl_table_fwd))
3144
e7044ea7 3145 .p2align 3
6fb8cbcb
L
3146L(shl_table_bwd):
3147 .int JMPTBL (L(shl_0_bwd), L(shl_table_bwd))
3148 .int JMPTBL (L(shl_1_bwd), L(shl_table_bwd))
3149 .int JMPTBL (L(shl_2_bwd), L(shl_table_bwd))
3150 .int JMPTBL (L(shl_3_bwd), L(shl_table_bwd))
3151 .int JMPTBL (L(shl_4_bwd), L(shl_table_bwd))
3152 .int JMPTBL (L(shl_5_bwd), L(shl_table_bwd))
3153 .int JMPTBL (L(shl_6_bwd), L(shl_table_bwd))
3154 .int JMPTBL (L(shl_7_bwd), L(shl_table_bwd))
3155 .int JMPTBL (L(shl_8_bwd), L(shl_table_bwd))
3156 .int JMPTBL (L(shl_9_bwd), L(shl_table_bwd))
3157 .int JMPTBL (L(shl_10_bwd), L(shl_table_bwd))
3158 .int JMPTBL (L(shl_11_bwd), L(shl_table_bwd))
3159 .int JMPTBL (L(shl_12_bwd), L(shl_table_bwd))
3160 .int JMPTBL (L(shl_13_bwd), L(shl_table_bwd))
3161 .int JMPTBL (L(shl_14_bwd), L(shl_table_bwd))
3162 .int JMPTBL (L(shl_15_bwd), L(shl_table_bwd))
3163
3164#endif