| Index: src/mips64/macro-assembler-mips64.h
|
| diff --git a/src/mips64/macro-assembler-mips64.h b/src/mips64/macro-assembler-mips64.h
|
| index 323e0908b789c321cc82e2758d793b35f4b128b0..37fcdf7228369eb513984d3173fda0a1278a2b4a 100644
|
| --- a/src/mips64/macro-assembler-mips64.h
|
| +++ b/src/mips64/macro-assembler-mips64.h
|
| @@ -1941,13 +1941,15 @@ void MacroAssembler::GenerateSwitchTable(Register index, size_t case_count,
|
| ld(at, MemOperand(at));
|
| } else {
|
| Label here;
|
| - BlockTrampolinePoolFor(static_cast<int>(case_count) * 2 + 7);
|
| + BlockTrampolinePoolFor(static_cast<int>(case_count) * 2 + 11);
|
| Align(8);
|
| + push(ra);
|
| bal(&here);
|
| dsll(at, index, kPointerSizeLog2); // Branch delay slot.
|
| bind(&here);
|
| daddu(at, at, ra);
|
| - ld(at, MemOperand(at, 4 * v8::internal::Assembler::kInstrSize));
|
| + pop(ra);
|
| + ld(at, MemOperand(at, 6 * v8::internal::Assembler::kInstrSize));
|
| }
|
| jr(at);
|
| nop(); // Branch delay slot nop.
|
|
|