| Index: runtime/vm/locations.h | 
| diff --git a/runtime/vm/locations.h b/runtime/vm/locations.h | 
| index 0a2a63677c686e2ba165de87fa8c05c323c43afe..a5332391e9337652b17300c433e6905da2aa90b1 100644 | 
| --- a/runtime/vm/locations.h | 
| +++ b/runtime/vm/locations.h | 
| @@ -14,6 +14,7 @@ namespace dart { | 
| class BufferFormatter; | 
| class Value; | 
| class PairLocation; | 
| +class ConstantInstr; | 
|  | 
|  | 
| enum Representation { | 
| @@ -21,6 +22,7 @@ enum Representation { | 
| kTagged, | 
| kUntagged, | 
| kUnboxedDouble, | 
| +  kUnboxedInt32, | 
| kUnboxedUint32, | 
| kUnboxedMint, | 
| kUnboxedFloat32x4, | 
| @@ -143,17 +145,19 @@ class Location : public ValueObject { | 
| return (value_ & kLocationTagMask) == kConstantTag; | 
| } | 
|  | 
| -  static Location Constant(const Object& obj) { | 
| -    Location loc(reinterpret_cast<uword>(&obj) | kConstantTag); | 
| -    ASSERT(&obj == &loc.constant()); | 
| +  static Location Constant(ConstantInstr* obj) { | 
| +    Location loc(reinterpret_cast<uword>(obj) | kConstantTag); | 
| +    ASSERT(obj == loc.constant_instruction()); | 
| return loc; | 
| } | 
|  | 
| -  const Object& constant() const { | 
| +  ConstantInstr* constant_instruction() const { | 
| ASSERT(IsConstant()); | 
| -    return *reinterpret_cast<const Object*>(value_ & ~kLocationTagMask); | 
| +    return reinterpret_cast<ConstantInstr*>(value_ & ~kLocationTagMask); | 
| } | 
|  | 
| +  const Object& constant() const; | 
| + | 
| bool IsPairLocation() const { | 
| return (value_ & kLocationTagMask) == kPairLocationTag; | 
| } | 
|  |