Index: src/ia32/lithium-ia32.h |
=================================================================== |
--- src/ia32/lithium-ia32.h (revision 6167) |
+++ src/ia32/lithium-ia32.h (working copy) |
@@ -63,6 +63,7 @@ |
// LDivI |
// LInstanceOf |
// LInstanceOfAndBranch |
+// LInstanceOfKnownGlobal |
// LLoadKeyedFastElement |
// LLoadKeyedGeneric |
// LModI |
@@ -207,6 +208,7 @@ |
V(FixedArrayLength) \ |
V(InstanceOf) \ |
V(InstanceOfAndBranch) \ |
+ V(InstanceOfKnownGlobal) \ |
V(Integer32ToDouble) \ |
V(IsNull) \ |
V(IsNullAndBranch) \ |
@@ -1008,6 +1010,23 @@ |
}; |
+class LInstanceOfKnownGlobal: public LUnaryOperation { |
+ public: |
+ LInstanceOfKnownGlobal(LOperand* left, LOperand* temp) |
+ : LUnaryOperation(left), temp_(temp) { } |
+ |
+ DECLARE_CONCRETE_INSTRUCTION(InstanceOfKnownGlobal, |
+ "instance-of-known-global") |
+ DECLARE_HYDROGEN_ACCESSOR(InstanceOfKnownGlobal) |
+ |
+ Handle<JSFunction> function() const { return hydrogen()->function(); } |
+ LOperand* temp() const { return temp_; } |
+ |
+ private: |
+ LOperand* temp_; |
+}; |
+ |
+ |
class LBoundsCheck: public LBinaryOperation { |
public: |
LBoundsCheck(LOperand* index, LOperand* length) |
@@ -2102,6 +2121,7 @@ |
LInstruction* instr, |
HInstruction* hinstr, |
CanDeoptimize can_deoptimize = CANNOT_DEOPTIMIZE_EAGERLY); |
+ LInstruction* MarkAsSaveDoubles(LInstruction* instr); |
LInstruction* SetInstructionPendingDeoptimizationEnvironment( |
LInstruction* instr, int ast_id); |