Index: src/builtins/x87/builtins-x87.cc |
diff --git a/src/builtins/x87/builtins-x87.cc b/src/builtins/x87/builtins-x87.cc |
index e4762d16ed51f6ef60d13f7a70e544582b006c38..5a90e6cf134896c1160214a1ff7425d43ea372be 100644 |
--- a/src/builtins/x87/builtins-x87.cc |
+++ b/src/builtins/x87/builtins-x87.cc |
@@ -1123,14 +1123,14 @@ void Builtins::Generate_CompileLazy(MacroAssembler* masm) { |
__ test_b(FieldOperand(entry, SharedFunctionInfo::kMarkedForTierUpByteOffset), |
Immediate(1 << SharedFunctionInfo::kMarkedForTierUpBitWithinByte)); |
__ j(not_zero, &gotta_call_runtime_no_stack); |
- // Is the full code valid? |
+ |
+ // If SFI points to anything other than CompileLazy, install that. |
__ mov(entry, FieldOperand(entry, SharedFunctionInfo::kCodeOffset)); |
- __ mov(ebx, FieldOperand(entry, Code::kFlagsOffset)); |
- __ and_(ebx, Code::KindField::kMask); |
- __ shr(ebx, Code::KindField::kShift); |
- __ cmp(ebx, Immediate(Code::BUILTIN)); |
+ __ Move(ebx, masm->CodeObject()); |
+ __ cmp(entry, ebx); |
__ j(equal, &gotta_call_runtime_no_stack); |
- // Yes, install the full code. |
+ |
+ // Install the SFI's code entry. |
__ lea(entry, FieldOperand(entry, Code::kHeaderSize)); |
__ mov(FieldOperand(closure, JSFunction::kCodeEntryOffset), entry); |
__ RecordWriteCodeEntryField(closure, entry, ebx); |