Index: src/mips/lithium-codegen-mips.cc |
diff --git a/src/mips/lithium-codegen-mips.cc b/src/mips/lithium-codegen-mips.cc |
index b989777c72fb6c6528817a4b838d356c0ba0ff4c..b8d1d3cb3162e5ad363d6902146c3ec4ff94b07e 100644 |
--- a/src/mips/lithium-codegen-mips.cc |
+++ b/src/mips/lithium-codegen-mips.cc |
@@ -203,7 +203,7 @@ bool LCodeGen::GeneratePrologue() { |
Comment(";;; Allocate local context"); |
// Argument to NewContext is the function, which is in a1. |
if (heap_slots <= FastNewContextStub::kMaximumSlots) { |
- FastNewContextStub stub(heap_slots); |
+ FastNewContextStub stub(isolate(), heap_slots); |
__ CallStub(&stub); |
} else { |
__ push(a1); |
@@ -1046,17 +1046,17 @@ void LCodeGen::DoCallStub(LCallStub* instr) { |
ASSERT(ToRegister(instr->result()).is(v0)); |
switch (instr->hydrogen()->major_key()) { |
case CodeStub::RegExpExec: { |
- RegExpExecStub stub; |
+ RegExpExecStub stub(isolate()); |
CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr); |
break; |
} |
case CodeStub::SubString: { |
- SubStringStub stub; |
+ SubStringStub stub(isolate()); |
CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr); |
break; |
} |
case CodeStub::StringCompare: { |
- StringCompareStub stub; |
+ StringCompareStub stub(isolate()); |
CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr); |
break; |
} |
@@ -2011,7 +2011,7 @@ void LCodeGen::DoArithmeticT(LArithmeticT* instr) { |
ASSERT(ToRegister(instr->right()).is(a0)); |
ASSERT(ToRegister(instr->result()).is(v0)); |
- BinaryOpICStub stub(instr->op(), NO_OVERWRITE); |
+ BinaryOpICStub stub(isolate(), instr->op(), NO_OVERWRITE); |
CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr); |
// Other arch use a nop here, to signal that there is no inlined |
// patchable code. Mips does not need the nop, since our marker |
@@ -2653,7 +2653,7 @@ void LCodeGen::DoInstanceOf(LInstanceOf* instr) { |
Register result = ToRegister(instr->result()); |
ASSERT(result.is(v0)); |
- InstanceofStub stub(InstanceofStub::kArgsInRegisters); |
+ InstanceofStub stub(isolate(), InstanceofStub::kArgsInRegisters); |
CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr); |
__ Branch(&true_label, eq, result, Operand(zero_reg)); |
@@ -2754,7 +2754,7 @@ void LCodeGen::DoDeferredInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr, |
flags | InstanceofStub::kCallSiteInlineCheck); |
flags = static_cast<InstanceofStub::Flags>( |
flags | InstanceofStub::kReturnTrueFalseObject); |
- InstanceofStub stub(flags); |
+ InstanceofStub stub(isolate(), flags); |
PushSafepointRegistersScope scope(this, Safepoint::kWithRegisters); |
LoadContextFromDeferred(instr->context()); |
@@ -3848,7 +3848,7 @@ void LCodeGen::DoPower(LPower* instr) { |
ASSERT(ToDoubleRegister(instr->result()).is(f0)); |
if (exponent_type.IsSmi()) { |
- MathPowStub stub(MathPowStub::TAGGED); |
+ MathPowStub stub(isolate(), MathPowStub::TAGGED); |
__ CallStub(&stub); |
} else if (exponent_type.IsTagged()) { |
Label no_deopt; |
@@ -3857,14 +3857,14 @@ void LCodeGen::DoPower(LPower* instr) { |
__ LoadRoot(at, Heap::kHeapNumberMapRootIndex); |
DeoptimizeIf(ne, instr->environment(), t3, Operand(at)); |
__ bind(&no_deopt); |
- MathPowStub stub(MathPowStub::TAGGED); |
+ MathPowStub stub(isolate(), MathPowStub::TAGGED); |
__ CallStub(&stub); |
} else if (exponent_type.IsInteger32()) { |
- MathPowStub stub(MathPowStub::INTEGER); |
+ MathPowStub stub(isolate(), MathPowStub::INTEGER); |
__ CallStub(&stub); |
} else { |
ASSERT(exponent_type.IsDouble()); |
- MathPowStub stub(MathPowStub::DOUBLE); |
+ MathPowStub stub(isolate(), MathPowStub::DOUBLE); |
__ CallStub(&stub); |
} |
} |
@@ -3968,7 +3968,7 @@ void LCodeGen::DoCallFunction(LCallFunction* instr) { |
ASSERT(ToRegister(instr->result()).is(v0)); |
int arity = instr->arity(); |
- CallFunctionStub stub(arity, instr->hydrogen()->function_flags()); |
+ CallFunctionStub stub(isolate(), arity, instr->hydrogen()->function_flags()); |
CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr); |
} |
@@ -3981,7 +3981,7 @@ void LCodeGen::DoCallNew(LCallNew* instr) { |
__ li(a0, Operand(instr->arity())); |
// No cell in a2 for construct type feedback in optimized code |
__ LoadRoot(a2, Heap::kUndefinedValueRootIndex); |
- CallConstructStub stub(NO_CALL_FUNCTION_FLAGS); |
+ CallConstructStub stub(isolate(), NO_CALL_FUNCTION_FLAGS); |
CallCode(stub.GetCode(isolate()), RelocInfo::CONSTRUCT_CALL, instr); |
} |
@@ -4000,7 +4000,7 @@ void LCodeGen::DoCallNewArray(LCallNewArray* instr) { |
: DONT_OVERRIDE; |
if (instr->arity() == 0) { |
- ArrayNoArgumentConstructorStub stub(kind, override_mode); |
+ ArrayNoArgumentConstructorStub stub(isolate(), kind, override_mode); |
CallCode(stub.GetCode(isolate()), RelocInfo::CONSTRUCT_CALL, instr); |
} else if (instr->arity() == 1) { |
Label done; |
@@ -4012,17 +4012,19 @@ void LCodeGen::DoCallNewArray(LCallNewArray* instr) { |
__ Branch(&packed_case, eq, t1, Operand(zero_reg)); |
ElementsKind holey_kind = GetHoleyElementsKind(kind); |
- ArraySingleArgumentConstructorStub stub(holey_kind, override_mode); |
+ ArraySingleArgumentConstructorStub stub(isolate(), |
+ holey_kind, |
+ override_mode); |
CallCode(stub.GetCode(isolate()), RelocInfo::CONSTRUCT_CALL, instr); |
__ jmp(&done); |
__ bind(&packed_case); |
} |
- ArraySingleArgumentConstructorStub stub(kind, override_mode); |
+ ArraySingleArgumentConstructorStub stub(isolate(), kind, override_mode); |
CallCode(stub.GetCode(isolate()), RelocInfo::CONSTRUCT_CALL, instr); |
__ bind(&done); |
} else { |
- ArrayNArgumentsConstructorStub stub(kind, override_mode); |
+ ArrayNArgumentsConstructorStub stub(isolate(), kind, override_mode); |
CallCode(stub.GetCode(isolate()), RelocInfo::CONSTRUCT_CALL, instr); |
} |
} |
@@ -4430,7 +4432,7 @@ void LCodeGen::DoTransitionElementsKind(LTransitionElementsKind* instr) { |
this, Safepoint::kWithRegistersAndDoubles); |
__ li(a1, Operand(to_map)); |
bool is_js_array = from_map->instance_type() == JS_ARRAY_TYPE; |
- TransitionElementsKindStub stub(from_kind, to_kind, is_js_array); |
+ TransitionElementsKindStub stub(isolate(), from_kind, to_kind, is_js_array); |
__ CallStub(&stub); |
RecordSafepointWithRegistersAndDoubles( |
instr->pointer_map(), 0, Safepoint::kLazyDeopt); |
@@ -4454,7 +4456,8 @@ void LCodeGen::DoStringAdd(LStringAdd* instr) { |
ASSERT(ToRegister(instr->context()).is(cp)); |
ASSERT(ToRegister(instr->left()).is(a1)); |
ASSERT(ToRegister(instr->right()).is(a0)); |
- StringAddStub stub(instr->hydrogen()->flags(), |
+ StringAddStub stub(isolate(), |
+ instr->hydrogen()->flags(), |
instr->hydrogen()->pretenure_flag()); |
CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr); |
} |
@@ -5452,7 +5455,8 @@ void LCodeGen::DoFunctionLiteral(LFunctionLiteral* instr) { |
// space for nested functions that don't need literals cloning. |
bool pretenure = instr->hydrogen()->pretenure(); |
if (!pretenure && instr->hydrogen()->has_no_literals()) { |
- FastNewClosureStub stub(instr->hydrogen()->strict_mode(), |
+ FastNewClosureStub stub(isolate(), |
+ instr->hydrogen()->strict_mode(), |
instr->hydrogen()->is_generator()); |
__ li(a2, Operand(instr->hydrogen()->shared_info())); |
CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr); |