Index: src/builtins/arm/builtins-arm.cc |
diff --git a/src/builtins/arm/builtins-arm.cc b/src/builtins/arm/builtins-arm.cc |
index a60ab391a9c7e599f376cd8e2e6aebddfbbccefb..2fd8541bea682554db65e54e2a520af021fd6fe8 100644 |
--- a/src/builtins/arm/builtins-arm.cc |
+++ b/src/builtins/arm/builtins-arm.cc |
@@ -1442,14 +1442,14 @@ void Builtins::Generate_CompileLazy(MacroAssembler* masm) { |
SharedFunctionInfo::kMarkedForTierUpByteOffset)); |
__ tst(r5, Operand(1 << SharedFunctionInfo::kMarkedForTierUpBitWithinByte)); |
__ b(ne, &gotta_call_runtime_no_stack); |
- // Is the full code valid? |
+ |
+ // If SFI points to anything other than CompileLazy, install that. |
__ ldr(entry, FieldMemOperand(entry, SharedFunctionInfo::kCodeOffset)); |
- __ ldr(r5, FieldMemOperand(entry, Code::kFlagsOffset)); |
- __ and_(r5, r5, Operand(Code::KindField::kMask)); |
- __ mov(r5, Operand(r5, LSR, Code::KindField::kShift)); |
- __ cmp(r5, Operand(Code::BUILTIN)); |
+ __ Move(r5, masm->CodeObject()); |
+ __ cmp(entry, r5); |
__ b(eq, &gotta_call_runtime_no_stack); |
- // Yes, install the full code. |
+ |
+ // Install the SFI's code entry. |
__ add(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag)); |
__ str(entry, FieldMemOperand(closure, JSFunction::kCodeEntryOffset)); |
__ RecordWriteCodeEntryField(closure, entry, r5); |