diff options
Diffstat (limited to 'deps/v8/test/cctest/test-disasm-mips.cc')
-rw-r--r-- | deps/v8/test/cctest/test-disasm-mips.cc | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/deps/v8/test/cctest/test-disasm-mips.cc b/deps/v8/test/cctest/test-disasm-mips.cc index 9a7d8ae431..b4f81ec3b1 100644 --- a/deps/v8/test/cctest/test-disasm-mips.cc +++ b/deps/v8/test/cctest/test-disasm-mips.cc @@ -97,7 +97,6 @@ if (failure) { \ V8_Fatal(__FILE__, __LINE__, "MIPS Disassembler tests failed.\n"); \ } - #define COMPARE_PC_REL_COMPACT(asm_, compare_string, offset) \ { \ int pc_offset = assm.pc_offset(); \ @@ -106,28 +105,28 @@ if (failure) { \ prev_instr_compact_branch = assm.IsPrevInstrCompactBranch(); \ if (prev_instr_compact_branch) { \ snprintf(str_with_address, sizeof(str_with_address), "%s -> %p", \ - compare_string, progcounter + 8 + (offset * 4)); \ + compare_string, \ + static_cast<void *>(progcounter + 8 + (offset * 4))); \ } else { \ snprintf(str_with_address, sizeof(str_with_address), "%s -> %p", \ - compare_string, progcounter + 4 + (offset * 4)); \ + compare_string, \ + static_cast<void *>(progcounter + 4 + (offset * 4))); \ } \ assm.asm_; \ if (!DisassembleAndCompare(progcounter, str_with_address)) failure = true; \ } - #define COMPARE_PC_REL(asm_, compare_string, offset) \ { \ int pc_offset = assm.pc_offset(); \ byte *progcounter = &buffer[pc_offset]; \ char str_with_address[100]; \ snprintf(str_with_address, sizeof(str_with_address), "%s -> %p", \ - compare_string, progcounter + (offset * 4)); \ + compare_string, static_cast<void *>(progcounter + (offset * 4))); \ assm.asm_; \ if (!DisassembleAndCompare(progcounter, str_with_address)) failure = true; \ } - #define COMPARE_PC_JUMP(asm_, compare_string, target) \ { \ int pc_offset = assm.pc_offset(); \ @@ -136,14 +135,13 @@ if (failure) { \ int instr_index = (target >> 2) & kImm26Mask; \ snprintf( \ str_with_address, sizeof(str_with_address), "%s %p -> %p", \ - compare_string, reinterpret_cast<byte *>(target), \ - reinterpret_cast<byte *>(((uint32_t)(progcounter + 4) & ~0xfffffff) | \ + compare_string, reinterpret_cast<void *>(target), \ + reinterpret_cast<void *>(((uint32_t)(progcounter + 4) & ~0xfffffff) | \ (instr_index << 2))); \ assm.asm_; \ if (!DisassembleAndCompare(progcounter, str_with_address)) failure = true; \ } - #define GET_PC_REGION(pc_region) \ { \ int pc_offset = assm.pc_offset(); \ @@ -780,6 +778,20 @@ TEST(Type0) { } if (IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) { + COMPARE(seb(a0, a1), "7c052420 seb a0, a1"); + COMPARE(seb(s6, s7), "7c17b420 seb s6, s7"); + COMPARE(seb(v0, v1), "7c031420 seb v0, v1"); + + COMPARE(seh(a0, a1), "7c052620 seh a0, a1"); + COMPARE(seh(s6, s7), "7c17b620 seh s6, s7"); + COMPARE(seh(v0, v1), "7c031620 seh v0, v1"); + + COMPARE(wsbh(a0, a1), "7c0520a0 wsbh a0, a1"); + COMPARE(wsbh(s6, s7), "7c17b0a0 wsbh s6, s7"); + COMPARE(wsbh(v0, v1), "7c0310a0 wsbh v0, v1"); + } + + if (IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) { COMPARE(ins_(a0, a1, 31, 1), "7ca4ffc4 ins a0, a1, 31, 1"); COMPARE(ins_(s6, s7, 30, 2), |