Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 #include "vm/compiler.h" | 5 #include "vm/compiler.h" |
| 6 | 6 |
| 7 #include "vm/assembler.h" | 7 #include "vm/assembler.h" |
| 8 #include "vm/ast_printer.h" | 8 #include "vm/ast_printer.h" |
| 9 #include "vm/code_generator.h" | 9 #include "vm/code_generator.h" |
| 10 #include "vm/code_patcher.h" | 10 #include "vm/code_patcher.h" |
| (...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 330 | 330 |
| 331 OS::Print("PC Descriptors for function '%s' {\n", function_fullname); | 331 OS::Print("PC Descriptors for function '%s' {\n", function_fullname); |
| 332 PcDescriptors::PrintHeaderString(); | 332 PcDescriptors::PrintHeaderString(); |
| 333 const PcDescriptors& descriptors = | 333 const PcDescriptors& descriptors = |
| 334 PcDescriptors::Handle(code.pc_descriptors()); | 334 PcDescriptors::Handle(code.pc_descriptors()); |
| 335 OS::Print("%s}\n", descriptors.ToCString()); | 335 OS::Print("%s}\n", descriptors.ToCString()); |
| 336 | 336 |
| 337 const Array& deopt_info_array = Array::Handle(code.deopt_info_array()); | 337 const Array& deopt_info_array = Array::Handle(code.deopt_info_array()); |
| 338 if (deopt_info_array.Length() > 0) { | 338 if (deopt_info_array.Length() > 0) { |
| 339 OS::Print("DeoptInfo: {\n"); | 339 OS::Print("DeoptInfo: {\n"); |
| 340 for (intptr_t i = 0; i < deopt_info_array.Length(); i++) { | 340 Smi& offset = Smi::Handle(); |
| 341 OS::Print(" %"Pd": %s\n", | 341 DeoptInfo& info = DeoptInfo::Handle(); |
| 342 i, Object::Handle(deopt_info_array.At(i)).ToCString()); | 342 Smi& reason = Smi::Handle(); |
| 343 intptr_t i = 0; | |
|
srdjan
2012/09/28 21:00:26
You need to move the knowledge about the deopt_inf
Kevin Millikin (Google)
2012/10/01 09:38:56
I stopped short of making it a subclass of Object.
| |
| 344 while (i < deopt_info_array.Length()) { | |
| 345 offset ^= deopt_info_array.At(i++); | |
| 346 info ^= deopt_info_array.At(i++); | |
| 347 reason ^= deopt_info_array.At(i++); | |
| 348 OS::Print("0x%"Px" %s (%s)\n", | |
| 349 start + offset.Value(), | |
| 350 info.ToCString(), | |
| 351 DeoptReasonToText(reason.Value())); | |
| 343 } | 352 } |
| 344 OS::Print("}\n"); | 353 OS::Print("}\n"); |
| 345 } | 354 } |
| 346 | 355 |
| 347 const Array& object_table = Array::Handle(code.object_table()); | 356 const Array& object_table = Array::Handle(code.object_table()); |
| 348 if (object_table.Length() > 0) { | 357 if (object_table.Length() > 0) { |
| 349 OS::Print("Object Table: {\n"); | 358 OS::Print("Object Table: {\n"); |
| 350 for (intptr_t i = 0; i < object_table.Length(); i++) { | 359 for (intptr_t i = 0; i < object_table.Length(); i++) { |
| 351 OS::Print(" %"Pd": %s\n", i, | 360 OS::Print(" %"Pd": %s\n", i, |
| 352 Object::Handle(object_table.At(i)).ToCString()); | 361 Object::Handle(object_table.At(i)).ToCString()); |
| (...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 584 result = isolate->object_store()->sticky_error(); | 593 result = isolate->object_store()->sticky_error(); |
| 585 isolate->object_store()->clear_sticky_error(); | 594 isolate->object_store()->clear_sticky_error(); |
| 586 isolate->set_long_jump_base(base); | 595 isolate->set_long_jump_base(base); |
| 587 return result.raw(); | 596 return result.raw(); |
| 588 } | 597 } |
| 589 UNREACHABLE(); | 598 UNREACHABLE(); |
| 590 return Object::null(); | 599 return Object::null(); |
| 591 } | 600 } |
| 592 | 601 |
| 593 } // namespace dart | 602 } // namespace dart |
| OLD | NEW |