aboutsummaryrefslogtreecommitdiffstats
path: root/src/ymh15/test_mips_ymh15.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ymh15/test_mips_ymh15.cpp')
-rw-r--r--src/ymh15/test_mips_ymh15.cpp13
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;