def from_bitarray(instr, processor): imm8 = substring(instr, 7, 0) imm3 = substring(instr, 14, 12) rn = substring(instr, 19, 16) i = bit_at(instr, 26) imm32 = thumb_expand_imm(chain(i, chain(imm3, imm8, 8), 11)) if rn == 15: print('unpredictable') else: return CmpImmediateT2(instr, n=rn, imm32=imm32)
def from_bitarray(instr, processor): imm8 = substring(instr, 7, 0) rd = substring(instr, 11, 8) imm3 = substring(instr, 14, 12) setflags = bit_at(instr, 20) i = bit_at(instr, 26) imm32 = thumb_expand_imm(chain(i, chain(imm3, imm8, 8), 11)) if rd == 15 and not setflags: print('unpredictable') else: return SubSpMinusImmediateT2(instr, setflags=setflags, d=rd, imm32=imm32)
def from_bitarray(instr, processor): imm8 = substring(instr, 7, 0) rd = substring(instr, 11, 8) imm3 = substring(instr, 14, 12) rn = substring(instr, 19, 16) setflags = bit_at(instr, 20) i = bit_at(instr, 26) imm32 = thumb_expand_imm(chain(i, chain(imm3, imm8, 8), 11)) if rd in (13, 15) or rn in (13, 15): print('unpredictable') else: return SbcImmediateT1(instr, setflags=setflags, d=rd, n=rn, imm32=imm32)