Index: src/code-stubs-hydrogen.cc |
diff --git a/src/code-stubs-hydrogen.cc b/src/code-stubs-hydrogen.cc |
index 8342f9f7ea1d7c64a5fc3ad7f395dd6dd7f0c215..05d422604ef9a0d06cfe221bec58a706e9d1fceb 100644 |
--- a/src/code-stubs-hydrogen.cc |
+++ b/src/code-stubs-hydrogen.cc |
@@ -39,14 +39,14 @@ class CodeStubGraphBuilderBase : public HGraphBuilder { |
info_(stub, isolate), |
context_(NULL) { |
descriptor_ = stub->GetInterfaceDescriptor(); |
- parameters_.Reset(new HParameter*[descriptor_->register_param_count_]); |
+ parameters_.Reset(new HParameter*[descriptor_->register_param_count()]); |
} |
virtual bool BuildGraph(); |
protected: |
virtual HValue* BuildCodeStub() = 0; |
HParameter* GetParameter(int parameter) { |
- ASSERT(parameter < descriptor_->register_param_count_); |
+ ASSERT(parameter < descriptor_->register_param_count()); |
return parameters_[parameter]; |
} |
HValue* GetArgumentsLength() { |
@@ -116,19 +116,17 @@ bool CodeStubGraphBuilderBase::BuildGraph() { |
isolate()->GetHTracer()->TraceCompilation(&info_); |
} |
- int param_count = descriptor_->register_param_count_; |
+ int param_count = descriptor_->register_param_count(); |
HEnvironment* start_environment = graph()->start_environment(); |
HBasicBlock* next_block = CreateBasicBlock(start_environment); |
Goto(next_block); |
next_block->SetJoinId(BailoutId::StubEntry()); |
set_current_block(next_block); |
- bool runtime_stack_params = descriptor_->stack_parameter_count_.is_valid(); |
+ bool runtime_stack_params = descriptor_->stack_parameter_count().is_valid(); |
HInstruction* stack_parameter_count = NULL; |
for (int i = 0; i < param_count; ++i) { |
- Representation r = descriptor_->register_param_representations_ == NULL |
- ? Representation::Tagged() |
- : descriptor_->register_param_representations_[i]; |
+ Representation r = descriptor_->GetRegisterParameterRepresentation(i); |
HParameter* param = Add<HParameter>(i, HParameter::REGISTER_PARAMETER, r); |
start_environment->Bind(i, param); |
parameters_[i] = param; |
@@ -157,16 +155,16 @@ bool CodeStubGraphBuilderBase::BuildGraph() { |
// We might have extra expressions to pop from the stack in addition to the |
// arguments above. |
HInstruction* stack_pop_count = stack_parameter_count; |
- if (descriptor_->function_mode_ == JS_FUNCTION_STUB_MODE) { |
+ if (descriptor_->function_mode() == JS_FUNCTION_STUB_MODE) { |
if (!stack_parameter_count->IsConstant() && |
- descriptor_->hint_stack_parameter_count_ < 0) { |
+ descriptor_->hint_stack_parameter_count() < 0) { |
HInstruction* constant_one = graph()->GetConstant1(); |
stack_pop_count = AddUncasted<HAdd>(stack_parameter_count, constant_one); |
stack_pop_count->ClearFlag(HValue::kCanOverflow); |
// TODO(mvstanton): verify that stack_parameter_count+1 really fits in a |
// smi. |
} else { |
- int count = descriptor_->hint_stack_parameter_count_; |
+ int count = descriptor_->hint_stack_parameter_count(); |
stack_pop_count = Add<HConstant>(count); |
} |
} |
@@ -253,7 +251,7 @@ static Handle<Code> DoGenerateCode(Stub* stub) { |
static_cast<HydrogenCodeStub*>(stub)->MajorKey(); |
CodeStubInterfaceDescriptor* descriptor = |
isolate->code_stub_interface_descriptor(major_key); |
- if (descriptor->register_param_count_ < 0) { |
+ if (!descriptor->initialized()) { |
stub->InitializeInterfaceDescriptor(descriptor); |
} |
@@ -261,7 +259,7 @@ static Handle<Code> DoGenerateCode(Stub* stub) { |
// the runtime that is significantly faster than using the standard |
// stub-failure deopt mechanism. |
if (stub->IsUninitialized() && descriptor->has_miss_handler()) { |
- ASSERT(!descriptor->stack_parameter_count_.is_valid()); |
+ ASSERT(!descriptor->stack_parameter_count().is_valid()); |
return stub->GenerateLightweightMissCode(); |
} |
ElapsedTimer timer; |
@@ -539,9 +537,14 @@ Handle<Code> CreateAllocationSiteStub::GenerateCode() { |
template <> |
HValue* CodeStubGraphBuilder<KeyedLoadFastElementStub>::BuildCodeStub() { |
HInstruction* load = BuildUncheckedMonomorphicElementAccess( |
- GetParameter(0), GetParameter(1), NULL, |
- casted_stub()->is_js_array(), casted_stub()->elements_kind(), |
- LOAD, NEVER_RETURN_HOLE, STANDARD_STORE); |
+ GetParameter(KeyedLoadIC::kReceiverIndex), |
+ GetParameter(KeyedLoadIC::kNameIndex), |
+ NULL, |
+ casted_stub()->is_js_array(), |
+ casted_stub()->elements_kind(), |
+ LOAD, |
+ NEVER_RETURN_HOLE, |
+ STANDARD_STORE); |
return load; |
} |
@@ -1371,8 +1374,8 @@ Handle<Code> FastNewContextStub::GenerateCode() { |
template<> |
HValue* CodeStubGraphBuilder<KeyedLoadDictionaryElementStub>::BuildCodeStub() { |
- HValue* receiver = GetParameter(0); |
- HValue* key = GetParameter(1); |
+ HValue* receiver = GetParameter(KeyedLoadIC::kReceiverIndex); |
+ HValue* key = GetParameter(KeyedLoadIC::kNameIndex); |
Add<HCheckSmi>(key); |
@@ -1504,8 +1507,8 @@ void CodeStubGraphBuilder< |
HValue* CodeStubGraphBuilder<KeyedLoadGenericElementStub>::BuildCodeStub() { |
- HValue* receiver = GetParameter(0); |
- HValue* key = GetParameter(1); |
+ HValue* receiver = GetParameter(KeyedLoadIC::kReceiverIndex); |
+ HValue* key = GetParameter(KeyedLoadIC::kNameIndex); |
// Split into a smi/integer case and unique string case. |
HIfContinuation index_name_split_continuation(graph()->CreateBasicBlock(), |