Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index c99240c5b36d76d18caa17909d34d75ab291d9da..e9ff25d5fb764d62cdc771bbca162f5dcb8ba683 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -123,6 +123,7 @@ class LChunkBuilder; |
V(In) \ |
V(InstanceOf) \ |
V(InstanceOfKnownGlobal) \ |
+ V(InstanceSize) \ |
V(InvokeFunction) \ |
V(IsConstructCallAndBranch) \ |
V(IsNilAndBranch) \ |
@@ -3948,6 +3949,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: |
static HInstruction* New(Zone* zone, HValue* left, HValue* right); |