1 /* memcmp with SSE4.1, wmemcmp with SSE4.1
2 Copyright (C) 2010-2015 Free Software Foundation, Inc.
3 Contributed by Intel Corporation.
4 This file is part of the GNU C Library.
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.
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.
16 You should have received a copy of the GNU Lesser General Public
17 License along with the GNU C Library; if not, see
18 <http://www.gnu.org/licenses/>. */
25 # define MEMCMP __memcmp_sse4_1
28 # define JMPTBL(I, B) (I - B)
30 # define BRANCH_TO_JMPTBL_ENTRY(TABLE, INDEX, SCALE) \
31 lea TABLE(%rip), %r11; \
32 movslq (%r11, INDEX, SCALE), %rcx; \
38 wmemcmp has to use SIGNED comparison for elements.
39 memcmp has to use UNSIGNED comparison for elemnts.
42 .section .text.sse4.1,"ax",@progbits
44 # ifdef USE_AS_WMEMCMP
50 # ifndef USE_AS_WMEMCMP
56 BRANCH_TO_JMPTBL_ENTRY(L(table_64bytes), %rdx, 4)
58 # ifndef USE_AS_WMEMCMP
94 movdqu 16(%rdi), %xmm2
99 movdqu 32(%rdi), %xmm2
104 movdqu 48(%rdi), %xmm2
109 jb L(less32bytesin64)
111 movdqu 64(%rdi), %xmm2
116 movdqu 80(%rdi), %xmm2
128 BRANCH_TO_JMPTBL_ENTRY(L(table_64bytes), %rdx, 4)
143 movdqu 16(%rdi), %xmm2
148 movdqu 32(%rdi), %xmm2
153 movdqu 48(%rdi), %xmm2
158 movdqu 64(%rdi), %xmm2
163 movdqu 80(%rdi), %xmm2
168 movdqu 96(%rdi), %xmm2
173 movdqu 112(%rdi), %xmm2
174 pxor 112(%rsi), %xmm2
185 jb L(less32bytesin128)
192 movdqu 16(%rdi), %xmm2
202 BRANCH_TO_JMPTBL_ENTRY(L(table_64bytes), %rdx, 4)
211 movdqu 16(%rdi), %xmm2
216 movdqu 32(%rdi), %xmm2
221 movdqu 48(%rdi), %xmm2
226 movdqu 64(%rdi), %xmm2
231 movdqu 80(%rdi), %xmm2
236 movdqu 96(%rdi), %xmm2
241 movdqu 112(%rdi), %xmm2
242 pxor 112(%rsi), %xmm2
246 movdqu 128(%rdi), %xmm2
247 pxor 128(%rsi), %xmm2
251 movdqu 144(%rdi), %xmm2
252 pxor 144(%rsi), %xmm2
256 movdqu 160(%rdi), %xmm2
257 pxor 160(%rsi), %xmm2
261 movdqu 176(%rdi), %xmm2
262 pxor 176(%rsi), %xmm2
266 movdqu 192(%rdi), %xmm2
267 pxor 192(%rsi), %xmm2
271 movdqu 208(%rdi), %xmm2
272 pxor 208(%rsi), %xmm2
276 movdqu 224(%rdi), %xmm2
277 pxor 224(%rsi), %xmm2
281 movdqu 240(%rdi), %xmm2
282 pxor 240(%rsi), %xmm2
296 jb L(less32bytesin256)
303 movdqu 16(%rdi), %xmm2
313 BRANCH_TO_JMPTBL_ENTRY(L(table_64bytes), %rdx, 4)
317 # ifdef DATA_CACHE_SIZE_HALF
318 mov $DATA_CACHE_SIZE_HALF, %R8_LP
320 mov __x86_data_cache_size_half(%rip), %R8_LP
326 ja L(L2_L3_cache_unaglined)
329 L(64bytesormore_loop):
334 movdqu 16(%rdi), %xmm3
338 movdqu 32(%rdi), %xmm4
342 movdqu 48(%rdi), %xmm5
347 jnc L(64bytesormore_loop_end)
351 jae L(64bytesormore_loop)
356 BRANCH_TO_JMPTBL_ENTRY(L(table_64bytes), %rdx, 4)
358 L(L2_L3_cache_unaglined):
361 L(L2_L3_unaligned_128bytes_loop):
362 prefetchnta 0x1c0(%rdi)
363 prefetchnta 0x1c0(%rsi)
368 movdqu 16(%rdi), %xmm3
372 movdqu 32(%rdi), %xmm4
376 movdqu 48(%rdi), %xmm5
381 jnc L(64bytesormore_loop_end)
385 jae L(L2_L3_unaligned_128bytes_loop)
390 BRANCH_TO_JMPTBL_ENTRY(L(table_64bytes), %rdx, 4)
393 * This case is for machines which are sensitive for unaligned instructions.
398 ja L(128bytesormorein2aligned)
399 L(less128bytesin2aligned):
407 movdqa 16(%rdi), %xmm2
412 movdqa 32(%rdi), %xmm2
417 movdqa 48(%rdi), %xmm2
422 jb L(less32bytesin64in2alinged)
424 movdqa 64(%rdi), %xmm2
429 movdqa 80(%rdi), %xmm2
436 L(less32bytesin64in2alinged):
441 BRANCH_TO_JMPTBL_ENTRY(L(table_64bytes), %rdx, 4)
444 L(128bytesormorein2aligned):
446 ja L(512bytesormorein2aligned)
448 ja L(256bytesormorein2aligned)
449 L(less256bytesin2alinged):
457 movdqa 16(%rdi), %xmm2
462 movdqa 32(%rdi), %xmm2
467 movdqa 48(%rdi), %xmm2
472 movdqa 64(%rdi), %xmm2
477 movdqa 80(%rdi), %xmm2
482 movdqa 96(%rdi), %xmm2
487 movdqa 112(%rdi), %xmm2
488 pxor 112(%rsi), %xmm2
496 jae L(less128bytesin2aligned)
499 jb L(less32bytesin128in2aligned)
506 movdqu 16(%rdi), %xmm2
513 L(less32bytesin128in2aligned):
516 BRANCH_TO_JMPTBL_ENTRY(L(table_64bytes), %rdx, 4)
519 L(256bytesormorein2aligned):
527 movdqa 16(%rdi), %xmm2
532 movdqa 32(%rdi), %xmm2
537 movdqa 48(%rdi), %xmm2
542 movdqa 64(%rdi), %xmm2
547 movdqa 80(%rdi), %xmm2
552 movdqa 96(%rdi), %xmm2
557 movdqa 112(%rdi), %xmm2
558 pxor 112(%rsi), %xmm2
562 movdqa 128(%rdi), %xmm2
563 pxor 128(%rsi), %xmm2
567 movdqa 144(%rdi), %xmm2
568 pxor 144(%rsi), %xmm2
572 movdqa 160(%rdi), %xmm2
573 pxor 160(%rsi), %xmm2
577 movdqa 176(%rdi), %xmm2
578 pxor 176(%rsi), %xmm2
582 movdqa 192(%rdi), %xmm2
583 pxor 192(%rsi), %xmm2
587 movdqa 208(%rdi), %xmm2
588 pxor 208(%rsi), %xmm2
592 movdqa 224(%rdi), %xmm2
593 pxor 224(%rsi), %xmm2
597 movdqa 240(%rdi), %xmm2
598 pxor 240(%rsi), %xmm2
606 jae L(less256bytesin2alinged)
609 jae L(less128bytesin2aligned)
612 jb L(less32bytesin256in2alinged)
619 movdqa 16(%rdi), %xmm2
626 L(less32bytesin256in2alinged):
629 BRANCH_TO_JMPTBL_ENTRY(L(table_64bytes), %rdx, 4)
632 L(512bytesormorein2aligned):
633 # ifdef DATA_CACHE_SIZE_HALF
634 mov $DATA_CACHE_SIZE_HALF, %R8_LP
636 mov __x86_data_cache_size_half(%rip), %R8_LP
642 ja L(L2_L3_cache_aglined)
646 L(64bytesormore_loopin2aligned):
651 movdqa 16(%rdi), %xmm3
655 movdqa 32(%rdi), %xmm4
659 movdqa 48(%rdi), %xmm5
664 jnc L(64bytesormore_loop_end)
668 jae L(64bytesormore_loopin2aligned)
673 BRANCH_TO_JMPTBL_ENTRY(L(table_64bytes), %rdx, 4)
674 L(L2_L3_cache_aglined):
678 L(L2_L3_aligned_128bytes_loop):
679 prefetchnta 0x1c0(%rdi)
680 prefetchnta 0x1c0(%rsi)
685 movdqa 16(%rdi), %xmm3
689 movdqa 32(%rdi), %xmm4
693 movdqa 48(%rdi), %xmm5
698 jnc L(64bytesormore_loop_end)
702 jae L(L2_L3_aligned_128bytes_loop)
707 BRANCH_TO_JMPTBL_ENTRY(L(table_64bytes), %rdx, 4)
711 L(64bytesormore_loop_end):
813 # ifndef USE_AS_WMEMCMP
824 # ifndef USE_AS_WMEMCMP
825 /* unreal case for wmemcmp */
828 movdqu -65(%rdi), %xmm1
829 movdqu -65(%rsi), %xmm2
835 movdqu -49(%rdi), %xmm1
836 movdqu -49(%rsi), %xmm2
842 movdqu -33(%rdi), %xmm1
843 movdqu -33(%rsi), %xmm2
858 movzbl -1(%rdi), %eax
859 movzbl -1(%rsi), %edx
882 movzbl -1(%rdi), %eax
883 movzbl -1(%rsi), %edx
889 movdqu -66(%rdi), %xmm1
890 movdqu -66(%rsi), %xmm2
896 movdqu -50(%rdi), %xmm1
897 movdqu -50(%rsi), %xmm2
903 movdqu -34(%rdi), %xmm1
904 movdqu -34(%rsi), %xmm2
919 movzwl -2(%rdi), %eax
920 movzwl -2(%rsi), %ecx
948 movzwl -2(%rsi), %ecx
949 movzwl -2(%rdi), %eax
959 movdqu -67(%rdi), %xmm2
960 movdqu -67(%rsi), %xmm1
966 movdqu -51(%rdi), %xmm2
967 movdqu -51(%rsi), %xmm1
973 movdqu -35(%rsi), %xmm1
974 movdqu -35(%rdi), %xmm2
1024 movzwl -3(%rdi), %eax
1025 movzwl -3(%rsi), %ecx
1029 movzbl -1(%rdi), %eax
1030 movzbl -1(%rsi), %ecx
1037 movdqu -68(%rdi), %xmm2
1038 movdqu -68(%rsi), %xmm1
1044 movdqu -52(%rdi), %xmm2
1045 movdqu -52(%rsi), %xmm1
1051 movdqu -36(%rdi), %xmm2
1052 movdqu -36(%rsi), %xmm1
1058 movdqu -20(%rdi), %xmm2
1059 movdqu -20(%rsi), %xmm1
1066 # ifndef USE_AS_WMEMCMP
1076 # ifndef USE_AS_WMEMCMP
1077 /* unreal cases for wmemcmp */
1080 movdqu -69(%rsi), %xmm1
1081 movdqu -69(%rdi), %xmm2
1087 movdqu -53(%rsi), %xmm1
1088 movdqu -53(%rdi), %xmm2
1094 movdqu -37(%rsi), %xmm1
1095 movdqu -37(%rdi), %xmm2
1101 movdqu -21(%rsi), %xmm1
1102 movdqu -21(%rdi), %xmm2
1116 movdqu -70(%rsi), %xmm1
1117 movdqu -70(%rdi), %xmm2
1123 movdqu -54(%rsi), %xmm1
1124 movdqu -54(%rdi), %xmm2
1130 movdqu -38(%rsi), %xmm1
1131 movdqu -38(%rdi), %xmm2
1137 movdqu -22(%rsi), %xmm1
1138 movdqu -22(%rdi), %xmm2
1152 movdqu -71(%rsi), %xmm1
1153 movdqu -71(%rdi), %xmm2
1159 movdqu -55(%rdi), %xmm2
1160 movdqu -55(%rsi), %xmm1
1166 movdqu -39(%rdi), %xmm2
1167 movdqu -39(%rsi), %xmm1
1173 movdqu -23(%rdi), %xmm2
1174 movdqu -23(%rsi), %xmm1
1189 movdqu -72(%rsi), %xmm1
1190 movdqu -72(%rdi), %xmm2
1196 movdqu -56(%rdi), %xmm2
1197 movdqu -56(%rsi), %xmm1
1203 movdqu -40(%rdi), %xmm2
1204 movdqu -40(%rsi), %xmm1
1210 movdqu -24(%rdi), %xmm2
1211 movdqu -24(%rsi), %xmm1
1224 # ifndef USE_AS_WMEMCMP
1225 /* unreal cases for wmemcmp */
1228 movdqu -73(%rsi), %xmm1
1229 movdqu -73(%rdi), %xmm2
1235 movdqu -57(%rdi), %xmm2
1236 movdqu -57(%rsi), %xmm1
1242 movdqu -41(%rdi), %xmm2
1243 movdqu -41(%rsi), %xmm1
1249 movdqu -25(%rdi), %xmm2
1250 movdqu -25(%rsi), %xmm1
1259 movzbl -1(%rdi), %eax
1260 movzbl -1(%rsi), %ecx
1266 movdqu -74(%rsi), %xmm1
1267 movdqu -74(%rdi), %xmm2
1273 movdqu -58(%rdi), %xmm2
1274 movdqu -58(%rsi), %xmm1
1280 movdqu -42(%rdi), %xmm2
1281 movdqu -42(%rsi), %xmm1
1287 movdqu -26(%rdi), %xmm2
1288 movdqu -26(%rsi), %xmm1
1297 movzwl -2(%rdi), %eax
1298 movzwl -2(%rsi), %ecx
1303 movdqu -75(%rsi), %xmm1
1304 movdqu -75(%rdi), %xmm2
1310 movdqu -59(%rdi), %xmm2
1311 movdqu -59(%rsi), %xmm1
1317 movdqu -43(%rdi), %xmm2
1318 movdqu -43(%rsi), %xmm1
1324 movdqu -27(%rdi), %xmm2
1325 movdqu -27(%rsi), %xmm1
1343 movdqu -76(%rsi), %xmm1
1344 movdqu -76(%rdi), %xmm2
1350 movdqu -60(%rdi), %xmm2
1351 movdqu -60(%rsi), %xmm1
1357 movdqu -44(%rdi), %xmm2
1358 movdqu -44(%rsi), %xmm1
1364 movdqu -28(%rdi), %xmm2
1365 movdqu -28(%rsi), %xmm1
1375 # ifndef USE_AS_WMEMCMP
1385 # ifndef USE_AS_WMEMCMP
1386 /* unreal cases for wmemcmp */
1389 movdqu -77(%rsi), %xmm1
1390 movdqu -77(%rdi), %xmm2
1396 movdqu -61(%rdi), %xmm2
1397 movdqu -61(%rsi), %xmm1
1403 movdqu -45(%rdi), %xmm2
1404 movdqu -45(%rsi), %xmm1
1410 movdqu -29(%rdi), %xmm2
1411 movdqu -29(%rsi), %xmm1
1431 movdqu -78(%rsi), %xmm1
1432 movdqu -78(%rdi), %xmm2
1438 movdqu -62(%rdi), %xmm2
1439 movdqu -62(%rsi), %xmm1
1445 movdqu -46(%rdi), %xmm2
1446 movdqu -46(%rsi), %xmm1
1452 movdqu -30(%rdi), %xmm2
1453 movdqu -30(%rsi), %xmm1
1471 movdqu -79(%rsi), %xmm1
1472 movdqu -79(%rdi), %xmm2
1478 movdqu -63(%rdi), %xmm2
1479 movdqu -63(%rsi), %xmm1
1485 movdqu -47(%rdi), %xmm2
1486 movdqu -47(%rsi), %xmm1
1492 movdqu -31(%rdi), %xmm2
1493 movdqu -31(%rsi), %xmm1
1511 movdqu -64(%rdi), %xmm2
1512 movdqu -64(%rsi), %xmm1
1518 movdqu -48(%rdi), %xmm2
1519 movdqu -48(%rsi), %xmm1
1525 movdqu -32(%rdi), %xmm2
1526 movdqu -32(%rsi), %xmm1
1545 * Aligned 8 bytes to avoid 2 branch "taken" in one 16 alinged code block.
1550 mov (%rsi, %rdx), %rcx
1551 mov (%rdi, %rdx), %rax
1554 mov 8(%rsi, %rdx), %rcx
1555 mov 8(%rdi, %rdx), %rax
1562 # ifdef USE_AS_WMEMCMP
1571 # ifndef USE_AS_WMEMCMP
1609 .section .rodata.sse4.1,"a",@progbits
1611 # ifndef USE_AS_WMEMCMP
1613 .int JMPTBL (L(0bytes), L(table_64bytes))
1614 .int JMPTBL (L(1bytes), L(table_64bytes))
1615 .int JMPTBL (L(2bytes), L(table_64bytes))
1616 .int JMPTBL (L(3bytes), L(table_64bytes))
1617 .int JMPTBL (L(4bytes), L(table_64bytes))
1618 .int JMPTBL (L(5bytes), L(table_64bytes))
1619 .int JMPTBL (L(6bytes), L(table_64bytes))
1620 .int JMPTBL (L(7bytes), L(table_64bytes))
1621 .int JMPTBL (L(8bytes), L(table_64bytes))
1622 .int JMPTBL (L(9bytes), L(table_64bytes))
1623 .int JMPTBL (L(10bytes), L(table_64bytes))
1624 .int JMPTBL (L(11bytes), L(table_64bytes))
1625 .int JMPTBL (L(12bytes), L(table_64bytes))
1626 .int JMPTBL (L(13bytes), L(table_64bytes))
1627 .int JMPTBL (L(14bytes), L(table_64bytes))
1628 .int JMPTBL (L(15bytes), L(table_64bytes))
1629 .int JMPTBL (L(16bytes), L(table_64bytes))
1630 .int JMPTBL (L(17bytes), L(table_64bytes))
1631 .int JMPTBL (L(18bytes), L(table_64bytes))
1632 .int JMPTBL (L(19bytes), L(table_64bytes))
1633 .int JMPTBL (L(20bytes), L(table_64bytes))
1634 .int JMPTBL (L(21bytes), L(table_64bytes))
1635 .int JMPTBL (L(22bytes), L(table_64bytes))
1636 .int JMPTBL (L(23bytes), L(table_64bytes))
1637 .int JMPTBL (L(24bytes), L(table_64bytes))
1638 .int JMPTBL (L(25bytes), L(table_64bytes))
1639 .int JMPTBL (L(26bytes), L(table_64bytes))
1640 .int JMPTBL (L(27bytes), L(table_64bytes))
1641 .int JMPTBL (L(28bytes), L(table_64bytes))
1642 .int JMPTBL (L(29bytes), L(table_64bytes))
1643 .int JMPTBL (L(30bytes), L(table_64bytes))
1644 .int JMPTBL (L(31bytes), L(table_64bytes))
1645 .int JMPTBL (L(32bytes), L(table_64bytes))
1646 .int JMPTBL (L(33bytes), L(table_64bytes))
1647 .int JMPTBL (L(34bytes), L(table_64bytes))
1648 .int JMPTBL (L(35bytes), L(table_64bytes))
1649 .int JMPTBL (L(36bytes), L(table_64bytes))
1650 .int JMPTBL (L(37bytes), L(table_64bytes))
1651 .int JMPTBL (L(38bytes), L(table_64bytes))
1652 .int JMPTBL (L(39bytes), L(table_64bytes))
1653 .int JMPTBL (L(40bytes), L(table_64bytes))
1654 .int JMPTBL (L(41bytes), L(table_64bytes))
1655 .int JMPTBL (L(42bytes), L(table_64bytes))
1656 .int JMPTBL (L(43bytes), L(table_64bytes))
1657 .int JMPTBL (L(44bytes), L(table_64bytes))
1658 .int JMPTBL (L(45bytes), L(table_64bytes))
1659 .int JMPTBL (L(46bytes), L(table_64bytes))
1660 .int JMPTBL (L(47bytes), L(table_64bytes))
1661 .int JMPTBL (L(48bytes), L(table_64bytes))
1662 .int JMPTBL (L(49bytes), L(table_64bytes))
1663 .int JMPTBL (L(50bytes), L(table_64bytes))
1664 .int JMPTBL (L(51bytes), L(table_64bytes))
1665 .int JMPTBL (L(52bytes), L(table_64bytes))
1666 .int JMPTBL (L(53bytes), L(table_64bytes))
1667 .int JMPTBL (L(54bytes), L(table_64bytes))
1668 .int JMPTBL (L(55bytes), L(table_64bytes))
1669 .int JMPTBL (L(56bytes), L(table_64bytes))
1670 .int JMPTBL (L(57bytes), L(table_64bytes))
1671 .int JMPTBL (L(58bytes), L(table_64bytes))
1672 .int JMPTBL (L(59bytes), L(table_64bytes))
1673 .int JMPTBL (L(60bytes), L(table_64bytes))
1674 .int JMPTBL (L(61bytes), L(table_64bytes))
1675 .int JMPTBL (L(62bytes), L(table_64bytes))
1676 .int JMPTBL (L(63bytes), L(table_64bytes))
1677 .int JMPTBL (L(64bytes), L(table_64bytes))
1678 .int JMPTBL (L(65bytes), L(table_64bytes))
1679 .int JMPTBL (L(66bytes), L(table_64bytes))
1680 .int JMPTBL (L(67bytes), L(table_64bytes))
1681 .int JMPTBL (L(68bytes), L(table_64bytes))
1682 .int JMPTBL (L(69bytes), L(table_64bytes))
1683 .int JMPTBL (L(70bytes), L(table_64bytes))
1684 .int JMPTBL (L(71bytes), L(table_64bytes))
1685 .int JMPTBL (L(72bytes), L(table_64bytes))
1686 .int JMPTBL (L(73bytes), L(table_64bytes))
1687 .int JMPTBL (L(74bytes), L(table_64bytes))
1688 .int JMPTBL (L(75bytes), L(table_64bytes))
1689 .int JMPTBL (L(76bytes), L(table_64bytes))
1690 .int JMPTBL (L(77bytes), L(table_64bytes))
1691 .int JMPTBL (L(78bytes), L(table_64bytes))
1692 .int JMPTBL (L(79bytes), L(table_64bytes))
1695 .int JMPTBL (L(0bytes), L(table_64bytes))
1696 .int JMPTBL (L(unreal_case), L(table_64bytes))
1697 .int JMPTBL (L(unreal_case), L(table_64bytes))
1698 .int JMPTBL (L(unreal_case), L(table_64bytes))
1699 .int JMPTBL (L(4bytes), L(table_64bytes))
1700 .int JMPTBL (L(unreal_case), L(table_64bytes))
1701 .int JMPTBL (L(unreal_case), L(table_64bytes))
1702 .int JMPTBL (L(unreal_case), L(table_64bytes))
1703 .int JMPTBL (L(8bytes), L(table_64bytes))
1704 .int JMPTBL (L(unreal_case), L(table_64bytes))
1705 .int JMPTBL (L(unreal_case), L(table_64bytes))
1706 .int JMPTBL (L(unreal_case), L(table_64bytes))
1707 .int JMPTBL (L(12bytes), L(table_64bytes))
1708 .int JMPTBL (L(unreal_case), L(table_64bytes))
1709 .int JMPTBL (L(unreal_case), L(table_64bytes))
1710 .int JMPTBL (L(unreal_case), L(table_64bytes))
1711 .int JMPTBL (L(16bytes), L(table_64bytes))
1712 .int JMPTBL (L(unreal_case), L(table_64bytes))
1713 .int JMPTBL (L(unreal_case), L(table_64bytes))
1714 .int JMPTBL (L(unreal_case), L(table_64bytes))
1715 .int JMPTBL (L(20bytes), L(table_64bytes))
1716 .int JMPTBL (L(unreal_case), L(table_64bytes))
1717 .int JMPTBL (L(unreal_case), L(table_64bytes))
1718 .int JMPTBL (L(unreal_case), L(table_64bytes))
1719 .int JMPTBL (L(24bytes), L(table_64bytes))
1720 .int JMPTBL (L(unreal_case), L(table_64bytes))
1721 .int JMPTBL (L(unreal_case), L(table_64bytes))
1722 .int JMPTBL (L(unreal_case), L(table_64bytes))
1723 .int JMPTBL (L(28bytes), L(table_64bytes))
1724 .int JMPTBL (L(unreal_case), L(table_64bytes))
1725 .int JMPTBL (L(unreal_case), L(table_64bytes))
1726 .int JMPTBL (L(unreal_case), L(table_64bytes))
1727 .int JMPTBL (L(32bytes), L(table_64bytes))
1728 .int JMPTBL (L(unreal_case), L(table_64bytes))
1729 .int JMPTBL (L(unreal_case), L(table_64bytes))
1730 .int JMPTBL (L(unreal_case), L(table_64bytes))
1731 .int JMPTBL (L(36bytes), L(table_64bytes))
1732 .int JMPTBL (L(unreal_case), L(table_64bytes))
1733 .int JMPTBL (L(unreal_case), L(table_64bytes))
1734 .int JMPTBL (L(unreal_case), L(table_64bytes))
1735 .int JMPTBL (L(40bytes), L(table_64bytes))
1736 .int JMPTBL (L(unreal_case), L(table_64bytes))
1737 .int JMPTBL (L(unreal_case), L(table_64bytes))
1738 .int JMPTBL (L(unreal_case), L(table_64bytes))
1739 .int JMPTBL (L(44bytes), L(table_64bytes))
1740 .int JMPTBL (L(unreal_case), L(table_64bytes))
1741 .int JMPTBL (L(unreal_case), L(table_64bytes))
1742 .int JMPTBL (L(unreal_case), L(table_64bytes))
1743 .int JMPTBL (L(48bytes), L(table_64bytes))
1744 .int JMPTBL (L(unreal_case), L(table_64bytes))
1745 .int JMPTBL (L(unreal_case), L(table_64bytes))
1746 .int JMPTBL (L(unreal_case), L(table_64bytes))
1747 .int JMPTBL (L(52bytes), L(table_64bytes))
1748 .int JMPTBL (L(unreal_case), L(table_64bytes))
1749 .int JMPTBL (L(unreal_case), L(table_64bytes))
1750 .int JMPTBL (L(unreal_case), L(table_64bytes))
1751 .int JMPTBL (L(56bytes), L(table_64bytes))
1752 .int JMPTBL (L(unreal_case), L(table_64bytes))
1753 .int JMPTBL (L(unreal_case), L(table_64bytes))
1754 .int JMPTBL (L(unreal_case), L(table_64bytes))
1755 .int JMPTBL (L(60bytes), L(table_64bytes))
1756 .int JMPTBL (L(unreal_case), L(table_64bytes))
1757 .int JMPTBL (L(unreal_case), L(table_64bytes))
1758 .int JMPTBL (L(unreal_case), L(table_64bytes))
1759 .int JMPTBL (L(64bytes), L(table_64bytes))
1760 .int JMPTBL (L(unreal_case), L(table_64bytes))
1761 .int JMPTBL (L(unreal_case), L(table_64bytes))
1762 .int JMPTBL (L(unreal_case), L(table_64bytes))
1763 .int JMPTBL (L(68bytes), L(table_64bytes))
1764 .int JMPTBL (L(unreal_case), L(table_64bytes))
1765 .int JMPTBL (L(unreal_case), L(table_64bytes))
1766 .int JMPTBL (L(unreal_case), L(table_64bytes))
1767 .int JMPTBL (L(72bytes), L(table_64bytes))
1768 .int JMPTBL (L(unreal_case), L(table_64bytes))
1769 .int JMPTBL (L(unreal_case), L(table_64bytes))
1770 .int JMPTBL (L(unreal_case), L(table_64bytes))
1771 .int JMPTBL (L(76bytes), L(table_64bytes))
1772 .int JMPTBL (L(unreal_case), L(table_64bytes))
1773 .int JMPTBL (L(unreal_case), L(table_64bytes))
1774 .int JMPTBL (L(unreal_case), L(table_64bytes))