| Index: src/mips/macro-assembler-mips.h
|
| diff --git a/src/mips/macro-assembler-mips.h b/src/mips/macro-assembler-mips.h
|
| index 33064e6e42166af88df4a2aa6b8e8b9ac24840e3..e92eb9ec4ebf95260a631e64bca45b49754a97cc 100644
|
| --- a/src/mips/macro-assembler-mips.h
|
| +++ b/src/mips/macro-assembler-mips.h
|
| @@ -1778,12 +1778,14 @@ void MacroAssembler::GenerateSwitchTable(Register index, size_t case_count,
|
| lw(at, MemOperand(at));
|
| } else {
|
| Label here;
|
| - BlockTrampolinePoolFor(case_count + 6);
|
| + BlockTrampolinePoolFor(case_count + 10);
|
| + push(ra);
|
| bal(&here);
|
| sll(at, index, kPointerSizeLog2); // Branch delay slot.
|
| bind(&here);
|
| addu(at, at, ra);
|
| - lw(at, MemOperand(at, 4 * v8::internal::Assembler::kInstrSize));
|
| + pop(ra);
|
| + lw(at, MemOperand(at, 6 * v8::internal::Assembler::kInstrSize));
|
| }
|
| jr(at);
|
| nop(); // Branch delay slot nop.
|
|
|