def test_pack_unpack_conflict(): assert_raises(AssembleError, assemble, pack_conflict_1) assert_raises(AssembleError, assemble, pack_conflict_2) assert_raises(AssembleError, assemble, unpack_conflict) assert_raises(AssembleError, assemble, pack_unpack_conflict_1) assert_raises(AssembleError, assemble, pack_unpack_conflict_2) assemble(pack_unpack_not_conflict_1) # no throw assemble(pack_unpack_not_conflict_2) # no throw
def program(self, program, *args, **kwargs): if hasattr(program, '__call__'): program = assemble(program, *args, **kwargs) code = memoryview(program).tobytes() arr = self.ctlmem.alloc('code', shape = int(ceil(len(code) / 8.0)), dtype = np.uint64) arr.buffer[arr.offset:arr.offset+len(code)] = code return Program(arr.address, arr.usraddr, code, len(code))
def program(self, program, *args, **kwargs): if hasattr(program, '__call__'): program = assemble(program, *args, **kwargs) code = memoryview(program).tobytes() if self.code_pos + len(code) > self.data_area_base: raise DriverError('Program too long') code_addr = self.memory.baseaddr + self.code_pos self.memory.base[self.code_pos:self.code_pos+len(code)] = code self.code_pos += len(code) return Program(code_addr, code)
def test_invalid_rotate_as_simm(): assemble(invalid_rotate_as_simm)
def test_invalid_rotate_insn(): assemble(invalid_rotate_insn)
def test_missing_args3(): assert (assemble (missing_args3))