OLD | NEW |
1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 2009 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 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 | 146 |
147 // Spill all occurrences of an arbitrary register if possible. Return the | 147 // Spill all occurrences of an arbitrary register if possible. Return the |
148 // register spilled or no_reg if it was not possible to free any register | 148 // register spilled or no_reg if it was not possible to free any register |
149 // (ie, they all have frame-external references). | 149 // (ie, they all have frame-external references). |
150 Register SpillAnyRegister(); | 150 Register SpillAnyRegister(); |
151 | 151 |
152 // Sync the range of elements in [begin, end] with memory. | 152 // Sync the range of elements in [begin, end] with memory. |
153 void SyncRange(int begin, int end); | 153 void SyncRange(int begin, int end); |
154 | 154 |
155 // Make this frame so that an arbitrary frame of the same height can | 155 // Make this frame so that an arbitrary frame of the same height can |
156 // be merged to it. Copies and constants are removed from the | 156 // be merged to it. Copies and constants are removed from the frame. |
157 // topmost mergable_elements elements of the frame. A | 157 void MakeMergable(); |
158 // mergable_elements of JumpTarget::kAllElements indicates constants | |
159 // and copies are should be removed from the entire frame. | |
160 void MakeMergable(int mergable_elements); | |
161 | 158 |
162 // Prepare this virtual frame for merging to an expected frame by | 159 // Prepare this virtual frame for merging to an expected frame by |
163 // performing some state changes that do not require generating | 160 // performing some state changes that do not require generating |
164 // code. It is guaranteed that no code will be generated. | 161 // code. It is guaranteed that no code will be generated. |
165 void PrepareMergeTo(VirtualFrame* expected); | 162 void PrepareMergeTo(VirtualFrame* expected); |
166 | 163 |
167 // Make this virtual frame have a state identical to an expected virtual | 164 // Make this virtual frame have a state identical to an expected virtual |
168 // frame. As a side effect, code may be emitted to make this frame match | 165 // frame. As a side effect, code may be emitted to make this frame match |
169 // the expected one. | 166 // the expected one. |
170 void MergeTo(VirtualFrame* expected); | 167 void MergeTo(VirtualFrame* expected); |
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
547 | 544 |
548 // Classes that need raw access to the elements_ array. | 545 // Classes that need raw access to the elements_ array. |
549 friend class DeferredCode; | 546 friend class DeferredCode; |
550 friend class JumpTarget; | 547 friend class JumpTarget; |
551 }; | 548 }; |
552 | 549 |
553 | 550 |
554 } } // namespace v8::internal | 551 } } // namespace v8::internal |
555 | 552 |
556 #endif // V8_X64_VIRTUAL_FRAME_X64_H_ | 553 #endif // V8_X64_VIRTUAL_FRAME_X64_H_ |
OLD | NEW |