Index: src/builtins/ppc/builtins-ppc.cc |
diff --git a/src/builtins/ppc/builtins-ppc.cc b/src/builtins/ppc/builtins-ppc.cc |
index b4aef8ead1d487ca756ed10e203b58687981f4d4..720acac962ca99a5d95c45b831427260fca28ed0 100644 |
--- a/src/builtins/ppc/builtins-ppc.cc |
+++ b/src/builtins/ppc/builtins-ppc.cc |
@@ -1456,13 +1456,14 @@ void Builtins::Generate_CompileLazy(MacroAssembler* masm) { |
SharedFunctionInfo::kMarkedForTierUpByteOffset)); |
__ TestBit(r8, SharedFunctionInfo::kMarkedForTierUpBitWithinByte, r0); |
__ bne(&gotta_call_runtime, cr0); |
- // Is the full code valid? |
+ |
+ // If SFI points to anything other than CompileLazy, install that. |
__ LoadP(entry, FieldMemOperand(entry, SharedFunctionInfo::kCodeOffset)); |
- __ lwz(r8, FieldMemOperand(entry, Code::kFlagsOffset)); |
- __ DecodeField<Code::KindField>(r8); |
- __ cmpi(r8, Operand(Code::BUILTIN)); |
+ __ mov(r8, Operand(masm->CodeObject())); |
+ __ cmp(entry, r8); |
__ beq(&gotta_call_runtime); |
- // Yes, install the full code. |
+ |
+ // Install the SFI's code entry. |
__ addi(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag)); |
__ StoreP(entry, FieldMemOperand(closure, JSFunction::kCodeEntryOffset), r0); |
__ RecordWriteCodeEntryField(closure, entry, r8); |