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

Side by Side Diff: src/lithium.h

Issue 9293003: Get rid of a useless helper method in the register allocator. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 8 years, 10 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/hydrogen.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 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 int index() const { return static_cast<int>(value_) >> kKindFieldWidth; } 54 int index() const { return static_cast<int>(value_) >> kKindFieldWidth; }
55 bool IsConstantOperand() const { return kind() == CONSTANT_OPERAND; } 55 bool IsConstantOperand() const { return kind() == CONSTANT_OPERAND; }
56 bool IsStackSlot() const { return kind() == STACK_SLOT; } 56 bool IsStackSlot() const { return kind() == STACK_SLOT; }
57 bool IsDoubleStackSlot() const { return kind() == DOUBLE_STACK_SLOT; } 57 bool IsDoubleStackSlot() const { return kind() == DOUBLE_STACK_SLOT; }
58 bool IsRegister() const { return kind() == REGISTER; } 58 bool IsRegister() const { return kind() == REGISTER; }
59 bool IsDoubleRegister() const { return kind() == DOUBLE_REGISTER; } 59 bool IsDoubleRegister() const { return kind() == DOUBLE_REGISTER; }
60 bool IsArgument() const { return kind() == ARGUMENT; } 60 bool IsArgument() const { return kind() == ARGUMENT; }
61 bool IsUnallocated() const { return kind() == UNALLOCATED; } 61 bool IsUnallocated() const { return kind() == UNALLOCATED; }
62 bool IsIgnored() const { return kind() == INVALID; } 62 bool IsIgnored() const { return kind() == INVALID; }
63 bool Equals(LOperand* other) const { return value_ == other->value_; } 63 bool Equals(LOperand* other) const { return value_ == other->value_; }
64 int VirtualRegister();
65 64
66 void PrintTo(StringStream* stream); 65 void PrintTo(StringStream* stream);
67 void ConvertTo(Kind kind, int index) { 66 void ConvertTo(Kind kind, int index) {
68 value_ = KindField::encode(kind); 67 value_ = KindField::encode(kind);
69 value_ |= index << kKindFieldWidth; 68 value_ |= index << kKindFieldWidth;
70 ASSERT(this->index() == index); 69 ASSERT(this->index() == index);
71 } 70 }
72 71
73 protected: 72 protected:
74 static const int kKindFieldWidth = 3; 73 static const int kKindFieldWidth = 3;
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 return policy() == SAME_AS_FIRST_INPUT; 161 return policy() == SAME_AS_FIRST_INPUT;
163 } 162 }
164 Policy policy() const { return PolicyField::decode(value_); } 163 Policy policy() const { return PolicyField::decode(value_); }
165 void set_policy(Policy policy) { 164 void set_policy(Policy policy) {
166 value_ = PolicyField::update(value_, policy); 165 value_ = PolicyField::update(value_, policy);
167 } 166 }
168 int fixed_index() const { 167 int fixed_index() const {
169 return static_cast<int>(value_) >> kFixedIndexShift; 168 return static_cast<int>(value_) >> kFixedIndexShift;
170 } 169 }
171 170
172 unsigned virtual_register() const { 171 int virtual_register() const {
173 return VirtualRegisterField::decode(value_); 172 return VirtualRegisterField::decode(value_);
174 } 173 }
175 174
176 void set_virtual_register(unsigned id) { 175 void set_virtual_register(unsigned id) {
177 value_ = VirtualRegisterField::update(value_, id); 176 value_ = VirtualRegisterField::update(value_, id);
178 } 177 }
179 178
180 LUnallocated* CopyUnconstrained() { 179 LUnallocated* CopyUnconstrained() {
181 LUnallocated* result = new LUnallocated(ANY); 180 LUnallocated* result = new LUnallocated(ANY);
182 result->set_virtual_register(virtual_register()); 181 result->set_virtual_register(virtual_register());
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 ShallowIterator current_iterator_; 599 ShallowIterator current_iterator_;
601 }; 600 };
602 601
603 602
604 int ElementsKindToShiftSize(ElementsKind elements_kind); 603 int ElementsKindToShiftSize(ElementsKind elements_kind);
605 604
606 605
607 } } // namespace v8::internal 606 } } // namespace v8::internal
608 607
609 #endif // V8_LITHIUM_H_ 608 #endif // V8_LITHIUM_H_
OLDNEW
« no previous file with comments | « src/hydrogen.cc ('k') | src/lithium.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698