Index: src/mips64/full-codegen-mips64.cc |
diff --git a/src/mips64/full-codegen-mips64.cc b/src/mips64/full-codegen-mips64.cc |
index 7185c0438c225149db6767513780441f83f55b3d..99777e0845871c696e89a47bb6b3ad7fe3446157 100644 |
--- a/src/mips64/full-codegen-mips64.cc |
+++ b/src/mips64/full-codegen-mips64.cc |
@@ -1361,7 +1361,7 @@ void FullCodeGenerator::EmitSetHomeObjectIfNeeded(Expression* initializer, |
void FullCodeGenerator::EmitLoadGlobalCheckExtensions(VariableProxy* proxy, |
- TypeofState typeof_state, |
+ TypeofMode typeof_mode, |
Label* slow) { |
Register current = cp; |
Register next = a1; |
@@ -1407,7 +1407,7 @@ void FullCodeGenerator::EmitLoadGlobalCheckExtensions(VariableProxy* proxy, |
// All extension objects were empty and it is safe to use a normal global |
// load machinery. |
- EmitGlobalVariableLoad(proxy, typeof_state); |
+ EmitGlobalVariableLoad(proxy, typeof_mode); |
} |
@@ -1442,9 +1442,8 @@ MemOperand FullCodeGenerator::ContextSlotOperandCheckExtensions(Variable* var, |
void FullCodeGenerator::EmitDynamicLookupFastCase(VariableProxy* proxy, |
- TypeofState typeof_state, |
- Label* slow, |
- Label* done) { |
+ TypeofMode typeof_mode, |
+ Label* slow, Label* done) { |
// Generate fast-case code for variables that might be shadowed by |
// eval-introduced variables. Eval is used a lot without |
// introducing variables. In those cases, we do not want to |
@@ -1452,7 +1451,7 @@ void FullCodeGenerator::EmitDynamicLookupFastCase(VariableProxy* proxy, |
// containing the eval. |
Variable* var = proxy->var(); |
if (var->mode() == DYNAMIC_GLOBAL) { |
- EmitLoadGlobalCheckExtensions(proxy, typeof_state, slow); |
+ EmitLoadGlobalCheckExtensions(proxy, typeof_mode, slow); |
__ Branch(done); |
} else if (var->mode() == DYNAMIC_LOCAL) { |
Variable* local = var->local_if_not_shadowed(); |
@@ -1477,7 +1476,7 @@ void FullCodeGenerator::EmitDynamicLookupFastCase(VariableProxy* proxy, |
void FullCodeGenerator::EmitGlobalVariableLoad(VariableProxy* proxy, |
- TypeofState typeof_state) { |
+ TypeofMode typeof_mode) { |
Variable* var = proxy->var(); |
DCHECK(var->IsUnallocatedOrGlobalSlot() || |
(var->IsLookupSlot() && var->mode() == DYNAMIC_GLOBAL)); |
@@ -1500,15 +1499,13 @@ void FullCodeGenerator::EmitGlobalVariableLoad(VariableProxy* proxy, |
__ li(LoadDescriptor::NameRegister(), Operand(var->name())); |
__ li(LoadDescriptor::SlotRegister(), |
Operand(SmiFromSlot(proxy->VariableFeedbackSlot()))); |
- // Inside typeof use a regular load, not a contextual load, to avoid |
- // a reference error. |
- CallLoadIC(typeof_state == NOT_INSIDE_TYPEOF ? CONTEXTUAL : NOT_CONTEXTUAL); |
+ CallLoadIC(typeof_mode); |
} |
} |
void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy, |
- TypeofState typeof_state) { |
+ TypeofMode typeof_mode) { |
// Record position before possible IC call. |
SetExpressionPosition(proxy); |
PrepareForBailoutForId(proxy->BeforeId(), NO_REGISTERS); |
@@ -1520,7 +1517,7 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy, |
case VariableLocation::GLOBAL: |
case VariableLocation::UNALLOCATED: { |
Comment cmnt(masm_, "[ Global variable"); |
- EmitGlobalVariableLoad(proxy, typeof_state); |
+ EmitGlobalVariableLoad(proxy, typeof_mode); |
context()->Plug(v0); |
break; |
} |
@@ -1528,7 +1525,7 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy, |
case VariableLocation::PARAMETER: |
case VariableLocation::LOCAL: |
case VariableLocation::CONTEXT: { |
- DCHECK_EQ(NOT_INSIDE_TYPEOF, typeof_state); |
+ DCHECK_EQ(NOT_INSIDE_TYPEOF, typeof_mode); |
Comment cmnt(masm_, var->IsContextSlot() ? "[ Context variable" |
: "[ Stack variable"); |
if (var->binding_needs_init()) { |
@@ -1604,12 +1601,12 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy, |
Label done, slow; |
// Generate code for loading from variables potentially shadowed |
// by eval-introduced variables. |
- EmitDynamicLookupFastCase(proxy, typeof_state, &slow, &done); |
+ EmitDynamicLookupFastCase(proxy, typeof_mode, &slow, &done); |
__ bind(&slow); |
__ li(a1, Operand(var->name())); |
__ Push(cp, a1); // Context and name. |
Runtime::FunctionId function_id = |
- typeof_state == NOT_INSIDE_TYPEOF |
+ typeof_mode == NOT_INSIDE_TYPEOF |
? Runtime::kLoadLookupSlot |
: Runtime::kLoadLookupSlotNoReferenceError; |
__ CallRuntime(function_id, 2); |
@@ -2291,7 +2288,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) { |
__ LoadRoot(load_name, Heap::kdone_stringRootIndex); // "done" |
__ li(LoadDescriptor::SlotRegister(), |
Operand(SmiFromSlot(expr->DoneFeedbackSlot()))); |
- CallLoadIC(NOT_CONTEXTUAL); // v0=result.done |
+ CallLoadIC(NOT_INSIDE_TYPEOF); // v0=result.done |
__ mov(a0, v0); |
Handle<Code> bool_ic = ToBooleanStub::GetUninitialized(isolate()); |
CallIC(bool_ic); |
@@ -2302,7 +2299,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) { |
__ LoadRoot(load_name, Heap::kvalue_stringRootIndex); // "value" |
__ li(LoadDescriptor::SlotRegister(), |
Operand(SmiFromSlot(expr->ValueFeedbackSlot()))); |
- CallLoadIC(NOT_CONTEXTUAL); // v0=result.value |
+ CallLoadIC(NOT_INSIDE_TYPEOF); // v0=result.value |
context()->DropAndPlug(2, v0); // drop iter and g |
break; |
} |
@@ -2446,7 +2443,7 @@ void FullCodeGenerator::EmitNamedPropertyLoad(Property* prop) { |
__ li(LoadDescriptor::NameRegister(), Operand(key->value())); |
__ li(LoadDescriptor::SlotRegister(), |
Operand(SmiFromSlot(prop->PropertyFeedbackSlot()))); |
- CallLoadIC(NOT_CONTEXTUAL, language_mode()); |
+ CallLoadIC(NOT_INSIDE_TYPEOF, language_mode()); |
} |
@@ -4780,7 +4777,7 @@ void FullCodeGenerator::EmitLoadJSRuntimeFunction(CallRuntime* expr) { |
__ li(LoadDescriptor::NameRegister(), Operand(expr->name())); |
__ li(LoadDescriptor::SlotRegister(), |
Operand(SmiFromSlot(expr->CallRuntimeFeedbackSlot()))); |
- CallLoadIC(NOT_CONTEXTUAL); |
+ CallLoadIC(NOT_INSIDE_TYPEOF); |
} |