xref: /isa-l/igzip/igzip_multibinary.asm (revision d3caab9c3a3df6f197253133821a2f1733c79d9e)
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;  Copyright(c) 2011-2016 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
30default rel
31[bits 64]
32
33%include "reg_sizes.asm"
34
35extern isal_deflate_body_base
36extern isal_deflate_body_01
37extern isal_deflate_body_02
38extern isal_deflate_body_04
39extern isal_deflate_finish_base
40extern isal_deflate_finish_01
41
42extern isal_deflate_icf_body_hash_hist_base
43extern isal_deflate_icf_body_hash_hist_01
44extern isal_deflate_icf_body_hash_hist_02
45extern isal_deflate_icf_body_hash_hist_04
46extern isal_deflate_icf_finish_hash_hist_base
47extern isal_deflate_icf_finish_hash_hist_01
48
49extern isal_deflate_icf_finish_hash_map_base
50
51extern isal_update_histogram_base
52extern isal_update_histogram_01
53extern isal_update_histogram_04
54
55extern gen_icf_map_h1_base
56extern gen_icf_map_lh1_04
57
58extern encode_deflate_icf_base
59extern encode_deflate_icf_04
60
61extern set_long_icf_fg_base
62extern set_long_icf_fg_04
63
64%ifdef HAVE_AS_KNOWS_AVX512
65extern encode_deflate_icf_06
66extern set_long_icf_fg_06
67extern gen_icf_map_lh1_06
68%endif
69
70extern adler32_base
71extern adler32_avx2_4
72extern adler32_sse
73
74extern isal_deflate_hash_base
75extern isal_deflate_hash_crc_01
76
77extern isal_deflate_hash_mad_base
78
79extern icf_body_hash1_fillgreedy_lazy
80extern icf_body_lazyhash1_fillgreedy_greedy
81
82section .text
83
84%include "multibinary.asm"
85
86mbin_interface		isal_deflate_body
87mbin_dispatch_init5	isal_deflate_body, isal_deflate_body_base, isal_deflate_body_01, isal_deflate_body_02, isal_deflate_body_04
88mbin_interface		isal_deflate_finish
89mbin_dispatch_init5	isal_deflate_finish, isal_deflate_finish_base, isal_deflate_finish_01, isal_deflate_finish_01, isal_deflate_finish_01
90
91mbin_interface		isal_deflate_icf_body_lvl1
92mbin_dispatch_init5	isal_deflate_icf_body_lvl1, isal_deflate_icf_body_hash_hist_base, isal_deflate_icf_body_hash_hist_01, isal_deflate_icf_body_hash_hist_02, isal_deflate_icf_body_hash_hist_04
93
94mbin_interface		isal_deflate_icf_body_lvl2
95mbin_dispatch_init5	isal_deflate_icf_body_lvl2, isal_deflate_icf_body_hash_hist_base, isal_deflate_icf_body_hash_hist_01, isal_deflate_icf_body_hash_hist_02, isal_deflate_icf_body_hash_hist_04
96
97mbin_interface		isal_deflate_icf_body_lvl3
98mbin_dispatch_init5	isal_deflate_icf_body_lvl3, icf_body_hash1_fillgreedy_lazy, icf_body_hash1_fillgreedy_lazy, icf_body_hash1_fillgreedy_lazy, icf_body_lazyhash1_fillgreedy_greedy
99
100mbin_interface		isal_deflate_icf_finish_lvl1
101mbin_dispatch_init5	isal_deflate_icf_finish_lvl1, isal_deflate_icf_finish_hash_hist_base, isal_deflate_icf_finish_hash_hist_01, isal_deflate_icf_finish_hash_hist_01, isal_deflate_icf_finish_hash_hist_01
102
103mbin_interface		isal_deflate_icf_finish_lvl2
104mbin_dispatch_init5	isal_deflate_icf_finish_lvl2, isal_deflate_icf_finish_hash_hist_base, isal_deflate_icf_finish_hash_hist_01, isal_deflate_icf_finish_hash_hist_01, isal_deflate_icf_finish_hash_hist_01
105
106mbin_interface		isal_deflate_icf_finish_lvl3
107mbin_dispatch_init5	isal_deflate_icf_finish_lvl3, isal_deflate_icf_finish_hash_map_base, isal_deflate_icf_finish_hash_map_base, isal_deflate_icf_finish_hash_map_base, isal_deflate_icf_finish_hash_map_base
108
109mbin_interface		isal_update_histogram
110mbin_dispatch_init5	isal_update_histogram, isal_update_histogram_base, isal_update_histogram_01, isal_update_histogram_01, isal_update_histogram_04
111
112mbin_interface		encode_deflate_icf
113mbin_dispatch_init6	encode_deflate_icf, encode_deflate_icf_base, encode_deflate_icf_base, encode_deflate_icf_base, encode_deflate_icf_04, encode_deflate_icf_06
114
115mbin_interface		set_long_icf_fg
116mbin_dispatch_init6	set_long_icf_fg, set_long_icf_fg_base, set_long_icf_fg_base, set_long_icf_fg_base, set_long_icf_fg_04, set_long_icf_fg_06
117
118mbin_interface		gen_icf_map_lh1
119mbin_dispatch_init6	gen_icf_map_lh1, gen_icf_map_h1_base, gen_icf_map_h1_base, gen_icf_map_h1_base, gen_icf_map_lh1_04, gen_icf_map_lh1_06
120
121mbin_interface		isal_adler32
122mbin_dispatch_init5	isal_adler32, adler32_base, adler32_sse, adler32_sse, adler32_avx2_4
123
124mbin_interface		isal_deflate_hash_lvl0
125mbin_dispatch_init5	isal_deflate_hash_lvl0, isal_deflate_hash_base, isal_deflate_hash_crc_01, isal_deflate_hash_crc_01, isal_deflate_hash_crc_01
126
127mbin_interface		isal_deflate_hash_lvl1
128mbin_dispatch_init5	isal_deflate_hash_lvl1, isal_deflate_hash_base, isal_deflate_hash_crc_01, isal_deflate_hash_crc_01, isal_deflate_hash_crc_01
129
130mbin_interface		isal_deflate_hash_lvl2
131mbin_dispatch_init5	isal_deflate_hash_lvl2, isal_deflate_hash_base, isal_deflate_hash_crc_01, isal_deflate_hash_crc_01, isal_deflate_hash_crc_01
132
133mbin_interface		isal_deflate_hash_lvl3
134mbin_dispatch_init5	isal_deflate_hash_lvl3, isal_deflate_hash_base, isal_deflate_hash_base, isal_deflate_hash_base, isal_deflate_hash_mad_base
135