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_hash8k_base 43extern isal_deflate_icf_body_hash8k_01 44extern isal_deflate_icf_body_hash8k_02 45extern isal_deflate_icf_body_hash8k_04 46extern isal_deflate_icf_finish_hash8k_base 47extern isal_deflate_icf_finish_hash8k_01 48 49extern isal_deflate_icf_body_hash_hist_base 50extern isal_deflate_icf_body_hash_hist_01 51extern isal_deflate_icf_body_hash_hist_02 52extern isal_deflate_icf_body_hash_hist_04 53extern isal_deflate_icf_finish_hash_hist_base 54extern isal_deflate_icf_finish_hash_hist_01 55 56extern isal_deflate_icf_finish_hash_map_base 57 58extern isal_update_histogram_base 59extern isal_update_histogram_01 60extern isal_update_histogram_04 61 62extern gen_icf_map_h1_base 63extern gen_icf_map_lh1_04 64 65extern encode_deflate_icf_base 66extern encode_deflate_icf_04 67 68extern set_long_icf_fg_base 69extern set_long_icf_fg_04 70 71%ifdef HAVE_AS_KNOWS_AVX512 72extern encode_deflate_icf_06 73extern set_long_icf_fg_06 74extern gen_icf_map_lh1_06 75%endif 76 77extern crc32_gzip_base 78extern crc32_gzip_01 79 80extern adler32_base 81extern adler32_avx2_4 82extern adler32_sse 83 84extern isal_deflate_hash_base 85extern isal_deflate_hash_crc_01 86 87extern isal_deflate_hash_mad_base 88 89extern icf_body_hash1_fillgreedy_lazy 90extern icf_body_lazyhash1_fillgreedy_greedy 91 92section .text 93 94%include "multibinary.asm" 95 96mbin_interface isal_deflate_body 97mbin_dispatch_init5 isal_deflate_body, isal_deflate_body_base, isal_deflate_body_01, isal_deflate_body_02, isal_deflate_body_04 98mbin_interface isal_deflate_finish 99mbin_dispatch_init5 isal_deflate_finish, isal_deflate_finish_base, isal_deflate_finish_01, isal_deflate_finish_01, isal_deflate_finish_01 100 101mbin_interface isal_deflate_icf_body_lvl1 102mbin_dispatch_init5 isal_deflate_icf_body_lvl1, isal_deflate_icf_body_hash8k_base, isal_deflate_icf_body_hash8k_01, isal_deflate_icf_body_hash8k_02, isal_deflate_icf_body_hash8k_04 103 104mbin_interface isal_deflate_icf_body_lvl2 105mbin_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 106 107mbin_interface isal_deflate_icf_body_lvl3 108mbin_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 109 110mbin_interface isal_deflate_icf_finish_lvl1 111mbin_dispatch_init5 isal_deflate_icf_finish_lvl1, isal_deflate_icf_finish_hash8k_base, isal_deflate_icf_finish_hash8k_01, isal_deflate_icf_finish_hash8k_01, isal_deflate_icf_finish_hash8k_01 112 113mbin_interface isal_deflate_icf_finish_lvl2 114mbin_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 115 116mbin_interface isal_deflate_icf_finish_lvl3 117mbin_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 118 119mbin_interface isal_update_histogram 120mbin_dispatch_init5 isal_update_histogram, isal_update_histogram_base, isal_update_histogram_01, isal_update_histogram_01, isal_update_histogram_04 121 122%ifdef HAVE_AS_KNOWS_AVX512 123mbin_interface encode_deflate_icf 124mbin_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 125 126mbin_interface set_long_icf_fg 127mbin_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 128 129mbin_interface gen_icf_map_lh1 130mbin_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 131%else 132mbin_interface encode_deflate_icf 133mbin_dispatch_init5 encode_deflate_icf, encode_deflate_icf_base, encode_deflate_icf_base, encode_deflate_icf_base, encode_deflate_icf_04 134 135mbin_interface set_long_icf_fg 136mbin_dispatch_init5 set_long_icf_fg, set_long_icf_fg_base, set_long_icf_fg_base, set_long_icf_fg_base, set_long_icf_fg_04 137 138mbin_interface gen_icf_map_lh1 139mbin_dispatch_init5 gen_icf_map_lh1, gen_icf_map_h1_base, gen_icf_map_h1_base, gen_icf_map_h1_base, gen_icf_map_lh1_04 140%endif 141 142mbin_interface crc32_gzip 143mbin_dispatch_init_clmul crc32_gzip, crc32_gzip_base, crc32_gzip_01 144 145mbin_interface isal_adler32 146mbin_dispatch_init5 isal_adler32, adler32_base, adler32_sse, adler32_sse, adler32_avx2_4 147 148mbin_interface isal_deflate_hash_lvl0 149mbin_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 150 151mbin_interface isal_deflate_hash_lvl1 152mbin_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 153 154mbin_interface isal_deflate_hash_lvl2 155mbin_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 156 157mbin_interface isal_deflate_hash_lvl3 158mbin_dispatch_init5 isal_deflate_hash_lvl3, isal_deflate_hash_base, isal_deflate_hash_base, isal_deflate_hash_base, isal_deflate_hash_mad_base 159 160