def test_execute_gie16():
    state = new_state(rfSTATUS=0b10)
    instr = opcode_factory.gie16()
    name, executefn = decode(instr)
    executefn(state, Instruction(instr, None))
    expected_state = StateChecker(GID=False)
    expected_state.check(state)
Exemple #2
0
def test_sim_all_16bit():
    instructions = [ (opcode_factory.gie16(), 16),
                     (opcode_factory.gid16(), 16),
                     (opcode_factory.idle16(), 16),
                     (opcode_factory.bkpt16(), 16),
                   ]
    epiphany = MockEpiphany()
    epiphany.init_state(instructions)
    assert epiphany.state.running
    epiphany.run()
    expected_state = StateChecker(pc=(8 + RESET_ADDR))
    expected_state.check(epiphany.state)
    assert not epiphany.state.running
Exemple #3
0
def test_sim_all_16bit():
    instructions = [ (opcode_factory.gie16(), 16),
                     (opcode_factory.gid16(), 16),
                     (opcode_factory.trap16(3), 16),
                   ]
    revelation = MockRevelation()
    revelation.init_state(instructions)
    assert revelation.states[0x808].running
    exit_code, ticks = revelation.run()
    expected_state = StateChecker(pc=(6 + RESET_ADDR))
    expected_state.check(revelation.states[0x808])
    assert EXIT_SUCCESS == exit_code
    assert len(instructions) == ticks
    assert not revelation.states[0x808].running
Exemple #4
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)),
                          ('float32',     opcode_factory.float32(rd=1, rn=0, rm=0)),
                          ('fix32',       opcode_factory.fix32(rd=1, rn=0, rm=0)),
                          ('fabs32',      opcode_factory.fabs32(rd=1, rn=0, rm=0)),
                          ('movcond32',   opcode_factory.movcond32(condition=0b0000, rd=0, rn=0)),
                          ('movcond16',   opcode_factory.movcond16(condition=0b0000, rd=0, rn=0)),
                          ('movtimm32',   opcode_factory.movtimm32(rd=0b1111, imm=0)),
                          ('movimm32',    opcode_factory.movimm32(rd=0b1111, imm=0)),
                          ('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