Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 64910c8d55ff8a70b27b6b97b49e0fc5038917db..98925e7d24308e97931ffbfab6af27f987cbaed6 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -2402,6 +2402,9 @@ class HUnaryMathOperation: public HTemplateInstruction<2> { |
SetFlag(kUseGVN); |
} |
+ static HInstruction* NewHUnaryMathOperation( |
Jakob Kummerow
2013/02/20 15:31:04
idea: You could shorten this to just "New", as it'
|
+ Zone* zone, HValue* context, HValue* value, BuiltinFunctionId op); |
+ |
HValue* context() { return OperandAt(0); } |
HValue* value() { return OperandAt(1); } |
@@ -2418,7 +2421,6 @@ class HUnaryMathOperation: public HTemplateInstruction<2> { |
switch (op_) { |
case kMathFloor: |
case kMathRound: |
- case kMathCeil: |
case kMathSqrt: |
case kMathPowHalf: |
case kMathLog: |
@@ -3064,6 +3066,15 @@ class HConstant: public HTemplateInstruction<0> { |
// representation of the number in int32_value_. |
return int32_value_; |
} |
+ bool HasStringValue() const { |
+ if (has_double_value_ || has_int32_value_) return false; |
+ ASSERT(!handle_.is_null()); |
+ return handle_->IsString(); |
+ } |
+ Handle<String> StringValue() const { |
+ ASSERT(HasStringValue()); |
+ return Handle<String>::cast(handle_); |
+ } |
bool ToBoolean(); |
@@ -3892,6 +3903,9 @@ class HPower: public HTemplateInstruction<2> { |
SetGVNFlag(kChangesNewSpacePromotion); |
} |
+ static HInstruction* NewHPower( |
+ Zone* zone, HValue* left, HValue* right); |
+ |
HValue* left() { return OperandAt(0); } |
HValue* right() const { return OperandAt(1); } |
@@ -4125,6 +4139,9 @@ class HMathMinMax: public HArithmeticBinaryOperation { |
: HArithmeticBinaryOperation(context, left, right), |
operation_(op) { } |
+ static HInstruction* NewHMathMinMax( |
+ Zone* zone, HValue* context, HValue* left, HValue* right, Operation op); |
+ |
virtual Representation RequiredInputRepresentation(int index) { |
return index == 0 ? Representation::Tagged() |
: representation(); |
@@ -5402,6 +5419,11 @@ class HStringAdd: public HBinaryOperation { |
SetGVNFlag(kChangesNewSpacePromotion); |
} |
+ static HInstruction* NewHStringAdd(Zone* zone, |
+ HValue* context, |
+ HValue* left, |
+ HValue* right); |
+ |
virtual Representation RequiredInputRepresentation(int index) { |
return Representation::Tagged(); |
} |
@@ -5469,6 +5491,9 @@ class HStringCharFromCode: public HTemplateInstruction<2> { |
SetGVNFlag(kChangesNewSpacePromotion); |
} |
+ static HInstruction* NewHStringCharFromCode( |
+ Zone* zone, HValue* context, HValue* char_code); |
+ |
virtual Representation RequiredInputRepresentation(int index) { |
return index == 0 |
? Representation::Tagged() |
@@ -5497,6 +5522,8 @@ class HStringLength: public HUnaryOperation { |
SetGVNFlag(kDependsOnMaps); |
} |
+ static HInstruction* NewHStringLength(Zone* zone, HValue* string); |
+ |
virtual Representation RequiredInputRepresentation(int index) { |
return Representation::Tagged(); |
} |