Make write via waiting buf
This commit is contained in:
34
inc/instr.h
34
inc/instr.h
@@ -57,38 +57,4 @@ opcode_t extractOpcode(device_mem_t* devMem, prog_counter_t programCounter);
|
||||
|
||||
|
||||
|
||||
|
||||
#define READ_MEM(__tgt, __mem, __segno, __addr, __cell_t) \
|
||||
{\
|
||||
uint64_t __globalAddr = __mem->memsegShifts[__segno] + __addr; \
|
||||
if (__mem->smartAddrReadHandlers[__globalAddr].func != NULL) \
|
||||
{ \
|
||||
__tgt = *(__cell_t*)__mem->smartAddrReadHandlers[__globalAddr].func(__mem->smartAddrReadHandlers[__globalAddr].ident, __addr, __mem->rawCells + __mem->memsegShifts[__segno]); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
__tgt = ((__cell_t*)__mem->cells[__segno])[__addr]; \
|
||||
} \
|
||||
__mem->memreadCellAddrs[__mem->memreadLen] = __globalAddr; \
|
||||
__mem->memreadLen += 1; \
|
||||
}
|
||||
|
||||
#define WRITE_MEM(__mem, __segno, __addr, __cell_t, __val) \
|
||||
{ \
|
||||
uint64_t __globalAddr = __mem->memsegShifts[__segno] + __addr; \
|
||||
if (__mem->smartAddrWriteHandlers[__globalAddr].func != NULL) \
|
||||
{ \
|
||||
__cell_t __dat = (__cell_t)(__val); \
|
||||
__mem->smartAddrWriteHandlers[__globalAddr].func(__mem->smartAddrWriteHandlers[__globalAddr].ident, __addr, __mem->rawCells + __mem->memsegShifts[__segno], (void*)&__dat); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
((__cell_t*)__mem->cells[__segno])[__addr] = (__cell_t)(__val); \
|
||||
} \
|
||||
__mem->memwriteCellAddrs[__mem->memwriteLen] = __globalAddr; \
|
||||
__mem->memwriteLen += 1; \
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endif // ifndef __INSTR_H__
|
||||
Reference in New Issue
Block a user