diff options
Diffstat (limited to 'deps/v8/src/execution/mips64/simulator-mips64.cc')
-rw-r--r-- | deps/v8/src/execution/mips64/simulator-mips64.cc | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/deps/v8/src/execution/mips64/simulator-mips64.cc b/deps/v8/src/execution/mips64/simulator-mips64.cc index d45889e5a2..f628653900 100644 --- a/deps/v8/src/execution/mips64/simulator-mips64.cc +++ b/deps/v8/src/execution/mips64/simulator-mips64.cc @@ -159,7 +159,6 @@ bool MipsDebugger::GetValue(const char* desc, int64_t* value) { } else { return SScanF(desc, "%" SCNu64, reinterpret_cast<uint64_t*>(value)) == 1; } - return false; } bool MipsDebugger::SetBreakpoint(Instruction* breakpc) { @@ -2039,7 +2038,6 @@ double Simulator::ReadD(int64_t addr, Instruction* instr) { PrintF("Unaligned (double) read at 0x%08" PRIx64 " , pc=0x%08" V8PRIxPTR "\n", addr, reinterpret_cast<intptr_t>(instr)); base::OS::Abort(); - return 0; } void Simulator::WriteD(int64_t addr, double value, Instruction* instr) { @@ -2330,7 +2328,6 @@ void Simulator::SoftwareInterrupt() { break; default: UNREACHABLE(); - break; } } switch (redirection->type()) { @@ -2365,7 +2362,6 @@ void Simulator::SoftwareInterrupt() { } default: UNREACHABLE(); - break; } if (::v8::internal::FLAG_trace_sim) { switch (redirection->type()) { @@ -2379,7 +2375,6 @@ void Simulator::SoftwareInterrupt() { break; default: UNREACHABLE(); - break; } } } else if (redirection->type() == ExternalReference::DIRECT_API_CALL) { @@ -4404,7 +4399,6 @@ void Simulator::DecodeTypeRegisterSPECIAL3() { default: alu_out = 0x12345678; UNREACHABLE(); - break; } break; } @@ -4503,7 +4497,6 @@ void Simulator::DecodeTypeRegisterSPECIAL3() { default: alu_out = 0x12345678; UNREACHABLE(); - break; } break; } @@ -4542,7 +4535,6 @@ int Simulator::DecodeMsaDataFormat() { break; default: UNREACHABLE(); - break; } } else { int DF[] = {MSA_BYTE, MSA_HALF, MSA_WORD, MSA_DWORD}; @@ -4587,7 +4579,6 @@ int Simulator::DecodeMsaDataFormat() { break; default: UNREACHABLE(); - break; } } return df; @@ -4967,7 +4958,6 @@ void Simulator::DecodeTypeMsaELM() { case SPLATI: case INSVE: UNIMPLEMENTED(); - break; default: UNREACHABLE(); } @@ -7187,7 +7177,6 @@ void Simulator::DecodeTypeImmediate() { } default: UNREACHABLE(); - break; } break; } @@ -7273,7 +7262,6 @@ void Simulator::DecodeTypeImmediate() { break; default: UNREACHABLE(); - break; } break; default: @@ -7297,13 +7285,15 @@ void Simulator::DecodeTypeImmediate() { // Type 3: instructions using a 26 bytes immediate. (e.g. j, jal). void Simulator::DecodeTypeJump() { - SimInstruction simInstr = instr_; + // instr_ will be overwritten by BranchDelayInstructionDecode(), so we save + // the result of IsLinkingInstruction now. + bool isLinkingInstr = instr_.IsLinkingInstruction(); // Get current pc. int64_t current_pc = get_pc(); // Get unchanged bits of pc. int64_t pc_high_bits = current_pc & 0xFFFFFFFFF0000000; // Next pc. - int64_t next_pc = pc_high_bits | (simInstr.Imm26Value() << 2); + int64_t next_pc = pc_high_bits | (instr_.Imm26Value() << 2); // Execute branch delay slot. // We don't check for end_sim_pc. First it should not be met as the current pc @@ -7314,7 +7304,7 @@ void Simulator::DecodeTypeJump() { // Update pc and ra if necessary. // Do this after the branch delay execution. - if (simInstr.IsLinkingInstruction()) { + if (isLinkingInstr) { set_register(31, current_pc + 2 * kInstrSize); } set_pc(next_pc); |