| Index: src/arm64/full-codegen-arm64.cc
|
| diff --git a/src/arm64/full-codegen-arm64.cc b/src/arm64/full-codegen-arm64.cc
|
| index 49ccd9580512d701ffd48bc1c1657cba986f3c07..ad363e58ade1fa2f339f91e4f94a1308949fed66 100644
|
| --- a/src/arm64/full-codegen-arm64.cc
|
| +++ b/src/arm64/full-codegen-arm64.cc
|
| @@ -1401,9 +1401,7 @@ void FullCodeGenerator::EmitLoadGlobalCheckExtensions(VariableProxy* proxy,
|
| Smi::FromInt(proxy->VariableFeedbackSlot()));
|
| }
|
|
|
| - ContextualMode mode = (typeof_state == INSIDE_TYPEOF) ? NOT_CONTEXTUAL
|
| - : CONTEXTUAL;
|
| - CallLoadIC(mode);
|
| + CallLoadIC(typeof_state);
|
| }
|
|
|
|
|
| @@ -1485,7 +1483,7 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy) {
|
| __ Mov(LoadIC::SlotRegister(),
|
| Smi::FromInt(proxy->VariableFeedbackSlot()));
|
| }
|
| - CallLoadIC(CONTEXTUAL);
|
| + CallLoadIC(NOT_INSIDE_TYPEOF);
|
| context()->Plug(x0);
|
| break;
|
| }
|
| @@ -1963,9 +1961,9 @@ void FullCodeGenerator::EmitNamedPropertyLoad(Property* prop) {
|
| if (FLAG_vector_ics) {
|
| __ Mov(LoadIC::SlotRegister(),
|
| Smi::FromInt(prop->PropertyFeedbackSlot()));
|
| - CallLoadIC(NOT_CONTEXTUAL);
|
| + CallLoadIC(INSIDE_TYPEOF);
|
| } else {
|
| - CallLoadIC(NOT_CONTEXTUAL, prop->PropertyFeedbackId());
|
| + CallLoadIC(INSIDE_TYPEOF, prop->PropertyFeedbackId());
|
| }
|
| }
|
|
|
| @@ -3769,9 +3767,9 @@ void FullCodeGenerator::VisitCallRuntime(CallRuntime* expr) {
|
| if (FLAG_vector_ics) {
|
| __ Mov(LoadIC::SlotRegister(),
|
| Smi::FromInt(expr->CallRuntimeFeedbackSlot()));
|
| - CallLoadIC(NOT_CONTEXTUAL);
|
| + CallLoadIC(INSIDE_TYPEOF);
|
| } else {
|
| - CallLoadIC(NOT_CONTEXTUAL, expr->CallRuntimeFeedbackId());
|
| + CallLoadIC(INSIDE_TYPEOF, expr->CallRuntimeFeedbackId());
|
| }
|
|
|
| // Push the target function under the receiver.
|
| @@ -4111,9 +4109,8 @@ void FullCodeGenerator::VisitForTypeofValue(Expression* expr) {
|
| __ Mov(LoadIC::SlotRegister(),
|
| Smi::FromInt(proxy->VariableFeedbackSlot()));
|
| }
|
| - // Use a regular load, not a contextual load, to avoid a reference
|
| - // error.
|
| - CallLoadIC(NOT_CONTEXTUAL);
|
| + // We don't want a reference error if the load fails on the global object.
|
| + CallLoadIC();
|
| PrepareForBailout(expr, TOS_REG);
|
| context()->Plug(x0);
|
| } else if (proxy != NULL && proxy->var()->IsLookupSlot()) {
|
| @@ -4487,7 +4484,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) {
|
| __ Mov(LoadIC::SlotRegister(),
|
| Smi::FromInt(expr->DoneFeedbackSlot()));
|
| }
|
| - CallLoadIC(NOT_CONTEXTUAL); // x0=result.done
|
| + CallLoadIC(); // x0=result.done
|
| // The ToBooleanStub argument (result.done) is in x0.
|
| Handle<Code> bool_ic = ToBooleanStub::GetUninitialized(isolate());
|
| CallIC(bool_ic);
|
| @@ -4500,7 +4497,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) {
|
| __ Mov(LoadIC::SlotRegister(),
|
| Smi::FromInt(expr->ValueFeedbackSlot()));
|
| }
|
| - CallLoadIC(NOT_CONTEXTUAL); // x0=result.value
|
| + CallLoadIC(); // x0=result.value
|
| context()->DropAndPlug(2, x0); // drop iter and g
|
| break;
|
| }
|
|
|