OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_HYDROGEN_INSTRUCTIONS_H_ | 5 #ifndef V8_HYDROGEN_INSTRUCTIONS_H_ |
6 #define V8_HYDROGEN_INSTRUCTIONS_H_ | 6 #define V8_HYDROGEN_INSTRUCTIONS_H_ |
7 | 7 |
8 #include "v8.h" | 8 #include "v8.h" |
9 | 9 |
10 #include "allocation.h" | 10 #include "allocation.h" |
(...skipping 6708 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6719 HConstant::cast(transition())->handle(Isolate::Current())); | 6719 HConstant::cast(transition())->handle(Isolate::Current())); |
6720 } else { | 6720 } else { |
6721 return Handle<Map>(); | 6721 return Handle<Map>(); |
6722 } | 6722 } |
6723 } | 6723 } |
6724 | 6724 |
6725 void SetTransition(HConstant* transition) { | 6725 void SetTransition(HConstant* transition) { |
6726 ASSERT(!has_transition()); // Only set once. | 6726 ASSERT(!has_transition()); // Only set once. |
6727 SetOperandAt(2, transition); | 6727 SetOperandAt(2, transition); |
6728 has_transition_ = true; | 6728 has_transition_ = true; |
| 6729 SetChangesFlag(kMaps); |
6729 } | 6730 } |
6730 | 6731 |
6731 bool NeedsWriteBarrier() { | 6732 bool NeedsWriteBarrier() { |
6732 ASSERT(!field_representation().IsDouble() || !has_transition()); | 6733 ASSERT(!field_representation().IsDouble() || !has_transition()); |
6733 if (field_representation().IsDouble()) return false; | 6734 if (field_representation().IsDouble()) return false; |
6734 if (field_representation().IsSmi()) return false; | 6735 if (field_representation().IsSmi()) return false; |
6735 if (field_representation().IsInteger32()) return false; | 6736 if (field_representation().IsInteger32()) return false; |
6736 if (field_representation().IsExternal()) return false; | 6737 if (field_representation().IsExternal()) return false; |
6737 return StoringValueNeedsWriteBarrier(value()) && | 6738 return StoringValueNeedsWriteBarrier(value()) && |
6738 ReceiverObjectNeedsWriteBarrier(object(), value(), | 6739 ReceiverObjectNeedsWriteBarrier(object(), value(), |
(...skipping 972 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7711 virtual bool IsDeletable() const V8_OVERRIDE { return true; } | 7712 virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
7712 }; | 7713 }; |
7713 | 7714 |
7714 | 7715 |
7715 #undef DECLARE_INSTRUCTION | 7716 #undef DECLARE_INSTRUCTION |
7716 #undef DECLARE_CONCRETE_INSTRUCTION | 7717 #undef DECLARE_CONCRETE_INSTRUCTION |
7717 | 7718 |
7718 } } // namespace v8::internal | 7719 } } // namespace v8::internal |
7719 | 7720 |
7720 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ | 7721 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ |
OLD | NEW |