| 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_DEOPTIMIZER_H_ | 5 #ifndef V8_DEOPTIMIZER_H_ |
| 6 #define V8_DEOPTIMIZER_H_ | 6 #define V8_DEOPTIMIZER_H_ |
| 7 | 7 |
| 8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
| 9 #include "src/macro-assembler.h" | 9 #include "src/macro-assembler.h" |
| 10 | 10 |
| (...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 486 Address from, | 486 Address from, |
| 487 int fp_to_sp_delta, | 487 int fp_to_sp_delta, |
| 488 Isolate* isolate); | 488 Isolate* isolate); |
| 489 static Deoptimizer* Grab(Isolate* isolate); | 489 static Deoptimizer* Grab(Isolate* isolate); |
| 490 | 490 |
| 491 // The returned object with information on the optimized frame needs to be | 491 // The returned object with information on the optimized frame needs to be |
| 492 // freed before another one can be generated. | 492 // freed before another one can be generated. |
| 493 static DeoptimizedFrameInfo* DebuggerInspectableFrame(JavaScriptFrame* frame, | 493 static DeoptimizedFrameInfo* DebuggerInspectableFrame(JavaScriptFrame* frame, |
| 494 int jsframe_index, | 494 int jsframe_index, |
| 495 Isolate* isolate); | 495 Isolate* isolate); |
| 496 static void DeleteDebuggerInspectableFrame(DeoptimizedFrameInfo* info, | |
| 497 Isolate* isolate); | |
| 498 | 496 |
| 499 // Makes sure that there is enough room in the relocation | 497 // Makes sure that there is enough room in the relocation |
| 500 // information of a code object to perform lazy deoptimization | 498 // information of a code object to perform lazy deoptimization |
| 501 // patching. If there is not enough room a new relocation | 499 // patching. If there is not enough room a new relocation |
| 502 // information object is allocated and comments are added until it | 500 // information object is allocated and comments are added until it |
| 503 // is big enough. | 501 // is big enough. |
| 504 static void EnsureRelocSpaceForLazyDeoptimization(Handle<Code> code); | 502 static void EnsureRelocSpaceForLazyDeoptimization(Handle<Code> code); |
| 505 | 503 |
| 506 // Deoptimize the function now. Its current optimized code will never be run | 504 // Deoptimize the function now. Its current optimized code will never be run |
| 507 // again and any activations of the optimized code will get deoptimized when | 505 // again and any activations of the optimized code will get deoptimized when |
| (...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1154 std::vector<Handle<Object> > expression_stack_; | 1152 std::vector<Handle<Object> > expression_stack_; |
| 1155 int source_position_; | 1153 int source_position_; |
| 1156 | 1154 |
| 1157 friend class Deoptimizer; | 1155 friend class Deoptimizer; |
| 1158 }; | 1156 }; |
| 1159 | 1157 |
| 1160 } // namespace internal | 1158 } // namespace internal |
| 1161 } // namespace v8 | 1159 } // namespace v8 |
| 1162 | 1160 |
| 1163 #endif // V8_DEOPTIMIZER_H_ | 1161 #endif // V8_DEOPTIMIZER_H_ |
| OLD | NEW |