示例#1
0
def test_sub16_neg_imm():
    state = new_state(rf2=0, rf1=0)
    bits = opcode_factory.sub16_immediate(rd=2, rn=1, imm=0b111)
    name, executefn = decode(bits)
    instr = Instruction(bits, '')
    assert instr.rd == 2
    assert instr.rn == 1
    assert instr.imm3 == 0b111
    executefn(state, instr)
    expected_state = StateChecker(rf2=1, rf1=0)
    expected_state.check(state)
示例#2
0
import pytest

@pytest.mark.parametrize('name,instr',
                         [('add32',       opcode_factory.add32(rd=0, rn=0, rm=0)),
                          ('add16',       opcode_factory.add16(rd=0, rn=0, rm=0)),
                          ('add32',       opcode_factory.add32(rd=1, rn=1, rm=1)),
                          ('add16',       opcode_factory.add16(rd=1, rn=1, rm=1)),
                          ('sub32',       opcode_factory.sub32(rd=0, rn=0, rm=0)),
                          ('sub16',       opcode_factory.sub16(rd=0, rn=0, rm=0)),
                          ('sub32',       opcode_factory.sub32(rd=1, rn=1, rm=1)),
                          ('sub16',       opcode_factory.sub16(rd=1, rn=1, rm=1)),
                          ('add32',       opcode_factory.add32_immediate(rd=1, rn=0, imm=0b01010101010)),
                          ('add16',       opcode_factory.add16_immediate(rd=1, rn=0, imm=0b0101)),
                          ('sub32',       opcode_factory.sub32_immediate(rd=1, rn=0, imm=0b01010101010)),
                          ('sub16',       opcode_factory.sub16_immediate(rd=1, rn=0, imm=0b0101)),
                          ('and32',       opcode_factory.and32(rd=1, rn=1, rm=1)),
                          ('and16',       opcode_factory.and16(rd=1, rn=1, rm=1)),
                          ('orr32',       opcode_factory.orr32(rd=1, rn=1, rm=1)),
                          ('orr16',       opcode_factory.orr16(rd=1, rn=1, rm=1)),
                          ('eor32',       opcode_factory.eor32(rd=1, rn=1, rm=1)),
                          ('eor16',       opcode_factory.eor16(rd=1, rn=1, rm=1)),
                          ('asr32',       opcode_factory.asr32(rd=1, rn=1, rm=1)),
                          ('asr16',       opcode_factory.asr16(rd=1, rn=1, rm=1)),
                          ('lsr32',       opcode_factory.lsr32(rd=1, rn=1, rm=1)),
                          ('lsr16',       opcode_factory.lsr16(rd=1, rn=1, rm=1)),
                          ('lsl32',       opcode_factory.lsl32(rd=1, rn=1, rm=1)),
                          ('lsl16',       opcode_factory.lsl16(rd=1, rn=1, rm=1)),
                          ('lsrimm16',    opcode_factory.lsr16_immediate(rd=1, rn=1, imm=1)),
                          ('lslimm16',    opcode_factory.lsl16_immediate(rd=1, rn=1, imm=1)),
                          ('asrimm16',    opcode_factory.asr16_immediate(rd=1, rn=1, imm=1)),