]> git.proxmox.com Git - ceph.git/blob - ceph/src/isa-l/igzip/crc_data.asm
04779f810742da099fa595ebfddb183759492f4b
[ceph.git] / ceph / src / isa-l / igzip / crc_data.asm
1 %ifndef CRC_DATA
2
3 %define CRC_DATA
4 ; precomputed constants
5 section .data
6
7 align 32
8
9 global pshufb_shf_table:data internal
10 pshufb_shf_table:
11 dq 0x8887868584838281, 0x008f8e8d8c8b8a89 ; shl 15 (16-1) / shr1
12 dq 0x8988878685848382, 0x01008f8e8d8c8b8a ; shl 14 (16-3) / shr2
13 dq 0x8a89888786858483, 0x0201008f8e8d8c8b ; shl 13 (16-4) / shr3
14 dq 0x8b8a898887868584, 0x030201008f8e8d8c ; shl 12 (16-4) / shr4
15 dq 0x8c8b8a8988878685, 0x04030201008f8e8d ; shl 11 (16-5) / shr5
16 dq 0x8d8c8b8a89888786, 0x0504030201008f8e ; shl 10 (16-6) / shr6
17 dq 0x8e8d8c8b8a898887, 0x060504030201008f ; shl 9 (16-7) / shr7
18 dq 0x8f8e8d8c8b8a8988, 0x0706050403020100 ; shl 8 (16-8) / shr8
19 dq 0x008f8e8d8c8b8a89, 0x0807060504030201 ; shl 7 (16-9) / shr9
20 dq 0x01008f8e8d8c8b8a, 0x0908070605040302 ; shl 6 (16-10) / shr10
21 dq 0x0201008f8e8d8c8b, 0x0a09080706050403 ; shl 5 (16-11) / shr11
22 dq 0x030201008f8e8d8c, 0x0b0a090807060504 ; shl 4 (16-12) / shr12
23 dq 0x04030201008f8e8d, 0x0c0b0a0908070605 ; shl 3 (16-13) / shr13
24 dq 0x0504030201008f8e, 0x0d0c0b0a09080706 ; shl 2 (16-14) / shr14
25 dq 0x060504030201008f, 0x0e0d0c0b0a090807 ; shl 1 (16-15) / shr15
26
27 ;; ; MAGIC value, which when folded 4 times gives FFFFFF00000...0000
28 ;; global crc_init_4
29 ;; crc_init_4:
30 ;; dq 0x9db42487
31 ;; dq 0x0
32 ;; dq 0x0
33 ;; dq 0x0
34
35 ; constant used to shift/fold one XMM reg down by 4 XMM widths
36 global fold_4:data internal
37 fold_4:
38 dq 0x00000001c6e41596
39 dq 0x0000000154442bd4
40
41
42 ;value, which when xored with pshufb_shf_table entry gives shr value
43 global mask3:data internal
44 mask3: dq 0x8080808080808080, 0x8080808080808080
45
46 %ifndef CRC_TABLE
47 %define CRC_TABLE
48 ; Place marker in library to avoid linker warning
49 align 4
50 global CrcTable:data internal
51 CrcTable:
52 dd 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba
53 dd 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3
54 dd 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988
55 dd 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91
56 dd 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de
57 dd 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7
58 dd 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec
59 dd 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5
60 dd 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172
61 dd 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b
62 dd 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940
63 dd 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59
64 dd 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116
65 dd 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f
66 dd 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924
67 dd 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d
68 dd 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a
69 dd 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433
70 dd 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818
71 dd 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01
72 dd 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e
73 dd 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457
74 dd 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c
75 dd 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65
76 dd 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2
77 dd 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb
78 dd 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0
79 dd 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9
80 dd 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086
81 dd 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f
82 dd 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4
83 dd 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad
84 dd 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a
85 dd 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683
86 dd 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8
87 dd 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1
88 dd 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe
89 dd 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7
90 dd 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc
91 dd 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5
92 dd 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252
93 dd 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b
94 dd 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60
95 dd 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79
96 dd 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236
97 dd 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f
98 dd 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04
99 dd 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d
100 dd 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a
101 dd 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713
102 dd 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38
103 dd 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21
104 dd 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e
105 dd 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777
106 dd 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c
107 dd 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45
108 dd 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2
109 dd 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db
110 dd 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0
111 dd 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9
112 dd 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6
113 dd 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf
114 dd 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94
115 dd 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
116 End_CrcTable:
117
118 %endif ;; CRC_TABLE
119
120 %endif ;; CRC_DATA