Index: runtime/vm/intermediate_language.h |
=================================================================== |
--- runtime/vm/intermediate_language.h (revision 31471) |
+++ runtime/vm/intermediate_language.h (working copy) |
@@ -482,6 +482,7 @@ |
// Change the definition after use lists have been computed. |
inline void BindTo(Definition* definition); |
+ inline void BindToEnvironment(Definition* definition); |
Value* Copy() { return new Value(definition_); } |
@@ -1794,6 +1795,13 @@ |
} |
+inline void Value::BindToEnvironment(Definition* def) { |
+ RemoveFromUseList(); |
+ set_definition(def); |
+ def->AddEnvUse(this); |
+} |
+ |
+ |
class PhiInstr : public Definition { |
public: |
PhiInstr(JoinEntryInstr* block, intptr_t num_inputs) |
@@ -4305,19 +4313,19 @@ |
: offset_in_bytes_(offset_in_bytes), type_(type) { |
ASSERT(type.IsZoneHandle()); // May be null if field is not an instance. |
SetInputAt(kValuePos, value); |
- SetInputAt(kDestPos, dest); |
+ SetInputAt(kObjectPos, dest); |
} |
enum { |
kValuePos = 0, |
- kDestPos = 1 |
+ kObjectPos = 1 |
}; |
DECLARE_INSTRUCTION(StoreVMField) |
virtual CompileType* ComputeInitialType() const; |
Value* value() const { return inputs_[kValuePos]; } |
- Value* dest() const { return inputs_[kDestPos]; } |
+ Value* dest() const { return inputs_[kObjectPos]; } |
intptr_t offset_in_bytes() const { return offset_in_bytes_; } |
const AbstractType& type() const { return type_; } |