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