Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(233)

Side by Side Diff: runtime/vm/kernel_to_il.h

Issue 2680303002: Kernel debugging; service tests (Closed)
Patch Set: Correct file offset when calling on field (mind the rebase) Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 #ifndef RUNTIME_VM_KERNEL_TO_IL_H_ 5 #ifndef RUNTIME_VM_KERNEL_TO_IL_H_
6 #define RUNTIME_VM_KERNEL_TO_IL_H_ 6 #define RUNTIME_VM_KERNEL_TO_IL_H_
7 7
8 #if !defined(DART_PRECOMPILED_RUNTIME) 8 #if !defined(DART_PRECOMPILED_RUNTIME)
9 9
10 #include "vm/growable_array.h" 10 #include "vm/growable_array.h"
(...skipping 819 matching lines...) Expand 10 before | Expand all | Expand 10 after
830 intptr_t argument_count, 830 intptr_t argument_count,
831 intptr_t num_args_checked = 1); 831 intptr_t num_args_checked = 1);
832 Fragment InstanceCall(TokenPosition position, 832 Fragment InstanceCall(TokenPosition position,
833 const dart::String& name, 833 const dart::String& name,
834 Token::Kind kind, 834 Token::Kind kind,
835 intptr_t argument_count, 835 intptr_t argument_count,
836 const Array& argument_names, 836 const Array& argument_names,
837 intptr_t num_args_checked = 1); 837 intptr_t num_args_checked = 1);
838 Fragment ClosureCall(int argument_count, const Array& argument_names); 838 Fragment ClosureCall(int argument_count, const Array& argument_names);
839 Fragment ThrowException(TokenPosition position); 839 Fragment ThrowException(TokenPosition position);
840 Fragment RethrowException(int catch_try_index); 840 Fragment RethrowException(TokenPosition position, int catch_try_index);
841 Fragment LoadClassId(); 841 Fragment LoadClassId();
842 Fragment LoadField(const dart::Field& field); 842 Fragment LoadField(const dart::Field& field);
843 Fragment LoadField(intptr_t offset, intptr_t class_id = kDynamicCid); 843 Fragment LoadField(intptr_t offset, intptr_t class_id = kDynamicCid);
844 Fragment LoadNativeField(MethodRecognizer::Kind kind, 844 Fragment LoadNativeField(MethodRecognizer::Kind kind,
845 intptr_t offset, 845 intptr_t offset,
846 const Type& type, 846 const Type& type,
847 intptr_t class_id, 847 intptr_t class_id,
848 bool is_immutable = false); 848 bool is_immutable = false);
849 Fragment LoadLocal(LocalVariable* variable); 849 Fragment LoadLocal(LocalVariable* variable);
850 Fragment InitStaticField(const dart::Field& field); 850 Fragment InitStaticField(const dart::Field& field);
(...skipping 10 matching lines...) Expand all
861 intptr_t argument_count, 861 intptr_t argument_count,
862 const Array& argument_names); 862 const Array& argument_names);
863 Fragment StoreIndexed(intptr_t class_id); 863 Fragment StoreIndexed(intptr_t class_id);
864 Fragment StoreInstanceFieldGuarded(const dart::Field& field, 864 Fragment StoreInstanceFieldGuarded(const dart::Field& field,
865 bool is_initialization_store); 865 bool is_initialization_store);
866 Fragment StoreInstanceField( 866 Fragment StoreInstanceField(
867 const dart::Field& field, 867 const dart::Field& field,
868 bool is_initialization_store, 868 bool is_initialization_store,
869 StoreBarrierType emit_store_barrier = kEmitStoreBarrier); 869 StoreBarrierType emit_store_barrier = kEmitStoreBarrier);
870 Fragment StoreInstanceField( 870 Fragment StoreInstanceField(
871 TokenPosition position,
871 intptr_t offset, 872 intptr_t offset,
872 StoreBarrierType emit_store_barrier = kEmitStoreBarrier); 873 StoreBarrierType emit_store_barrier = kEmitStoreBarrier);
873 Fragment StoreLocal(TokenPosition position, LocalVariable* variable); 874 Fragment StoreLocal(TokenPosition position, LocalVariable* variable);
874 Fragment StoreStaticField(const dart::Field& field); 875 Fragment StoreStaticField(TokenPosition position, const dart::Field& field);
875 Fragment StringInterpolate(TokenPosition position); 876 Fragment StringInterpolate(TokenPosition position);
876 Fragment ThrowTypeError(); 877 Fragment ThrowTypeError();
877 Fragment ThrowNoSuchMethodError(); 878 Fragment ThrowNoSuchMethodError();
878 Fragment BuildImplicitClosureCreation(const Function& target); 879 Fragment BuildImplicitClosureCreation(const Function& target);
879 Fragment GuardFieldLength(const dart::Field& field, intptr_t deopt_id); 880 Fragment GuardFieldLength(const dart::Field& field, intptr_t deopt_id);
880 Fragment GuardFieldClass(const dart::Field& field, intptr_t deopt_id); 881 Fragment GuardFieldClass(const dart::Field& field, intptr_t deopt_id);
881 882
882 Fragment EvaluateAssertion(); 883 Fragment EvaluateAssertion();
883 Fragment CheckReturnTypeInCheckedMode(); 884 Fragment CheckReturnTypeInCheckedMode();
884 Fragment CheckVariableTypeInCheckedMode(VariableDeclaration* variable); 885 Fragment CheckVariableTypeInCheckedMode(VariableDeclaration* variable);
885 Fragment CheckBooleanInCheckedMode(); 886 Fragment CheckBooleanInCheckedMode();
886 Fragment CheckAssignableInCheckedMode(const dart::AbstractType& dst_type, 887 Fragment CheckAssignableInCheckedMode(const dart::AbstractType& dst_type,
887 const dart::String& dst_name); 888 const dart::String& dst_name);
888 889
889 Fragment AssertBool(); 890 Fragment AssertBool();
890 Fragment AssertAssignable(const dart::AbstractType& dst_type, 891 Fragment AssertAssignable(const dart::AbstractType& dst_type,
891 const dart::String& dst_name); 892 const dart::String& dst_name);
892 893
894 bool NeedsDebugStepCheck(const Function& function, TokenPosition position);
895 bool NeedsDebugStepCheck(Value* value, TokenPosition position);
896 Fragment DebugStepCheck(TokenPosition position);
897
893 dart::RawFunction* LookupMethodByMember(Member* target, 898 dart::RawFunction* LookupMethodByMember(Member* target,
894 const dart::String& method_name); 899 const dart::String& method_name);
895 900
896 LocalVariable* MakeTemporary(); 901 LocalVariable* MakeTemporary();
897 LocalVariable* MakeNonTemporary(const dart::String& symbol); 902 LocalVariable* MakeNonTemporary(const dart::String& symbol);
898 903
899 intptr_t CurrentTryIndex(); 904 intptr_t CurrentTryIndex();
900 intptr_t AllocateTryIndex() { return next_used_try_index_++; } 905 intptr_t AllocateTryIndex() { return next_used_try_index_++; }
901 906
902 void AddVariable(VariableDeclaration* declaration, LocalVariable* variable); 907 void AddVariable(VariableDeclaration* declaration, LocalVariable* variable);
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
964 LocalVariable* CurrentException() { 969 LocalVariable* CurrentException() {
965 return scopes_->exception_variables[catch_depth_ - 1]; 970 return scopes_->exception_variables[catch_depth_ - 1];
966 } 971 }
967 LocalVariable* CurrentStackTrace() { 972 LocalVariable* CurrentStackTrace() {
968 return scopes_->stack_trace_variables[catch_depth_ - 1]; 973 return scopes_->stack_trace_variables[catch_depth_ - 1];
969 } 974 }
970 LocalVariable* CurrentCatchContext() { 975 LocalVariable* CurrentCatchContext() {
971 return scopes_->catch_context_variables[try_depth_]; 976 return scopes_->catch_context_variables[try_depth_];
972 } 977 }
973 978
979
974 // A chained list of breakable blocks. Chaining and lookup is done by the 980 // A chained list of breakable blocks. Chaining and lookup is done by the
975 // [BreakableBlock] class. 981 // [BreakableBlock] class.
976 BreakableBlock* breakable_block_; 982 BreakableBlock* breakable_block_;
977 983
978 // A chained list of switch blocks. Chaining and lookup is done by the 984 // A chained list of switch blocks. Chaining and lookup is done by the
979 // [SwitchBlock] class. 985 // [SwitchBlock] class.
980 SwitchBlock* switch_block_; 986 SwitchBlock* switch_block_;
981 987
982 // A chained list of try-finally blocks. Chaining and lookup is done by the 988 // A chained list of try-finally blocks. Chaining and lookup is done by the
983 // [TryFinallyBlock] class. 989 // [TryFinallyBlock] class.
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1022 namespace kernel { 1028 namespace kernel {
1023 1029
1024 RawObject* EvaluateMetadata(TreeNode* const kernel_node); 1030 RawObject* EvaluateMetadata(TreeNode* const kernel_node);
1025 RawObject* BuildParameterDescriptor(TreeNode* const kernel_node); 1031 RawObject* BuildParameterDescriptor(TreeNode* const kernel_node);
1026 1032
1027 } // namespace kernel 1033 } // namespace kernel
1028 } // namespace dart 1034 } // namespace dart
1029 1035
1030 #endif // !defined(DART_PRECOMPILED_RUNTIME) 1036 #endif // !defined(DART_PRECOMPILED_RUNTIME)
1031 #endif // RUNTIME_VM_KERNEL_TO_IL_H_ 1037 #endif // RUNTIME_VM_KERNEL_TO_IL_H_
OLDNEW
« no previous file with comments | « runtime/vm/kernel_binary.cc ('k') | runtime/vm/kernel_to_il.cc » ('j') | runtime/vm/object.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698