116 #if (defined( __GNUC__ ) && defined( __amd64__ ) && ! defined( __i386 )) || (defined(_MSC_VER) && defined(_M_AMD64))
117 #define PAD_AVAIL_IN 6
118 #define PAD_AVAIL_OUT 258
120 #define PAD_AVAIL_IN 5
121 #define PAD_AVAIL_OUT 257
127 ar.
in = strm->next_in;
128 ar.
last = ar.
in + (strm->avail_in - PAD_AVAIL_IN);
129 ar.
out = strm->next_out;
130 ar.
beg = ar.
out - (start - strm->avail_out);
131 ar.
end = ar.
out + (strm->avail_out - PAD_AVAIL_OUT);
146 while (((
size_t)(
void *)ar.
in & (
sizeof(ar.
hold) / 2 - 1)) != 0) {
147 ar.
hold += (
unsigned long)*ar.
in++ << ar.
bits;
155 strm->msg =
"invalid literal/length code";
157 strm->msg =
"invalid distance code";
159 strm->msg =
"invalid distance too far back";
162 else if ( ar.
status == 1 ) {
173 strm->next_in = ar.
in;
174 strm->next_out = ar.
out;
175 strm->avail_in = (unsigned)(ar.
in < ar.
last ?
176 PAD_AVAIL_IN + (ar.
last - ar.
in) :
177 PAD_AVAIL_IN - (ar.
in - ar.
last));
178 strm->avail_out = (unsigned)(ar.
out < ar.
end ?
179 PAD_AVAIL_OUT + (ar.
end - ar.
out) :
180 PAD_AVAIL_OUT - (ar.
out - ar.
end));
181 state->
hold = (
unsigned long)ar.
hold;