mirror of
https://github.com/intel/isa-l.git
synced 2025-01-31 10:31:12 +01:00
igzip: Reduce data usage in igzip_gen_icf_map_lh1_06
Change-Id: I453f6c6e71f236145c1e79493710c85847ed8c70 Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
This commit is contained in:
parent
d389b8d6f8
commit
ff00a0f927
@ -137,21 +137,21 @@ func(gen_icf_map_lh1_06)
|
||||
mov level_buf, [stream + _level_buf]
|
||||
sub f_i_end, LA
|
||||
vmovdqu64 zdatas_perm, [datas_perm]
|
||||
vmovdqu64 zdatas_shuf, [datas_shuf]
|
||||
vmovdqu64 zhash_prod, [hash_prod]
|
||||
vmovdqu64 zhash_mask, [hash_mask]
|
||||
vbroadcasti32x4 zdatas_shuf, [datas_shuf]
|
||||
vpbroadcastd zhash_prod, [hash_prod]
|
||||
vpbroadcastd zhash_mask, [hash_mask]
|
||||
vmovdqu64 zincrement, [increment]
|
||||
vmovdqu64 zqword_shuf, [qword_shuf]
|
||||
vmovdqu64 zdatas_perm2, [datas_perm2]
|
||||
vmovdqu64 zdatas_perm3, [datas_perm3]
|
||||
vmovdqu64 zones, [ones]
|
||||
vmovdqu64 zbswap, [bswap_shuf]
|
||||
vmovdqu64 zthirty, [thirty]
|
||||
vbroadcasti64x2 zdatas_perm2, [datas_perm2]
|
||||
vbroadcasti64x2 zdatas_perm3, [datas_perm3]
|
||||
vpbroadcastd zones, [ones]
|
||||
vbroadcasti32x4 zbswap, [bswap_shuf]
|
||||
vpbroadcastd zthirty, [thirty]
|
||||
vmovdqu64 zrot_left, [drot_left]
|
||||
vmovdqu64 zdist_mask, [dist_mask]
|
||||
vmovdqu64 zshortest_matches, [shortest_matches]
|
||||
vmovdqu64 ztwofiftyfour, [twofiftyfour]
|
||||
vmovdqu64 znull_dist_syms, [null_dist_syms]
|
||||
vpbroadcastd zdist_mask, dword [dist_mask]
|
||||
vpbroadcastd zshortest_matches, [shortest_matches]
|
||||
vpbroadcastd ztwofiftyfour, [twofiftyfour]
|
||||
vpbroadcastd znull_dist_syms, [null_dist_syms]
|
||||
kxorq k0, k0, k0
|
||||
kmovq k1, [k_mask_1]
|
||||
kmovq k2, [k_mask_2]
|
||||
@ -409,42 +409,12 @@ endproc_frame
|
||||
|
||||
section .data
|
||||
align 64
|
||||
;; 64 byte data
|
||||
datas_perm:
|
||||
dq 0x0, 0x1, 0x0, 0x1, 0x1, 0x2, 0x1, 0x2
|
||||
datas_perm2:
|
||||
dq 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1
|
||||
datas_perm3:
|
||||
dq 0x1, 0x2, 0x1, 0x2, 0x1, 0x2, 0x1, 0x2
|
||||
drot_left:
|
||||
dd 0xf, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6
|
||||
dd 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe
|
||||
datas_shuf:
|
||||
db 0x0, 0x1, 0x2, 0x3
|
||||
db 0x1, 0x2, 0x3, 0x4
|
||||
db 0x2, 0x3, 0x4, 0x5
|
||||
db 0x3, 0x4, 0x5, 0x6
|
||||
db 0x4, 0x5, 0x6, 0x7
|
||||
db 0x5, 0x6, 0x7, 0x8
|
||||
db 0x6, 0x7, 0x8, 0x9
|
||||
db 0x7, 0x8, 0x9, 0xa
|
||||
db 0x0, 0x1, 0x2, 0x3
|
||||
db 0x1, 0x2, 0x3, 0x4
|
||||
db 0x2, 0x3, 0x4, 0x5
|
||||
db 0x3, 0x4, 0x5, 0x6
|
||||
db 0x4, 0x5, 0x6, 0x7
|
||||
db 0x5, 0x6, 0x7, 0x8
|
||||
db 0x6, 0x7, 0x8, 0x9
|
||||
db 0x7, 0x8, 0x9, 0xa
|
||||
bswap_shuf:
|
||||
db 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00
|
||||
db 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x0a, 0x09, 0x08
|
||||
db 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00
|
||||
db 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x0a, 0x09, 0x08
|
||||
db 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00
|
||||
db 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x0a, 0x09, 0x08
|
||||
db 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00
|
||||
db 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x0a, 0x09, 0x08
|
||||
|
||||
qword_shuf:
|
||||
db 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7
|
||||
db 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8
|
||||
@ -455,51 +425,51 @@ qword_shuf:
|
||||
db 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd
|
||||
db 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe
|
||||
db 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf
|
||||
|
||||
%define PROD1 0xE84B
|
||||
%define PROD2 0x97B1
|
||||
|
||||
hash_prod:
|
||||
dw PROD1, PROD2, PROD1, PROD2, PROD1, PROD2, PROD1, PROD2
|
||||
dw PROD1, PROD2, PROD1, PROD2, PROD1, PROD2, PROD1, PROD2
|
||||
dw PROD1, PROD2, PROD1, PROD2, PROD1, PROD2, PROD1, PROD2
|
||||
dw PROD1, PROD2, PROD1, PROD2, PROD1, PROD2, PROD1, PROD2
|
||||
null_dist_syms:
|
||||
dd LIT, LIT, LIT, LIT, LIT, LIT, LIT, LIT
|
||||
dd LIT, LIT, LIT, LIT, LIT, LIT, LIT, LIT
|
||||
datas_shuf:
|
||||
db 0x0, 0x1, 0x2, 0x3
|
||||
db 0x1, 0x2, 0x3, 0x4
|
||||
db 0x2, 0x3, 0x4, 0x5
|
||||
db 0x3, 0x4, 0x5, 0x6
|
||||
db 0x4, 0x5, 0x6, 0x7
|
||||
db 0x5, 0x6, 0x7, 0x8
|
||||
db 0x6, 0x7, 0x8, 0x9
|
||||
db 0x7, 0x8, 0x9, 0xa
|
||||
increment:
|
||||
dd 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7
|
||||
dd 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf
|
||||
ones:
|
||||
dd 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1
|
||||
dd 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1
|
||||
thirty:
|
||||
dd 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e
|
||||
dd 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e
|
||||
twofiftyfour:
|
||||
dd 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe
|
||||
dd 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe
|
||||
dist_mask:
|
||||
dd D-1, D-1, D-1, D-1, D-1, D-1, D-1, D-1
|
||||
dd D-1, D-1, D-1, D-1, D-1, D-1, D-1, D-1
|
||||
hash_mask:
|
||||
dd HASH_MAP_HASH_MASK, HASH_MAP_HASH_MASK, HASH_MAP_HASH_MASK, HASH_MAP_HASH_MASK
|
||||
dd HASH_MAP_HASH_MASK, HASH_MAP_HASH_MASK, HASH_MAP_HASH_MASK, HASH_MAP_HASH_MASK
|
||||
dd HASH_MAP_HASH_MASK, HASH_MAP_HASH_MASK, HASH_MAP_HASH_MASK, HASH_MAP_HASH_MASK
|
||||
dd HASH_MAP_HASH_MASK, HASH_MAP_HASH_MASK, HASH_MAP_HASH_MASK, HASH_MAP_HASH_MASK
|
||||
lit_len_mask:
|
||||
dd LIT_LEN_MASK, LIT_LEN_MASK, LIT_LEN_MASK, LIT_LEN_MASK
|
||||
dd LIT_LEN_MASK, LIT_LEN_MASK, LIT_LEN_MASK, LIT_LEN_MASK
|
||||
dd LIT_LEN_MASK, LIT_LEN_MASK, LIT_LEN_MASK, LIT_LEN_MASK
|
||||
dd LIT_LEN_MASK, LIT_LEN_MASK, LIT_LEN_MASK, LIT_LEN_MASK
|
||||
shortest_matches:
|
||||
dd MIN_DEF_MATCH, MIN_DEF_MATCH, MIN_DEF_MATCH, MIN_DEF_MATCH
|
||||
dd MIN_DEF_MATCH, MIN_DEF_MATCH, MIN_DEF_MATCH, MIN_DEF_MATCH
|
||||
dd MIN_DEF_MATCH, MIN_DEF_MATCH, MIN_DEF_MATCH, MIN_DEF_MATCH
|
||||
dd MIN_DEF_MATCH, MIN_DEF_MATCH, MIN_DEF_MATCH, MIN_DEF_MATCH
|
||||
|
||||
;; 16 byte data
|
||||
datas_perm2:
|
||||
dq 0x0, 0x1
|
||||
datas_perm3:
|
||||
dq 0x1, 0x2
|
||||
bswap_shuf:
|
||||
db 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00
|
||||
db 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x0a, 0x09, 0x08
|
||||
;; 8 byte data
|
||||
k_mask_1:
|
||||
dq 0xaaaaaaaaaaaaaaaa
|
||||
k_mask_2:
|
||||
dq 0x7fff
|
||||
;; 4 byte data
|
||||
null_dist_syms:
|
||||
dd LIT
|
||||
%define PROD1 0xE84B
|
||||
%define PROD2 0x97B1
|
||||
hash_prod:
|
||||
dw PROD1, PROD2
|
||||
ones:
|
||||
dd 0x1
|
||||
thirty:
|
||||
dd 0x1e
|
||||
twofiftyfour:
|
||||
dd 0xfe
|
||||
dist_mask:
|
||||
dd D-1
|
||||
hash_mask:
|
||||
dd HASH_MAP_HASH_MASK
|
||||
lit_len_mask:
|
||||
dd LIT_LEN_MASK
|
||||
shortest_matches:
|
||||
dd MIN_DEF_MATCH
|
||||
%endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user