| 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 #include "vm/code_generator.h" | 5 #include "vm/code_generator.h" |
| 6 | 6 |
| 7 #include "vm/assembler.h" | 7 #include "vm/assembler.h" |
| 8 #include "vm/ast.h" | 8 #include "vm/ast.h" |
| 9 #include "vm/bigint_operations.h" | 9 #include "vm/bigint_operations.h" |
| 10 #include "vm/code_patcher.h" | 10 #include "vm/code_patcher.h" |
| (...skipping 820 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 831 isolate->debugger()->SignalBpReached(); | 831 isolate->debugger()->SignalBpReached(); |
| 832 // Make sure the static function that is about to be called is | 832 // Make sure the static function that is about to be called is |
| 833 // compiled. The stub will jump to the entry point without any | 833 // compiled. The stub will jump to the entry point without any |
| 834 // further tests. | 834 // further tests. |
| 835 DartFrameIterator iterator; | 835 DartFrameIterator iterator; |
| 836 StackFrame* caller_frame = iterator.NextFrame(); | 836 StackFrame* caller_frame = iterator.NextFrame(); |
| 837 ASSERT(caller_frame != NULL); | 837 ASSERT(caller_frame != NULL); |
| 838 const Code& code = Code::Handle(caller_frame->LookupDartCode()); | 838 const Code& code = Code::Handle(caller_frame->LookupDartCode()); |
| 839 ASSERT(!code.is_optimized()); | 839 ASSERT(!code.is_optimized()); |
| 840 const Function& function = | 840 const Function& function = |
| 841 Function::Handle(CodePatcher::GetUnoptimizedStaticCallTargetAt( | 841 Function::Handle(CodePatcher::GetUnoptimizedStaticCallAt( |
| 842 caller_frame->pc(), code)); | 842 caller_frame->pc(), code, NULL)); |
| 843 | 843 |
| 844 if (!function.HasCode()) { | 844 if (!function.HasCode()) { |
| 845 const Error& error = Error::Handle(Compiler::CompileFunction(function)); | 845 const Error& error = Error::Handle(Compiler::CompileFunction(function)); |
| 846 if (!error.IsNull()) { | 846 if (!error.IsNull()) { |
| 847 Exceptions::PropagateError(error); | 847 Exceptions::PropagateError(error); |
| 848 } | 848 } |
| 849 } | 849 } |
| 850 arguments.SetReturn(Code::ZoneHandle(function.CurrentCode())); | 850 arguments.SetReturn(Code::ZoneHandle(function.CurrentCode())); |
| 851 } | 851 } |
| 852 | 852 |
| (...skipping 1018 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1871 // Arg1: Value that is being stored. | 1871 // Arg1: Value that is being stored. |
| 1872 DEFINE_RUNTIME_ENTRY(UpdateFieldCid, 2) { | 1872 DEFINE_RUNTIME_ENTRY(UpdateFieldCid, 2) { |
| 1873 ASSERT(arguments.ArgCount() == kUpdateFieldCidRuntimeEntry.argument_count()); | 1873 ASSERT(arguments.ArgCount() == kUpdateFieldCidRuntimeEntry.argument_count()); |
| 1874 const Field& field = Field::CheckedHandle(arguments.ArgAt(0)); | 1874 const Field& field = Field::CheckedHandle(arguments.ArgAt(0)); |
| 1875 const Object& value = Object::Handle(arguments.ArgAt(1)); | 1875 const Object& value = Object::Handle(arguments.ArgAt(1)); |
| 1876 | 1876 |
| 1877 field.UpdateCid(value.GetClassId()); | 1877 field.UpdateCid(value.GetClassId()); |
| 1878 } | 1878 } |
| 1879 | 1879 |
| 1880 } // namespace dart | 1880 } // namespace dart |
| OLD | NEW |