def test_str_index(is16bit):
    # Store.
    state = new_state(rf0=0xffffffff, rf5=8, rf6=8)
    if is16bit:
        instr = opcode_factory.ldstrind16(rd=0, rn=5, rm=6, bb=0b10, s=1)
    else:
        instr = opcode_factory.ldstrind32(rd=0, rn=5, rm=6, sub=0, bb=0b10, s=1)
    name, executefn = decode(instr)
    executefn(state, Instruction(instr, None))
    expected_state = StateChecker(rf0=0xffffffff, rf5=8, rf6=8)
    expected_state.check(state, memory=[(16, 4, 0xffffffff)])
def test_ldr_index(is16bit):
    # Load.
    state = new_state(rf0=0, rf5=8, rf6=8)
    state.mem.write(16, 4, 0xFFFFFFFF)
    if is16bit:
        instr = opcode_factory.ldstrind16(rd=0, rn=5, rm=6, bb=0b10, s=0)
    else:
        instr = opcode_factory.ldstrind32(rd=0, rn=5, rm=6, sub=0, bb=0b10, s=0)
    name, executefn = decode(instr)
    executefn(state, Instruction(instr, None))
    expected_state = StateChecker(rf0=0xFFFFFFFF, rf5=8, rf6=8)
    expected_state.check(state)
示例#3
0
 ('lsrimm32',    opcode_factory.lsr32_immediate(rd=1, rn=1, imm=1)),
 ('lslimm32',    opcode_factory.lsl32_immediate(rd=1, rn=1, imm=1)),
 ('asrimm32',    opcode_factory.asr32_immediate(rd=1, rn=1, imm=1)),
 ('bitrimm32',   opcode_factory.bitr32_immediate(rd=1, rn=1, imm=1)),
 ('jr32',        opcode_factory.jr32(rn=0)),
 ('jr16',        opcode_factory.jr16(rn=0)),
 ('jalr32',      opcode_factory.jalr32(rn=0)),
 ('jalr16',      opcode_factory.jalr16(rn=0)),
 ('bcond32',     opcode_factory.bcond32(condition=0b1111, imm=0)),
 ('bcond16',     opcode_factory.bcond16(condition=0b1111, imm=0)),
 ('ldstrpmd32',  opcode_factory.ldstrpmd32(rd=1, rn=0, sub=1, imm=0b1010101010, bb=0b11, s=1)),
 ('ldstrdisp16', opcode_factory.ldstrdisp16(rd=1, rn=0, imm=0b010, bb=0b11, s=1)),
 ('ldstrdisp32', opcode_factory.ldstrdisp32(rd=1, rn=0, sub=1, imm=0b1010101010, bb=0b11, s=1)),
 ('ldstrpm16',   opcode_factory.ldstrpm16(rd=1, rn=0, rm=0, bb=0b11, s=1)),
 ('ldstrpm32',   opcode_factory.ldstrpm32(rd=1, rn=0, rm=0, sub=1, bb=0b11, s=1)),
 ('ldstrind16',  opcode_factory.ldstrind16(rd=1, rn=0, rm=0, bb=0b11, s=1)),
 ('ldstrind32',  opcode_factory.ldstrind32(rd=1, rn=0, rm=0, sub=1, bb=0b11, s=1)),
 ('testset32',   opcode_factory.testset32(rd=1, rn=0, rm=0, sub=1, bb=0b11)),
 ('fadd16',      opcode_factory.fadd16(rd=1, rn=0, rm=0)),
 ('fsub16',      opcode_factory.fsub16(rd=1, rn=0, rm=0)),
 ('fmul16',      opcode_factory.fmul16(rd=1, rn=0, rm=0)),
 ('fmadd16',     opcode_factory.fmadd16(rd=1, rn=0, rm=0)),
 ('fmsub16',     opcode_factory.fmsub16(rd=1, rn=0, rm=0)),
 ('float16',     opcode_factory.float16(rd=1, rn=0, rm=0)),
 ('fix16',       opcode_factory.fix16(rd=1, rn=0, rm=0)),
 ('fabs16',      opcode_factory.fabs16(rd=1, rn=0, rm=0)),
 ('fadd32',      opcode_factory.fadd32(rd=1, rn=0, rm=0)),
 ('fsub32',      opcode_factory.fsub32(rd=1, rn=0, rm=0)),
 ('fmul32',      opcode_factory.fmul32(rd=1, rn=0, rm=0)),
 ('fmadd32',     opcode_factory.fmadd32(rd=1, rn=0, rm=0)),
 ('fmsub32',     opcode_factory.fmsub32(rd=1, rn=0, rm=0)),