Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Side by Side Diff: src/lithium.h

Issue 261933002: ARM64: Introduce TempDoubleRegister as a lithium operand constraint. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/arm64/lithium-arm64.cc ('k') | src/lithium.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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_
OLDNEW
« no previous file with comments | « src/arm64/lithium-arm64.cc ('k') | src/lithium.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698