Index: src/hydrogen.h |
diff --git a/src/hydrogen.h b/src/hydrogen.h |
index a2dbe7de1df27f45fa1650555a05d3f06b98073f..23619c8a8ad0b78f32eab845ebaea773d0f6ae29 100644 |
--- a/src/hydrogen.h |
+++ b/src/hydrogen.h |
@@ -304,10 +304,13 @@ class HGraph: public ZoneObject { |
HConstant* GetConstantUndefined() const { return undefined_constant_.get(); } |
HConstant* GetConstant0(); |
HConstant* GetConstant1(); |
+ HConstant* GetConstantSmi0(); |
+ HConstant* GetConstantSmi1(); |
HConstant* GetConstantMinus1(); |
HConstant* GetConstantTrue(); |
HConstant* GetConstantFalse(); |
HConstant* GetConstantHole(); |
+ HConstant* GetConstantNull(); |
HConstant* GetInvalidContext(); |
HBasicBlock* CreateBasicBlock(); |
@@ -395,6 +398,8 @@ class HGraph: public ZoneObject { |
private: |
HConstant* GetConstantInt32(SetOncePointer<HConstant>* pointer, |
int32_t integer_value); |
+ HConstant* GetConstantSmi(SetOncePointer<HConstant>* pointer, |
+ int32_t integer_value); |
void MarkAsDeoptimizingRecursively(HBasicBlock* block); |
void NullifyUnreachableInstructions(); |
@@ -424,10 +429,13 @@ class HGraph: public ZoneObject { |
SetOncePointer<HConstant> undefined_constant_; |
SetOncePointer<HConstant> constant_0_; |
SetOncePointer<HConstant> constant_1_; |
+ SetOncePointer<HConstant> constant_smi_0_; |
+ SetOncePointer<HConstant> constant_smi_1_; |
SetOncePointer<HConstant> constant_minus1_; |
SetOncePointer<HConstant> constant_true_; |
SetOncePointer<HConstant> constant_false_; |
SetOncePointer<HConstant> constant_the_hole_; |
+ SetOncePointer<HConstant> constant_null_; |
SetOncePointer<HConstant> constant_invalid_context_; |
SetOncePointer<HArgumentsObject> arguments_object_; |
@@ -890,7 +898,6 @@ class HIfContinuation { |
HBasicBlock* false_branch, |
int position) { |
ASSERT(!continuation_captured_); |
- ASSERT(true_branch != NULL || false_branch != NULL); |
true_branch_ = true_branch; |
false_branch_ = false_branch; |
position_ = position; |
@@ -1023,6 +1030,7 @@ class HGraphBuilder { |
HValue* CheckNotUndefined(HValue* value); |
HValue* CheckIntegerCompare(HValue* left, HValue* right, Token::Value op); |
HValue* CheckIntegerEq(HValue* left, HValue* right); |
+ |
void End(); |
private: |
@@ -1129,6 +1137,7 @@ class HGraphBuilder { |
void End(); |
void Deopt(); |
+ void Return(HValue* value); |
private: |
void AddCompare(HControlInstruction* compare); |
@@ -1246,6 +1255,14 @@ class HGraphBuilder { |
ElementsKind kind, |
int length); |
+ void BuildCompareNil( |
+ HValue* value, |
+ EqualityKind kind, |
+ CompareNilICStub::Types types, |
+ Handle<Map> map, |
+ int position, |
+ HIfContinuation* continuation); |
+ |
private: |
HGraphBuilder(); |
CompilationInfo* info_; |