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 6798 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6809 return StoringValueNeedsWriteBarrier(value()) && | 6809 return StoringValueNeedsWriteBarrier(value()) && |
6810 ReceiverObjectNeedsWriteBarrier(object(), value(), | 6810 ReceiverObjectNeedsWriteBarrier(object(), value(), |
6811 new_space_dominator()); | 6811 new_space_dominator()); |
6812 } | 6812 } |
6813 | 6813 |
6814 bool NeedsWriteBarrierForMap() { | 6814 bool NeedsWriteBarrierForMap() { |
6815 return ReceiverObjectNeedsWriteBarrier(object(), transition(), | 6815 return ReceiverObjectNeedsWriteBarrier(object(), transition(), |
6816 new_space_dominator()); | 6816 new_space_dominator()); |
6817 } | 6817 } |
6818 | 6818 |
| 6819 SmiCheck SmiCheckForWriteBarrier() const { |
| 6820 if (field_representation().IsHeapObject()) return OMIT_SMI_CHECK; |
| 6821 if (value()->IsHeapObject()) return OMIT_SMI_CHECK; |
| 6822 return INLINE_SMI_CHECK; |
| 6823 } |
| 6824 |
6819 Representation field_representation() const { | 6825 Representation field_representation() const { |
6820 return access_.representation(); | 6826 return access_.representation(); |
6821 } | 6827 } |
6822 | 6828 |
6823 void UpdateValue(HValue* value) { | 6829 void UpdateValue(HValue* value) { |
6824 SetOperandAt(1, value); | 6830 SetOperandAt(1, value); |
6825 } | 6831 } |
6826 | 6832 |
6827 bool CanBeReplacedWith(HStoreNamedField* that) const { | 6833 bool CanBeReplacedWith(HStoreNamedField* that) const { |
6828 if (!this->access().Equals(that->access())) return false; | 6834 if (!this->access().Equals(that->access())) return false; |
(...skipping 974 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7803 virtual bool IsDeletable() const V8_OVERRIDE { return true; } | 7809 virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
7804 }; | 7810 }; |
7805 | 7811 |
7806 | 7812 |
7807 #undef DECLARE_INSTRUCTION | 7813 #undef DECLARE_INSTRUCTION |
7808 #undef DECLARE_CONCRETE_INSTRUCTION | 7814 #undef DECLARE_CONCRETE_INSTRUCTION |
7809 | 7815 |
7810 } } // namespace v8::internal | 7816 } } // namespace v8::internal |
7811 | 7817 |
7812 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ | 7818 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ |
OLD | NEW |