@LATTICE("BUFframebuffer where the next bits are retrieved. */ @LOC("IDX") private int wordpointer; /** * Number (0-31, from MSB to LSB) of next bit for get_bits() */ @LOC("IDX") private int bitindex; @LOC("V") private int main_data_begin; public int getMain_data_begin() { return main_data_begin; } public void setMain_data_begin(@LOC("IN") int main_data_begin) { this.main_data_begin = main_data_begin; } private static final int bitmask[] = { 0, // dummy 0x00000001, 0x00000003, 0x00000007, 0x0000000F, 0x0000001F, 0x0000003F, 0x0000007F, 0x000000FF, 0x000001FF, 0x000003FF, 0x000007FF, 0x00000FFF, 0x00001FFF, 0x00003FFF, 0x00007FFF, 0x0000FFFF, 0x0001FFFF }; @LATTICE("OUT>> 16) & 0x0000FFFF); returnvalue >>>= 48 - sum; // returnvalue >>= 16 - (number_of_bits - (32 // - bitindex)) returnvalue &= bitmask[number_of_bits]; bitindex = sum - 32; return returnvalue; } public void setBuffer(int idx, int value) { framebuffer[idx] = value; } }