Lines Matching refs:lzma
1413 * including lzma.pos_mask are in the first 128 bytes on x86-32,
1422 struct lzma_dec lzma;
1717 uint32_t low = prev_byte >> (8 - s->lzma.lc);
1718 uint32_t high = (s->dict.pos & s->lzma.literal_pos_mask) << s->lzma.lc;
1719 return s->lzma.literal[low + high];
1734 if (lzma_state_is_literal(s->lzma.state)) {
1738 match_byte = dict_get(&s->dict, s->lzma.rep0) << 1;
1757 lzma_state_literal(&s->lzma.state);
1760 /* Decode the length of the match into s->lzma.len. */
1770 s->lzma.len = MATCH_LEN_MIN;
1775 s->lzma.len = MATCH_LEN_MIN + LEN_LOW_SYMBOLS;
1779 s->lzma.len = MATCH_LEN_MIN + LEN_LOW_SYMBOLS
1784 s->lzma.len += rc_bittree(&s->rc, probs, limit) - limit;
1787 /* Decode a match. The distance will be stored in s->lzma.rep0. */
1794 lzma_state_match(&s->lzma.state);
1796 s->lzma.rep3 = s->lzma.rep2;
1797 s->lzma.rep2 = s->lzma.rep1;
1798 s->lzma.rep1 = s->lzma.rep0;
1800 lzma_len(s, &s->lzma.match_len_dec, pos_state);
1802 probs = s->lzma.dist_slot[lzma_get_dist_state(s->lzma.len)];
1806 s->lzma.rep0 = dist_slot;
1809 s->lzma.rep0 = 2 + (dist_slot & 1);
1812 s->lzma.rep0 <<= limit;
1813 probs = s->lzma.dist_special + s->lzma.rep0
1816 &s->lzma.rep0, limit);
1818 rc_direct(&s->rc, &s->lzma.rep0, limit - ALIGN_BITS);
1819 s->lzma.rep0 <<= ALIGN_BITS;
1820 rc_bittree_reverse(&s->rc, s->lzma.dist_align,
1821 &s->lzma.rep0, ALIGN_BITS);
1828 * seen matches. The distance will be stored in s->lzma.rep0.
1834 if (!rc_bit(&s->rc, &s->lzma.is_rep0[s->lzma.state])) {
1835 if (!rc_bit(&s->rc, &s->lzma.is_rep0_long[
1836 s->lzma.state][pos_state])) {
1837 lzma_state_short_rep(&s->lzma.state);
1838 s->lzma.len = 1;
1842 if (!rc_bit(&s->rc, &s->lzma.is_rep1[s->lzma.state])) {
1843 tmp = s->lzma.rep1;
1845 if (!rc_bit(&s->rc, &s->lzma.is_rep2[s->lzma.state])) {
1846 tmp = s->lzma.rep2;
1848 tmp = s->lzma.rep3;
1849 s->lzma.rep3 = s->lzma.rep2;
1852 s->lzma.rep2 = s->lzma.rep1;
1855 s->lzma.rep1 = s->lzma.rep0;
1856 s->lzma.rep0 = tmp;
1859 lzma_state_long_rep(&s->lzma.state);
1860 lzma_len(s, &s->lzma.rep_len_dec, pos_state);
1872 if (dict_has_space(&s->dict) && s->lzma.len > 0)
1873 dict_repeat(&s->dict, &s->lzma.len, s->lzma.rep0);
1880 pos_state = s->dict.pos & s->lzma.pos_mask;
1882 if (!rc_bit(&s->rc, &s->lzma.is_match[
1883 s->lzma.state][pos_state])) {
1886 if (rc_bit(&s->rc, &s->lzma.is_rep[s->lzma.state]))
1891 if (!dict_repeat(&s->dict, &s->lzma.len, s->lzma.rep0))
1914 s->lzma.state = STATE_LIT_LIT;
1915 s->lzma.rep0 = 0;
1916 s->lzma.rep1 = 0;
1917 s->lzma.rep2 = 0;
1918 s->lzma.rep3 = 0;
1929 probs = s->lzma.is_match[0];
1946 s->lzma.pos_mask = 0;
1949 ++s->lzma.pos_mask;
1952 s->lzma.pos_mask = (1 << s->lzma.pos_mask) - 1;
1954 s->lzma.literal_pos_mask = 0;
1957 ++s->lzma.literal_pos_mask;
1960 s->lzma.lc = props;
1962 if (s->lzma.lc + s->lzma.literal_pos_mask > 4)
1965 s->lzma.literal_pos_mask = (1 << s->lzma.literal_pos_mask) - 1;
2215 if (s->lzma2.compressed > 0 || s->lzma.len > 0
2280 s->lzma.len = 0;