]> git.proxmox.com Git - ceph.git/blob - ceph/src/isa-l/igzip/rfc1951_lookup.asm
import quincy beta 17.1.0
[ceph.git] / ceph / src / isa-l / igzip / rfc1951_lookup.asm
1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ; Copyright(c) 2011-2018 Intel Corporation All rights reserved.
3 ;
4 ; Redistribution and use in source and binary forms, with or without
5 ; modification, are permitted provided that the following conditions
6 ; are met:
7 ; * Redistributions of source code must retain the above copyright
8 ; notice, this list of conditions and the following disclaimer.
9 ; * Redistributions in binary form must reproduce the above copyright
10 ; notice, this list of conditions and the following disclaimer in
11 ; the documentation and/or other materials provided with the
12 ; distribution.
13 ; * Neither the name of Intel Corporation nor the names of its
14 ; contributors may be used to endorse or promote products derived
15 ; from this software without specific prior written permission.
16 ;
17 ; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18 ; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19 ; LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20 ; A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21 ; OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 ; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23 ; LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 ; DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 ; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 ; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 ; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
29
30 %include "reg_sizes.asm"
31
32 %ifndef RFC1951_LOOKUP
33 %define RFC1951_LOOKUP
34
35 section .data
36
37 align 8
38
39 ;; /* Structure contain lookup data based on RFC 1951 */
40 ;; struct rfc1951_tables {
41 ;; uint8_t len_to_code[264];
42 ;; uint8_t dist_extra_bit_count[32];
43 ;; uint32_t dist_start[32];
44 ;; uint8_t len_extra_bit_count[32];
45 ;; uint16_t len_start[32];
46 ;; };
47
48 mk_global rfc1951_lookup_table, data, internal
49 rfc1951_lookup_table:
50 len_to_code:
51 db 0x00, 0x00, 0x00
52 db 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
53 db 0x09, 0x09, 0x0a, 0x0a, 0x0b, 0x0b, 0x0c, 0x0c
54 db 0x0d, 0x0d, 0x0d, 0x0d, 0x0e, 0x0e, 0x0e, 0x0e
55 db 0x0f, 0x0f, 0x0f, 0x0f, 0x10, 0x10, 0x10, 0x10
56 db 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
57 db 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
58 db 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13
59 db 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14
60 db 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15
61 db 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15
62 db 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16
63 db 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16
64 db 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17
65 db 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17
66 db 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
67 db 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
68 db 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19
69 db 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19
70 db 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19
71 db 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19
72 db 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a
73 db 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a
74 db 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a
75 db 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a
76 db 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b
77 db 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b
78 db 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b
79 db 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b
80 db 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c
81 db 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c
82 db 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c
83 db 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1d
84 db 0x00, 0x00, 0x00, 0x00, 0x00
85
86 dist_extra_bit_count:
87 db 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02
88 db 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06, 0x06
89 db 0x07, 0x07, 0x08, 0x08, 0x09, 0x09, 0x0a, 0x0a
90 db 0x0b, 0x0b, 0x0c, 0x0c, 0x0d, 0x0d, 0x00, 0x00
91
92 dist_start:
93 dd 0x00000001, 0x00000002, 0x00000003, 0x00000004
94 dd 0x00000005, 0x00000007, 0x00000009, 0x0000000d
95 dd 0x00000011, 0x00000019, 0x00000021, 0x00000031
96 dd 0x00000041, 0x00000061, 0x00000081, 0x000000c1
97 dd 0x00000101, 0x00000181, 0x00000201, 0x00000301
98 dd 0x00000401, 0x00000601, 0x00000801, 0x00000c01
99 dd 0x00001001, 0x00001801, 0x00002001, 0x00003001
100 dd 0x00004001, 0x00006001, 0x00000000, 0x00000000
101
102 len_extra_bit_count:
103 db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
104 db 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02
105 db 0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x04, 0x04
106 db 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00
107
108 len_start:
109 dw 0x0003, 0x0004, 0x0005, 0x0006
110 dw 000007, 0x0008, 0x0009, 0x000a
111 dw 0x000b, 0x000d, 0x000f, 0x0011
112 dw 0x0013, 0x0017, 0x001b, 0x001f
113 dw 0x0023, 0x002b, 0x0033, 0x003b
114 dw 0x0043, 0x0053, 0x0063, 0x0073
115 dw 0x0083, 0x00a3, 0x00c3, 0x00e3
116 dw 0x0102, 0x0000, 0x0000, 0x0000
117
118 %endif ; RFC1951_LOOKUP