def test_execute_unimpl(): state = new_state() instr = opcode_factory.unimpl() name, executefn = decode(instr) executefn(state, Instruction(instr, None)) expected_state = StateChecker(EXCAUSE=0b0100) expected_state.check(state)
def test_execute_unimpl(): with pytest.raises(NotImplementedError): state = new_state() instr = opcode_factory.unimpl() name, executefn = decode(instr) executefn(state, Instruction(instr, None))
('movimm16', opcode_factory.movimm16(rd=0b1111, imm=0)), ('movfs32', opcode_factory.movfs32(rn=0b110, rd='IRET')), ('movfs16', opcode_factory.movfs16(rn=0b110, rd='IRET')), ('movts32', opcode_factory.movts32(rn='IRET', rd=0b011)), ('movts16', opcode_factory.movts16(rn='IRET', rd=0)), ('gie16', opcode_factory.gie16()), ('gid16', opcode_factory.gid16()), ('nop16', opcode_factory.nop16()), ('idle16', opcode_factory.idle16()), ('bkpt16', opcode_factory.bkpt16()), ('mbkpt16', opcode_factory.mbkpt16()), ('sync16', opcode_factory.sync16()), ('rti16', opcode_factory.rti16()), ('wand16', opcode_factory.wand16()), ('trap16', opcode_factory.trap16(trap=0b111111)), ('unimpl', opcode_factory.unimpl()), ]) def test_decode(name, instr): decoded_name, _ = decode(instr) assert decoded_name == name def test_bit32_imm(): instr = Instruction(opcode_factory.bitr32_immediate(rd=0b110110, rn=0b101101, imm=0b11111), None) assert instr.imm5 == 0b11111 assert instr.rd == 0b110110 assert instr.rn == 0b101101 instr = Instruction(opcode_factory.lsr32_immediate(rd=0, rn=0, imm=0b01011), None) assert instr.imm5 == 0b01011