Index: src/builtins/s390/builtins-s390.cc |
diff --git a/src/builtins/s390/builtins-s390.cc b/src/builtins/s390/builtins-s390.cc |
index c32acdc1ca7293f7555eb69fa6250f1af9194c65..ea9255aa02eb03baf8f2b4b58276db7fc537a892 100644 |
--- a/src/builtins/s390/builtins-s390.cc |
+++ b/src/builtins/s390/builtins-s390.cc |
@@ -1502,9 +1502,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); |