diff options
Diffstat (limited to 'src/ymh15/test_mips_ymh15.cpp')
-rw-r--r-- | src/ymh15/test_mips_ymh15.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/ymh15/test_mips_ymh15.cpp b/src/ymh15/test_mips_ymh15.cpp index c2fb588..99be82d 100644 --- a/src/ymh15/test_mips_ymh15.cpp +++ b/src/ymh15/test_mips_ymh15.cpp @@ -53,6 +53,19 @@ int check_error(mips_error err, mips_error expected_err) { return 0; } +int check_mem(mips_mem_h mem, uint32_t addr, uint32_t length, uint32_t check_value) { + uint32_t mem_value = 0; + mips_mem_read(mem, addr, length, (uint8_t*)&mem_value); + if(length == 2) + mem_value = ((mem_value<<8)&0xff00) | mem_value>>8; + else if(length == 4) + change_endianness(mem_value); + if(mem_value == check_value) + return 1; + printf("At mem[%#10x]: %#10x\tExpected value: %#10x\n", addr, mem_value, check_value); + return 0; +} + mips_error set_instruction(mips_mem_h mem, mips_cpu_h state, uint32_t mem_location, uint32_t src1, uint32_t src2, uint32_t dest, uint32_t shift, uint32_t function) { uint32_t inst; mips_error err; |