xref: /isa-l/igzip/inflate_data_structs.asm (revision 09a5a243bfec3ba0945a2bc7bfdb07e1d105e6af)
1*09a5a243SRoy Oursler; <COPYRIGHT_TAG>
2*09a5a243SRoy Oursler
3*09a5a243SRoy Oursler;; START_FIELDS
4*09a5a243SRoy Oursler%macro START_FIELDS 0
5*09a5a243SRoy Oursler%assign _FIELD_OFFSET 0
6*09a5a243SRoy Oursler%assign _STRUCT_ALIGN 0
7*09a5a243SRoy Oursler%endm
8*09a5a243SRoy Oursler
9*09a5a243SRoy Oursler;; FIELD name size align
10*09a5a243SRoy Oursler%macro FIELD 3
11*09a5a243SRoy Oursler%define %%name  %1
12*09a5a243SRoy Oursler%define %%size  %2
13*09a5a243SRoy Oursler%define %%align %3
14*09a5a243SRoy Oursler
15*09a5a243SRoy Oursler%assign _FIELD_OFFSET (_FIELD_OFFSET + (%%align) - 1) & (~ ((%%align)-1))
16*09a5a243SRoy Oursler%%name	equ	_FIELD_OFFSET
17*09a5a243SRoy Oursler%assign _FIELD_OFFSET _FIELD_OFFSET + (%%size)
18*09a5a243SRoy Oursler%if (%%align > _STRUCT_ALIGN)
19*09a5a243SRoy Oursler%assign _STRUCT_ALIGN %%align
20*09a5a243SRoy Oursler%endif
21*09a5a243SRoy Oursler%endm
22*09a5a243SRoy Oursler
23*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
24*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
25*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
26*09a5a243SRoy Oursler
27*09a5a243SRoy OurslerSTART_FIELDS	;; inflate out buffer
28*09a5a243SRoy Oursler
29*09a5a243SRoy Oursler;;      name		size    align
30*09a5a243SRoy OurslerFIELD	_start_out,	8,	8
31*09a5a243SRoy OurslerFIELD	_next_out,	8,	8
32*09a5a243SRoy OurslerFIELD	_avail_out,	4,	4
33*09a5a243SRoy OurslerFIELD	_total_out,	4,	4
34*09a5a243SRoy Oursler
35*09a5a243SRoy Oursler%assign _inflate_out_buffer_size	_FIELD_OFFSET
36*09a5a243SRoy Oursler%assign _inflate_out_buffer_align	_STRUCT_ALIGN
37*09a5a243SRoy Oursler
38*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
39*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
40*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
41*09a5a243SRoy Oursler
42*09a5a243SRoy OurslerSTART_FIELDS	;; inflate in buffer
43*09a5a243SRoy Oursler
44*09a5a243SRoy Oursler;;      name		size    align
45*09a5a243SRoy OurslerFIELD	_start_in,	8,	8
46*09a5a243SRoy OurslerFIELD	_next_in,	8,	8
47*09a5a243SRoy OurslerFIELD	_avail_in,	4,	4
48*09a5a243SRoy OurslerFIELD	_read_in,	8,	8
49*09a5a243SRoy OurslerFIELD	_read_in_length,4,	4
50*09a5a243SRoy Oursler
51*09a5a243SRoy Oursler%assign _inflate_in_buffer_size		_FIELD_OFFSET
52*09a5a243SRoy Oursler%assign _inflate_in_buffer_align	_STRUCT_ALIGN
53*09a5a243SRoy Oursler
54*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
55*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
56*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
57*09a5a243SRoy Oursler
58*09a5a243SRoy OurslerSTART_FIELDS	;; inflate huff code
59*09a5a243SRoy Oursler
60*09a5a243SRoy Oursler;;      name			size    align
61*09a5a243SRoy OurslerFIELD	_small_code_lookup,	2 * (1 << (DECODE_LOOKUP_SIZE)),	8
62*09a5a243SRoy OurslerFIELD	_long_code_lookup,	2 * MAX_LONG_CODE,			2
63*09a5a243SRoy Oursler
64*09a5a243SRoy Oursler%assign _inflate_huff_code_size		_FIELD_OFFSET
65*09a5a243SRoy Oursler%assign _inflate_huff_code_align	_STRUCT_ALIGN
66*09a5a243SRoy Oursler
67*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
68*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
69*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
70*09a5a243SRoy Oursler
71*09a5a243SRoy OurslerSTART_FIELDS	;; inflate state
72*09a5a243SRoy Oursler
73*09a5a243SRoy Oursler;;      name		size    align
74*09a5a243SRoy OurslerFIELD	_out_buffer,	_inflate_out_buffer_size,	_inflate_out_buffer_align
75*09a5a243SRoy OurslerFIELD	_in_buffer,	_inflate_in_buffer_size,	_inflate_in_buffer_align
76*09a5a243SRoy OurslerFIELD	_lit_huff_code,	_inflate_huff_code_size,	_inflate_huff_code_align
77*09a5a243SRoy OurslerFIELD	_dist_huff_code,_inflate_huff_code_size,	_inflate_huff_code_align
78*09a5a243SRoy OurslerFIELD	_new_block,	1,	1
79*09a5a243SRoy OurslerFIELD	_bfinal,	1,	1
80*09a5a243SRoy OurslerFIELD	_btype,		1,	1
81*09a5a243SRoy Oursler
82*09a5a243SRoy Oursler%assign _inflate_state_size		_FIELD_OFFSET
83*09a5a243SRoy Oursler%assign _inflate_state_align	_STRUCT_ALIGN
84*09a5a243SRoy Oursler
85*09a5a243SRoy Oursler_out_buffer_start_out	equ	_out_buffer+_start_out
86*09a5a243SRoy Oursler_out_buffer_next_out	equ	_out_buffer+_next_out
87*09a5a243SRoy Oursler_out_buffer_avail_out	equ	_out_buffer+_avail_out
88*09a5a243SRoy Oursler_out_buffer_total_out	equ	_out_buffer+_total_out
89*09a5a243SRoy Oursler
90*09a5a243SRoy Oursler_in_buffer_start	equ	_in_buffer+_start_in
91*09a5a243SRoy Oursler_in_buffer_next_in	equ	_in_buffer+_next_in
92*09a5a243SRoy Oursler_in_buffer_avail_in	equ	_in_buffer+_avail_in
93*09a5a243SRoy Oursler_in_buffer_read_in	equ	_in_buffer+_read_in
94*09a5a243SRoy Oursler_in_buffer_read_in_length	equ	_in_buffer+_read_in_length
95*09a5a243SRoy Oursler
96*09a5a243SRoy Oursler_lit_huff_code_small_code_lookup	equ	_lit_huff_code+_small_code_lookup
97*09a5a243SRoy Oursler_lit_huff_code_long_code_lookup		equ	_lit_huff_code+_long_code_lookup
98*09a5a243SRoy Oursler
99*09a5a243SRoy Oursler_dist_huff_code_small_code_lookup	equ	_dist_huff_code+_small_code_lookup
100*09a5a243SRoy Oursler_dist_huff_code_long_code_lookup	equ	_dist_huff_code+_long_code_lookup
101*09a5a243SRoy Oursler
102*09a5a243SRoy Oursler
103*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
104*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
105*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
106*09a5a243SRoy Oursler
107