Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef VM_DEOPT_INSTRUCTIONS_H_ | 5 #ifndef VM_DEOPT_INSTRUCTIONS_H_ |
| 6 #define VM_DEOPT_INSTRUCTIONS_H_ | 6 #define VM_DEOPT_INSTRUCTIONS_H_ |
| 7 | 7 |
| 8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
| 9 #include "vm/assembler.h" | 9 #include "vm/assembler.h" |
| 10 #include "vm/code_generator.h" | 10 #include "vm/code_generator.h" |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 195 // for materialization: class of the instance to allocate and field-value | 195 // for materialization: class of the instance to allocate and field-value |
| 196 // pairs for initialization. | 196 // pairs for initialization. |
| 197 // Emitted instructions are expected to follow fixed size section of frame | 197 // Emitted instructions are expected to follow fixed size section of frame |
| 198 // emitted first. This way they become a part of the bottom-most deoptimized | 198 // emitted first. This way they become a part of the bottom-most deoptimized |
| 199 // frame and are discoverable by GC. | 199 // frame and are discoverable by GC. |
| 200 // At deoptimization they will be removed by the stub at the very end: | 200 // At deoptimization they will be removed by the stub at the very end: |
| 201 // after they were used to materialize objects. | 201 // after they were used to materialize objects. |
| 202 // Returns the index of the next stack slot. Used for verification. | 202 // Returns the index of the next stack slot. Used for verification. |
| 203 intptr_t EmitMaterializationArguments(intptr_t to_index); | 203 intptr_t EmitMaterializationArguments(intptr_t to_index); |
| 204 | 204 |
| 205 RawDeoptInfo* CreateDeoptInfo(); | 205 RawDeoptInfo* CreateDeoptInfo(const Array& deopt_table); |
|
Kevin Millikin (Google)
2013/09/13 13:46:18
The table gets threaded around just for verificati
| |
| 206 | 206 |
| 207 // Mark the actual start of the frame description after all materialization | 207 // Mark the actual start of the frame description after all materialization |
| 208 // instructions were emitted. Used for verification purposes. | 208 // instructions were emitted. Used for verification purposes. |
| 209 void MarkFrameStart() { | 209 void MarkFrameStart() { |
| 210 ASSERT(frame_start_ == -1); | 210 ASSERT(frame_start_ == -1); |
| 211 frame_start_ = instructions_.length(); | 211 frame_start_ = instructions_.length(); |
| 212 } | 212 } |
| 213 | 213 |
| 214 private: | 214 private: |
| 215 class TrieNode; | 215 class TrieNode; |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 266 DeoptInfo* info, | 266 DeoptInfo* info, |
| 267 Smi* reason); | 267 Smi* reason); |
| 268 | 268 |
| 269 private: | 269 private: |
| 270 static const intptr_t kEntrySize = 3; | 270 static const intptr_t kEntrySize = 3; |
| 271 }; | 271 }; |
| 272 | 272 |
| 273 } // namespace dart | 273 } // namespace dart |
| 274 | 274 |
| 275 #endif // VM_DEOPT_INSTRUCTIONS_H_ | 275 #endif // VM_DEOPT_INSTRUCTIONS_H_ |
| OLD | NEW |