| Index: src/crankshaft/mips/lithium-codegen-mips.cc
|
| diff --git a/src/crankshaft/mips/lithium-codegen-mips.cc b/src/crankshaft/mips/lithium-codegen-mips.cc
|
| index 8be7d297d469ef0d2c875048c1e0b1f0abb91b29..ba3fc213ba1b023819642e60430733ad51ed612c 100644
|
| --- a/src/crankshaft/mips/lithium-codegen-mips.cc
|
| +++ b/src/crankshaft/mips/lithium-codegen-mips.cc
|
| @@ -372,9 +372,21 @@ bool LCodeGen::GenerateJumpTable() {
|
| }
|
|
|
| // Add the base address to the offset previously loaded in entry_offset.
|
| - __ Addu(entry_offset, entry_offset,
|
| - Operand(ExternalReference::ForDeoptEntry(base)));
|
| - __ Jump(entry_offset);
|
| + if (IsMipsArchVariant(kMips32r6)) {
|
| + uint32_t lui_offset, jic_offset;
|
| + Assembler::UnpackTargetAddressUnsigned(
|
| + Operand(ExternalReference::ForDeoptEntry(base)).immediate(),
|
| + lui_offset, jic_offset);
|
| + masm()->RecordRelocInfo(
|
| + RelocInfo::EXTERNAL_REFERENCE,
|
| + Operand(ExternalReference::ForDeoptEntry(base)).immediate());
|
| + __ aui(entry_offset, entry_offset, lui_offset);
|
| + __ Jump(entry_offset, jic_offset);
|
| + } else {
|
| + __ Addu(entry_offset, entry_offset,
|
| + Operand(ExternalReference::ForDeoptEntry(base)));
|
| + __ Jump(entry_offset);
|
| + }
|
| }
|
| __ RecordComment("]");
|
|
|
|
|