OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 #include "src/deoptimizer.h" | 5 #include "src/deoptimizer.h" |
6 | 6 |
7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
8 #include "src/ast/prettyprinter.h" | 8 #include "src/ast/prettyprinter.h" |
9 #include "src/codegen.h" | 9 #include "src/codegen.h" |
10 #include "src/disasm.h" | 10 #include "src/disasm.h" |
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
376 // Move the code to the _deoptimized_ code list. | 376 // Move the code to the _deoptimized_ code list. |
377 code->set_next_code_link(context->DeoptimizedCodeListHead()); | 377 code->set_next_code_link(context->DeoptimizedCodeListHead()); |
378 context->SetDeoptimizedCodeListHead(code); | 378 context->SetDeoptimizedCodeListHead(code); |
379 } else { | 379 } else { |
380 // Not marked; preserve this element. | 380 // Not marked; preserve this element. |
381 prev = code; | 381 prev = code; |
382 } | 382 } |
383 element = next; | 383 element = next; |
384 } | 384 } |
385 | 385 |
386 // TODO(titzer): we need a handle scope only because of the macro assembler, | 386 // We need a handle scope only because of the macro assembler, |
387 // which is only used in EnsureCodeForDeoptimizationEntry. | 387 // which is used in code patching in EnsureCodeForDeoptimizationEntry. |
388 HandleScope scope(isolate); | 388 HandleScope scope(isolate); |
389 | 389 |
390 // Now patch all the codes for deoptimization. | 390 // Now patch all the codes for deoptimization. |
391 for (int i = 0; i < codes.length(); i++) { | 391 for (int i = 0; i < codes.length(); i++) { |
392 #ifdef DEBUG | 392 #ifdef DEBUG |
393 if (codes[i] == topmost_optimized_code) { | 393 if (codes[i] == topmost_optimized_code) { |
394 DCHECK(safe_to_deopt_topmost_optimized_code); | 394 DCHECK(safe_to_deopt_topmost_optimized_code); |
395 } | 395 } |
396 #endif | 396 #endif |
397 // It is finally time to die, code object. | 397 // It is finally time to die, code object. |
(...skipping 3403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3801 DCHECK(value_info->IsMaterializedObject()); | 3801 DCHECK(value_info->IsMaterializedObject()); |
3802 | 3802 |
3803 value_info->value_ = | 3803 value_info->value_ = |
3804 Handle<Object>(previously_materialized_objects->get(i), isolate_); | 3804 Handle<Object>(previously_materialized_objects->get(i), isolate_); |
3805 } | 3805 } |
3806 } | 3806 } |
3807 } | 3807 } |
3808 | 3808 |
3809 } // namespace internal | 3809 } // namespace internal |
3810 } // namespace v8 | 3810 } // namespace v8 |
OLD | NEW |