Index: src/builtins/s390/builtins-s390.cc |
diff --git a/src/builtins/s390/builtins-s390.cc b/src/builtins/s390/builtins-s390.cc |
index a2eab5b58eca91a630aaccd98491e1fe4fc378a5..5e33695925ac056e7669a77013d3ad0943383f08 100644 |
--- a/src/builtins/s390/builtins-s390.cc |
+++ b/src/builtins/s390/builtins-s390.cc |
@@ -1503,9 +1503,16 @@ void Builtins::Generate_CompileLazy(MacroAssembler* masm) { |
__ b(&gotta_call_runtime); |
__ bind(&try_shared); |
- // Is the full code valid? |
__ LoadP(entry, |
FieldMemOperand(closure, JSFunction::kSharedFunctionInfoOffset)); |
+ // Is the shared function marked for optimization? |
+ __ LoadlB(temp, FieldMemOperand( |
+ entry, |
+ SharedFunctionInfo::kWasMarkedForOptimizationByteOffset)); |
+ __ TestBit(temp, SharedFunctionInfo::kWasMarkedForOptimizationBitWithinByte, |
+ r0); |
+ __ bne(&gotta_call_runtime); |
+ // Is the full code valid? |
__ LoadP(entry, FieldMemOperand(entry, SharedFunctionInfo::kCodeOffset)); |
__ LoadlW(r7, FieldMemOperand(entry, Code::kFlagsOffset)); |
__ DecodeField<Code::KindField>(r7); |