| 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;
|
| }
|
|
|