| Index: src/mips/macro-assembler-mips.cc
|
| diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc
|
| index 3022f43a16916ecab9290895fc1783619da9c7ef..d5b4d5955deec61ebf2ef5fa05281e59305b9fcd 100644
|
| --- a/src/mips/macro-assembler-mips.cc
|
| +++ b/src/mips/macro-assembler-mips.cc
|
| @@ -509,6 +509,7 @@ void MacroAssembler::CheckAccessGlobalProxy(Register holder_reg,
|
| Register scratch,
|
| Label* miss) {
|
| Label same_contexts;
|
| + Register temporary = t8;
|
|
|
| DCHECK(!holder_reg.is(scratch));
|
| DCHECK(!holder_reg.is(at));
|
| @@ -521,9 +522,10 @@ void MacroAssembler::CheckAccessGlobalProxy(Register holder_reg,
|
| mov(at, fp);
|
| bind(&load_context);
|
| lw(scratch, MemOperand(at, CommonFrameConstants::kContextOrFrameTypeOffset));
|
| - JumpIfNotSmi(scratch, &has_context);
|
| + // Passing temporary register, otherwise JumpIfNotSmi modifies register at.
|
| + JumpIfNotSmi(scratch, &has_context, temporary);
|
| lw(at, MemOperand(at, CommonFrameConstants::kCallerFPOffset));
|
| - b(&load_context);
|
| + Branch(&load_context);
|
| bind(&has_context);
|
|
|
| // In debug mode, make sure the lexical context is set.
|
|
|