Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index a3c23c67982619dc493adc543d681b049bcd383f..f7eb17344ad714bfc233cc8ce72cf08025583482 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -73,6 +73,7 @@ class LChunkBuilder; |
// HCompare |
// HCompareJSObjectEq |
// HInstanceOf |
+// HInstanceOfKnownGlobal |
// HLoadKeyed |
// HLoadKeyedFastElement |
// HLoadKeyedGeneric |
@@ -210,6 +211,7 @@ class LChunkBuilder; |
V(GlobalReceiver) \ |
V(Goto) \ |
V(InstanceOf) \ |
+ V(InstanceOfKnownGlobal) \ |
V(IsNull) \ |
V(IsObject) \ |
V(IsSmi) \ |
@@ -2262,6 +2264,28 @@ class HInstanceOf: public HBinaryOperation { |
}; |
+class HInstanceOfKnownGlobal: public HUnaryOperation { |
+ public: |
+ HInstanceOfKnownGlobal(HValue* left, Handle<JSFunction> right) |
+ : HUnaryOperation(left), function_(right) { |
+ set_representation(Representation::Tagged()); |
+ SetFlagMask(AllSideEffects()); |
+ } |
+ |
+ Handle<JSFunction> function() { return function_; } |
+ |
+ virtual Representation RequiredInputRepresentation(int index) const { |
+ return Representation::Tagged(); |
+ } |
+ |
+ DECLARE_CONCRETE_INSTRUCTION(InstanceOfKnownGlobal, |
+ "instance_of_known_global") |
+ |
+ private: |
+ Handle<JSFunction> function_; |
+}; |
+ |
+ |
class HPower: public HBinaryOperation { |
public: |
HPower(HValue* left, HValue* right) |