Index: src/hydrogen.cc |
diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
index 00207c142f44d528805a7172698ae09cf21388a2..d526a22297b163db49f146210c16bedfc055ef46 100644 |
--- a/src/hydrogen.cc |
+++ b/src/hydrogen.cc |
@@ -918,8 +918,8 @@ HInstruction* HGraphBuilder::BuildUncheckedMonomorphicElementAccess( |
HInstruction* checked_key = NULL; |
if (IsExternalArrayElementsKind(elements_kind)) { |
length = AddInstruction(new(zone) HFixedArrayBaseLength(elements)); |
- checked_key = AddInstruction(new(zone) HBoundsCheck( |
- key, length, ALLOW_SMI_KEY, checked_index_representation)); |
+ checked_key = HBoundsCheck::AddToGraph( |
+ this, key, length, ALLOW_SMI_KEY, checked_index_representation); |
HLoadExternalArrayPointer* external_elements = |
new(zone) HLoadExternalArrayPointer(elements); |
AddInstruction(external_elements); |
@@ -936,8 +936,8 @@ HInstruction* HGraphBuilder::BuildUncheckedMonomorphicElementAccess( |
} else { |
length = AddInstruction(new(zone) HFixedArrayBaseLength(elements)); |
} |
- checked_key = AddInstruction(new(zone) HBoundsCheck( |
- key, length, ALLOW_SMI_KEY, checked_index_representation)); |
+ checked_key = HBoundsCheck::AddToGraph( |
+ this, key, length, ALLOW_SMI_KEY, checked_index_representation); |
return BuildFastElementAccess(elements, checked_key, val, mapcheck, |
elements_kind, is_store); |
} |
@@ -6833,7 +6833,7 @@ HValue* HOptimizedGraphBuilder::HandlePolymorphicElementAccess( |
&& todo_external_array) { |
HInstruction* length = |
AddInstruction(new(zone()) HFixedArrayBaseLength(elements)); |
- checked_key = AddInstruction(new(zone()) HBoundsCheck(key, length)); |
+ checked_key = HBoundsCheck::AddToGraph(this, key, length); |
external_elements = new(zone()) HLoadExternalArrayPointer(elements); |
AddInstruction(external_elements); |
} |
@@ -6875,8 +6875,8 @@ HValue* HOptimizedGraphBuilder::HandlePolymorphicElementAccess( |
HInstruction* length; |
length = AddInstruction(new(zone()) HJSArrayLength(object, typecheck, |
HType::Smi())); |
- checked_key = AddInstruction(new(zone()) HBoundsCheck(key, length, |
- ALLOW_SMI_KEY)); |
+ checked_key = HBoundsCheck::AddToGraph(this, key, length, |
+ ALLOW_SMI_KEY); |
access = AddInstruction(BuildFastElementAccess( |
elements, checked_key, val, elements_kind_branch, |
elements_kind, is_store)); |
@@ -6892,8 +6892,8 @@ HValue* HOptimizedGraphBuilder::HandlePolymorphicElementAccess( |
set_current_block(if_fastobject); |
length = AddInstruction(new(zone()) HFixedArrayBaseLength(elements)); |
- checked_key = AddInstruction(new(zone()) HBoundsCheck(key, length, |
- ALLOW_SMI_KEY)); |
+ checked_key = HBoundsCheck::AddToGraph(this, key, length, |
+ ALLOW_SMI_KEY); |
access = AddInstruction(BuildFastElementAccess( |
elements, checked_key, val, elements_kind_branch, |
elements_kind, is_store)); |
@@ -7042,8 +7042,7 @@ bool HOptimizedGraphBuilder::TryArgumentsAccess(Property* expr) { |
new(zone()) HArgumentsElements(false)); |
HInstruction* length = AddInstruction( |
new(zone()) HArgumentsLength(elements)); |
- HInstruction* checked_key = |
- AddInstruction(new(zone()) HBoundsCheck(key, length)); |
+ HInstruction* checked_key = HBoundsCheck::AddToGraph(this, key, length); |
result = new(zone()) HAccessArgumentsAt(elements, length, checked_key); |
} else { |
EnsureArgumentsArePushedForAccess(); |
@@ -7055,8 +7054,7 @@ bool HOptimizedGraphBuilder::TryArgumentsAccess(Property* expr) { |
HInstruction* length = AddInstruction(new(zone()) HConstant( |
Handle<Object>(Smi::FromInt(argument_count)), |
Representation::Integer32())); |
- HInstruction* checked_key = |
- AddInstruction(new(zone()) HBoundsCheck(key, length)); |
+ HInstruction* checked_key = HBoundsCheck::AddToGraph(this, key, length); |
result = new(zone()) HAccessArgumentsAt(elements, length, checked_key); |
} |
} |
@@ -8770,8 +8768,7 @@ HStringCharCodeAt* HOptimizedGraphBuilder::BuildStringCharCodeAt( |
AddInstruction(HCheckInstanceType::NewIsString(string, zone())); |
HStringLength* length = new(zone()) HStringLength(string); |
AddInstruction(length); |
- HInstruction* checked_index = |
- AddInstruction(new(zone()) HBoundsCheck(index, length)); |
+ HInstruction* checked_index = HBoundsCheck::AddToGraph(this, index, length); |
return new(zone()) HStringCharCodeAt(context, string, checked_index); |
} |
@@ -9599,8 +9596,7 @@ void HOptimizedGraphBuilder::GenerateArguments(CallRuntime* call) { |
HInstruction* elements = AddInstruction( |
new(zone()) HArgumentsElements(false)); |
HInstruction* length = AddInstruction(new(zone()) HArgumentsLength(elements)); |
- HInstruction* checked_index = |
- AddInstruction(new(zone()) HBoundsCheck(index, length)); |
+ HInstruction* checked_index = HBoundsCheck::AddToGraph(this, index, length); |
HAccessArgumentsAt* result = |
new(zone()) HAccessArgumentsAt(elements, length, checked_index); |
return ast_context()->ReturnInstruction(result, call->id()); |