Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 53f1b65755beaa3cbaa3ada0086830d60529bc27..6ce8069b268b532d9f580cc7e4e621e9da9b7efc 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -121,6 +121,7 @@ class LChunkBuilder; |
V(In) \ |
V(InstanceOf) \ |
V(InstanceOfKnownGlobal) \ |
+ V(InstanceSize) \ |
V(InvokeFunction) \ |
V(IsConstructCallAndBranch) \ |
V(IsNilAndBranch) \ |
@@ -3621,6 +3622,26 @@ class HInstanceOfKnownGlobal: public HTemplateInstruction<2> { |
}; |
+// TODO(mstarzinger): This instruction should be modeled as a load of the map |
+// field followed by a load of the instance size field once HLoadNamedField is |
+// flexible enough to accommodate byte-field loads. |
+class HInstanceSize: public HTemplateInstruction<1> { |
+ public: |
+ explicit HInstanceSize(HValue* object) { |
+ SetOperandAt(0, object); |
+ set_representation(Representation::Integer32()); |
+ } |
+ |
+ HValue* object() { return OperandAt(0); } |
+ |
+ virtual Representation RequiredInputRepresentation(int index) { |
+ return Representation::Tagged(); |
+ } |
+ |
+ DECLARE_CONCRETE_INSTRUCTION(InstanceSize) |
+}; |
+ |
+ |
class HPower: public HTemplateInstruction<2> { |
public: |
HPower(HValue* left, HValue* right) { |