At this phase, knowing that the length is 16bit and the mode is either 10b or 16b, further analysis is required to determine if the 16bit.immediate encoding is active, and so on. This is a fully combinatorial block that **at no time** steps outside of the strict bounds already determined by Phase 1.
+ op_001_1 = insn[5:8] != 0b001.1
if mode == 10bit:
decode_10bit(insn)
elif mode == 16bit:
- if N == 1 & M == 1 & insn[5:8] != 0b001.1
+ if N == 1 & M == 1 & op_001_1
decode_16bit_immed_mode(insn)
+ if op_001_1:
+ decode_16bit_cr_or_sys(insn)
else:
# see immediate opcodes table
decode_16bit_nonimmed_mode(insn)