| 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 | 8 |
| 9 #include "vm/ast_printer.h" | 9 #include "vm/ast_printer.h" |
| 10 #include "vm/code_generator.h" | 10 #include "vm/code_generator.h" |
| (...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 376 Object::Handle(object_table.At(i)).ToCString()); | 376 Object::Handle(object_table.At(i)).ToCString()); |
| 377 } | 377 } |
| 378 OS::Print("}\n"); | 378 OS::Print("}\n"); |
| 379 } | 379 } |
| 380 | 380 |
| 381 OS::Print("Stackmaps for function '%s' {\n", function_fullname); | 381 OS::Print("Stackmaps for function '%s' {\n", function_fullname); |
| 382 if (code.stackmaps() != Array::null()) { | 382 if (code.stackmaps() != Array::null()) { |
| 383 const Array& stackmap_table = Array::Handle(code.stackmaps()); | 383 const Array& stackmap_table = Array::Handle(code.stackmaps()); |
| 384 Stackmap& map = Stackmap::Handle(); | 384 Stackmap& map = Stackmap::Handle(); |
| 385 for (intptr_t i = 0; i < stackmap_table.Length(); ++i) { | 385 for (intptr_t i = 0; i < stackmap_table.Length(); ++i) { |
| 386 map ^= stackmap_table.At(i); | 386 map |= stackmap_table.At(i); |
| 387 OS::Print("%s\n", map.ToCString()); | 387 OS::Print("%s\n", map.ToCString()); |
| 388 } | 388 } |
| 389 } | 389 } |
| 390 OS::Print("}\n"); | 390 OS::Print("}\n"); |
| 391 | 391 |
| 392 OS::Print("Variable Descriptors for function '%s' {\n", | 392 OS::Print("Variable Descriptors for function '%s' {\n", |
| 393 function_fullname); | 393 function_fullname); |
| 394 const LocalVarDescriptors& var_descriptors = | 394 const LocalVarDescriptors& var_descriptors = |
| 395 LocalVarDescriptors::Handle(code.var_descriptors()); | 395 LocalVarDescriptors::Handle(code.var_descriptors()); |
| 396 intptr_t var_desc_length = | 396 intptr_t var_desc_length = |
| (...skipping 29 matching lines...) Expand all Loading... |
| 426 OS::Print("%s}\n", handlers.ToCString()); | 426 OS::Print("%s}\n", handlers.ToCString()); |
| 427 | 427 |
| 428 { | 428 { |
| 429 OS::Print("Static call target functions {\n"); | 429 OS::Print("Static call target functions {\n"); |
| 430 const Array& table = Array::Handle(code.static_calls_target_table()); | 430 const Array& table = Array::Handle(code.static_calls_target_table()); |
| 431 Smi& offset = Smi::Handle(); | 431 Smi& offset = Smi::Handle(); |
| 432 Function& function = Function::Handle(); | 432 Function& function = Function::Handle(); |
| 433 Code& code = Code::Handle(); | 433 Code& code = Code::Handle(); |
| 434 for (intptr_t i = 0; i < table.Length(); | 434 for (intptr_t i = 0; i < table.Length(); |
| 435 i += Code::kSCallTableEntryLength) { | 435 i += Code::kSCallTableEntryLength) { |
| 436 offset ^= table.At(i + Code::kSCallTableOffsetEntry); | 436 offset |= table.At(i + Code::kSCallTableOffsetEntry); |
| 437 function ^= table.At(i + Code::kSCallTableFunctionEntry); | 437 function |= table.At(i + Code::kSCallTableFunctionEntry); |
| 438 code ^= table.At(i + Code::kSCallTableCodeEntry); | 438 code |= table.At(i + Code::kSCallTableCodeEntry); |
| 439 OS::Print(" 0x%"Px": %s, %p\n", | 439 OS::Print(" 0x%"Px": %s, %p\n", |
| 440 start + offset.Value(), | 440 start + offset.Value(), |
| 441 function.ToFullyQualifiedCString(), | 441 function.ToFullyQualifiedCString(), |
| 442 code.raw()); | 442 code.raw()); |
| 443 } | 443 } |
| 444 OS::Print("}\n"); | 444 OS::Print("}\n"); |
| 445 } | 445 } |
| 446 } | 446 } |
| 447 | 447 |
| 448 | 448 |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 564 Error& error = Error::Handle(); | 564 Error& error = Error::Handle(); |
| 565 Array& functions = Array::Handle(cls.functions()); | 565 Array& functions = Array::Handle(cls.functions()); |
| 566 Function& func = Function::Handle(); | 566 Function& func = Function::Handle(); |
| 567 // Class dynamic lives in the vm isolate. Its array fields cannot be set to | 567 // Class dynamic lives in the vm isolate. Its array fields cannot be set to |
| 568 // an empty array. | 568 // an empty array. |
| 569 if (functions.IsNull()) { | 569 if (functions.IsNull()) { |
| 570 ASSERT(cls.IsDynamicClass()); | 570 ASSERT(cls.IsDynamicClass()); |
| 571 return error.raw(); | 571 return error.raw(); |
| 572 } | 572 } |
| 573 for (int i = 0; i < functions.Length(); i++) { | 573 for (int i = 0; i < functions.Length(); i++) { |
| 574 func ^= functions.At(i); | 574 func |= functions.At(i); |
| 575 ASSERT(!func.IsNull()); | 575 ASSERT(!func.IsNull()); |
| 576 if (!func.HasCode() && | 576 if (!func.HasCode() && |
| 577 !func.is_abstract() && | 577 !func.is_abstract() && |
| 578 !func.IsRedirectingFactory()) { | 578 !func.IsRedirectingFactory()) { |
| 579 error = CompileFunction(func); | 579 error = CompileFunction(func); |
| 580 if (!error.IsNull()) { | 580 if (!error.IsNull()) { |
| 581 return error.raw(); | 581 return error.raw(); |
| 582 } | 582 } |
| 583 } | 583 } |
| 584 } | 584 } |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 640 Object::Handle(isolate->object_store()->sticky_error()); | 640 Object::Handle(isolate->object_store()->sticky_error()); |
| 641 isolate->object_store()->clear_sticky_error(); | 641 isolate->object_store()->clear_sticky_error(); |
| 642 isolate->set_long_jump_base(base); | 642 isolate->set_long_jump_base(base); |
| 643 return result.raw(); | 643 return result.raw(); |
| 644 } | 644 } |
| 645 UNREACHABLE(); | 645 UNREACHABLE(); |
| 646 return Object::null(); | 646 return Object::null(); |
| 647 } | 647 } |
| 648 | 648 |
| 649 } // namespace dart | 649 } // namespace dart |
| OLD | NEW |