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 #ifndef RUNTIME_VM_RAW_OBJECT_H_ | 5 #ifndef RUNTIME_VM_RAW_OBJECT_H_ |
6 #define RUNTIME_VM_RAW_OBJECT_H_ | 6 #define RUNTIME_VM_RAW_OBJECT_H_ |
7 | 7 |
8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
9 #include "vm/atomic.h" | 9 #include "vm/atomic.h" |
10 #include "vm/exceptions.h" | 10 #include "vm/exceptions.h" |
(...skipping 864 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
875 RawObject** to() { | 875 RawObject** to() { |
876 #if defined(DART_PRECOMPILED_RUNTIME) | 876 #if defined(DART_PRECOMPILED_RUNTIME) |
877 return reinterpret_cast<RawObject**>(&ptr()->code_); | 877 return reinterpret_cast<RawObject**>(&ptr()->code_); |
878 #else | 878 #else |
879 return reinterpret_cast<RawObject**>(&ptr()->unoptimized_code_); | 879 return reinterpret_cast<RawObject**>(&ptr()->unoptimized_code_); |
880 #endif | 880 #endif |
881 } | 881 } |
882 | 882 |
883 NOT_IN_PRECOMPILED(TokenPosition token_pos_); | 883 NOT_IN_PRECOMPILED(TokenPosition token_pos_); |
884 NOT_IN_PRECOMPILED(TokenPosition end_token_pos_); | 884 NOT_IN_PRECOMPILED(TokenPosition end_token_pos_); |
885 NOT_IN_PRECOMPILED(intptr_t kernel_offset_); | |
886 NOT_IN_PRECOMPILED(int32_t usage_counter_); // Accessed from generated code | |
887 // (JIT only). | |
888 uint32_t kind_tag_; // See Function::KindTagBits. | 885 uint32_t kind_tag_; // See Function::KindTagBits. |
889 int16_t num_fixed_parameters_; | 886 int16_t num_fixed_parameters_; |
890 int16_t num_optional_parameters_; // > 0: positional; < 0: named. | 887 int16_t num_optional_parameters_; // > 0: positional; < 0: named. |
891 NOT_IN_PRECOMPILED(uint16_t optimized_instruction_count_); | 888 |
892 NOT_IN_PRECOMPILED(uint16_t optimized_call_site_count_); | 889 #define JIT_FUNCTION_COUNTERS(F) \ |
893 NOT_IN_PRECOMPILED(int8_t deoptimization_counter_); | 890 F(intptr_t, intptr_t, kernel_offset) \ |
894 NOT_IN_PRECOMPILED(int8_t was_compiled_); | 891 F(intptr_t, int32_t, usage_counter) \ |
| 892 F(intptr_t, uint16_t, optimized_instruction_count) \ |
| 893 F(intptr_t, uint16_t, optimized_call_site_count) \ |
| 894 F(int8_t, int8_t, deoptimization_counter) \ |
| 895 F(intptr_t, int8_t, was_compiled_numeric) \ |
| 896 F(int, int8_t, inlining_depth) |
| 897 |
| 898 #if !defined(DART_PRECOMPILED_RUNTIME) |
| 899 #define DECLARE(return_type, type, name) type name##_; |
| 900 |
| 901 JIT_FUNCTION_COUNTERS(DECLARE) |
| 902 |
| 903 #undef DECLARE |
| 904 #endif |
895 }; | 905 }; |
896 | 906 |
897 class RawClosureData : public RawObject { | 907 class RawClosureData : public RawObject { |
898 private: | 908 private: |
899 RAW_HEAP_OBJECT_IMPLEMENTATION(ClosureData); | 909 RAW_HEAP_OBJECT_IMPLEMENTATION(ClosureData); |
900 | 910 |
901 RawObject** from() { | 911 RawObject** from() { |
902 return reinterpret_cast<RawObject**>(&ptr()->context_scope_); | 912 return reinterpret_cast<RawObject**>(&ptr()->context_scope_); |
903 } | 913 } |
904 RawContextScope* context_scope_; | 914 RawContextScope* context_scope_; |
(...skipping 1548 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2453 COMPILE_ASSERT(kExternalTypedDataInt8ArrayCid == | 2463 COMPILE_ASSERT(kExternalTypedDataInt8ArrayCid == |
2454 kTypedDataInt8ArrayViewCid + 15); | 2464 kTypedDataInt8ArrayViewCid + 15); |
2455 COMPILE_ASSERT(kByteBufferCid == kExternalTypedDataInt8ArrayCid + 14); | 2465 COMPILE_ASSERT(kByteBufferCid == kExternalTypedDataInt8ArrayCid + 14); |
2456 COMPILE_ASSERT(kNullCid == kByteBufferCid + 1); | 2466 COMPILE_ASSERT(kNullCid == kByteBufferCid + 1); |
2457 return (kNullCid - kTypedDataInt8ArrayCid); | 2467 return (kNullCid - kTypedDataInt8ArrayCid); |
2458 } | 2468 } |
2459 | 2469 |
2460 } // namespace dart | 2470 } // namespace dart |
2461 | 2471 |
2462 #endif // RUNTIME_VM_RAW_OBJECT_H_ | 2472 #endif // RUNTIME_VM_RAW_OBJECT_H_ |
OLD | NEW |