state.compiling(false);
cell = state.pop();
- dcell = (cell - state.dict.latest()) << 6;
- if (dcell > (((1 << (sizeof(Cell) * 8 - 6)) - 1) << 6)) {
+ dcell = cell - state.dict.latest();
+ if (dcell > (1 << (sizeof(Cell) * 8 - 6)) - 1) {
state.dict.write(cell,
(state.dict.read(cell) & 0x1F) | static_cast<Cell>(((1 << (sizeof(Cell) * 8 - 6)) - 1) << 6));
- state.dict.write(static_cast<Addr>(cell) + sizeof(Cell), static_cast<Cell>(dcell >> 6));
+ state.dict.write(static_cast<Addr>(cell) + sizeof(Cell), static_cast<Cell>(dcell));
} else {
state.dict.write(cell,
- (state.dict.read(cell) & 0x1F) | static_cast<Cell>(dcell));
+ (state.dict.read(cell) & 0x1F) | static_cast<Cell>(dcell << 6));
}
state.dict.latest(cell);
break;