| 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_LITHIUM_H_ | 5 #ifndef V8_LITHIUM_H_ |
| 6 #define V8_LITHIUM_H_ | 6 #define V8_LITHIUM_H_ |
| 7 | 7 |
| 8 #include <set> | 8 #include <set> |
| 9 | 9 |
| 10 #include "allocation.h" | 10 #include "allocation.h" |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 FIXED_SLOT, | 74 FIXED_SLOT, |
| 75 EXTENDED_POLICY | 75 EXTENDED_POLICY |
| 76 }; | 76 }; |
| 77 | 77 |
| 78 enum ExtendedPolicy { | 78 enum ExtendedPolicy { |
| 79 NONE, | 79 NONE, |
| 80 ANY, | 80 ANY, |
| 81 FIXED_REGISTER, | 81 FIXED_REGISTER, |
| 82 FIXED_DOUBLE_REGISTER, | 82 FIXED_DOUBLE_REGISTER, |
| 83 MUST_HAVE_REGISTER, | 83 MUST_HAVE_REGISTER, |
| 84 MUST_HAVE_DOUBLE_REGISTER, |
| 84 WRITABLE_REGISTER, | 85 WRITABLE_REGISTER, |
| 85 SAME_AS_FIRST_INPUT | 86 SAME_AS_FIRST_INPUT |
| 86 }; | 87 }; |
| 87 | 88 |
| 88 // Lifetime of operand inside the instruction. | 89 // Lifetime of operand inside the instruction. |
| 89 enum Lifetime { | 90 enum Lifetime { |
| 90 // USED_AT_START operand is guaranteed to be live only at | 91 // USED_AT_START operand is guaranteed to be live only at |
| 91 // instruction start. Register allocator is free to assign the same register | 92 // instruction start. Register allocator is free to assign the same register |
| 92 // to some other operand used inside instruction (i.e. temporary or | 93 // to some other operand used inside instruction (i.e. temporary or |
| 93 // output). | 94 // output). |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 bool HasFixedPolicy() const { | 184 bool HasFixedPolicy() const { |
| 184 return basic_policy() == FIXED_SLOT || | 185 return basic_policy() == FIXED_SLOT || |
| 185 extended_policy() == FIXED_REGISTER || | 186 extended_policy() == FIXED_REGISTER || |
| 186 extended_policy() == FIXED_DOUBLE_REGISTER; | 187 extended_policy() == FIXED_DOUBLE_REGISTER; |
| 187 } | 188 } |
| 188 bool HasRegisterPolicy() const { | 189 bool HasRegisterPolicy() const { |
| 189 return basic_policy() == EXTENDED_POLICY && ( | 190 return basic_policy() == EXTENDED_POLICY && ( |
| 190 extended_policy() == WRITABLE_REGISTER || | 191 extended_policy() == WRITABLE_REGISTER || |
| 191 extended_policy() == MUST_HAVE_REGISTER); | 192 extended_policy() == MUST_HAVE_REGISTER); |
| 192 } | 193 } |
| 194 bool HasDoubleRegisterPolicy() const { |
| 195 return basic_policy() == EXTENDED_POLICY && |
| 196 extended_policy() == MUST_HAVE_DOUBLE_REGISTER; |
| 197 } |
| 193 bool HasSameAsInputPolicy() const { | 198 bool HasSameAsInputPolicy() const { |
| 194 return basic_policy() == EXTENDED_POLICY && | 199 return basic_policy() == EXTENDED_POLICY && |
| 195 extended_policy() == SAME_AS_FIRST_INPUT; | 200 extended_policy() == SAME_AS_FIRST_INPUT; |
| 196 } | 201 } |
| 197 bool HasFixedSlotPolicy() const { | 202 bool HasFixedSlotPolicy() const { |
| 198 return basic_policy() == FIXED_SLOT; | 203 return basic_policy() == FIXED_SLOT; |
| 199 } | 204 } |
| 200 bool HasFixedRegisterPolicy() const { | 205 bool HasFixedRegisterPolicy() const { |
| 201 return basic_policy() == EXTENDED_POLICY && | 206 return basic_policy() == EXTENDED_POLICY && |
| 202 extended_policy() == FIXED_REGISTER; | 207 extended_policy() == FIXED_REGISTER; |
| (...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 730 private: | 735 private: |
| 731 LChunk* chunk_; | 736 LChunk* chunk_; |
| 732 | 737 |
| 733 DISALLOW_COPY_AND_ASSIGN(LPhase); | 738 DISALLOW_COPY_AND_ASSIGN(LPhase); |
| 734 }; | 739 }; |
| 735 | 740 |
| 736 | 741 |
| 737 } } // namespace v8::internal | 742 } } // namespace v8::internal |
| 738 | 743 |
| 739 #endif // V8_LITHIUM_H_ | 744 #endif // V8_LITHIUM_H_ |
| OLD | NEW |