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 VM_RAW_OBJECT_H_ | 5 #ifndef VM_RAW_OBJECT_H_ |
6 #define VM_RAW_OBJECT_H_ | 6 #define 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/globals.h" | 10 #include "vm/globals.h" |
(...skipping 21 matching lines...) Expand all Loading... |
32 V(Code) \ | 32 V(Code) \ |
33 V(Instructions) \ | 33 V(Instructions) \ |
34 V(ObjectPool) \ | 34 V(ObjectPool) \ |
35 V(PcDescriptors) \ | 35 V(PcDescriptors) \ |
36 V(CodeSourceMap) \ | 36 V(CodeSourceMap) \ |
37 V(Stackmap) \ | 37 V(Stackmap) \ |
38 V(LocalVarDescriptors) \ | 38 V(LocalVarDescriptors) \ |
39 V(ExceptionHandlers) \ | 39 V(ExceptionHandlers) \ |
40 V(Context) \ | 40 V(Context) \ |
41 V(ContextScope) \ | 41 V(ContextScope) \ |
| 42 V(SingleTargetCache) \ |
42 V(ICData) \ | 43 V(ICData) \ |
43 V(MegamorphicCache) \ | 44 V(MegamorphicCache) \ |
44 V(SubtypeTestCache) \ | 45 V(SubtypeTestCache) \ |
45 V(Error) \ | 46 V(Error) \ |
46 V(ApiError) \ | 47 V(ApiError) \ |
47 V(LanguageError) \ | 48 V(LanguageError) \ |
48 V(UnhandledException) \ | 49 V(UnhandledException) \ |
49 V(UnwindError) \ | 50 V(UnwindError) \ |
50 V(Instance) \ | 51 V(Instance) \ |
51 V(LibraryPrefix) \ | 52 V(LibraryPrefix) \ |
(...skipping 1421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1473 // 'end' is the address just beyond the last descriptor, so step back. | 1474 // 'end' is the address just beyond the last descriptor, so step back. |
1474 return reinterpret_cast<RawObject**>(end - kWordSize); | 1475 return reinterpret_cast<RawObject**>(end - kWordSize); |
1475 } | 1476 } |
1476 | 1477 |
1477 friend class Object; | 1478 friend class Object; |
1478 friend class RawClosureData; | 1479 friend class RawClosureData; |
1479 friend class SnapshotReader; | 1480 friend class SnapshotReader; |
1480 }; | 1481 }; |
1481 | 1482 |
1482 | 1483 |
| 1484 class RawSingleTargetCache : public RawObject { |
| 1485 RAW_HEAP_OBJECT_IMPLEMENTATION(SingleTargetCache); |
| 1486 RawObject** from() { |
| 1487 return reinterpret_cast<RawObject**>(&ptr()->target_); |
| 1488 } |
| 1489 RawCode* target_; |
| 1490 RawObject** to() { |
| 1491 return reinterpret_cast<RawObject**>(&ptr()->target_); |
| 1492 } |
| 1493 uword entry_point_; |
| 1494 classid_t lower_limit_; |
| 1495 classid_t upper_limit_; |
| 1496 }; |
| 1497 |
| 1498 |
1483 class RawICData : public RawObject { | 1499 class RawICData : public RawObject { |
1484 RAW_HEAP_OBJECT_IMPLEMENTATION(ICData); | 1500 RAW_HEAP_OBJECT_IMPLEMENTATION(ICData); |
1485 | 1501 |
1486 RawObject** from() { | 1502 RawObject** from() { |
1487 return reinterpret_cast<RawObject**>(&ptr()->ic_data_); | 1503 return reinterpret_cast<RawObject**>(&ptr()->ic_data_); |
1488 } | 1504 } |
1489 RawArray* ic_data_; // Contains class-ids, target and count. | 1505 RawArray* ic_data_; // Contains class-ids, target and count. |
1490 RawString* target_name_; // Name of target function. | 1506 RawString* target_name_; // Name of target function. |
1491 RawArray* args_descriptor_; // Arguments descriptor. | 1507 RawArray* args_descriptor_; // Arguments descriptor. |
1492 RawObject* owner_; // Parent/calling function or original IC of cloned IC. | 1508 RawObject* owner_; // Parent/calling function or original IC of cloned IC. |
(...skipping 945 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2438 COMPILE_ASSERT(kExternalTypedDataInt8ArrayCid == | 2454 COMPILE_ASSERT(kExternalTypedDataInt8ArrayCid == |
2439 kTypedDataInt8ArrayViewCid + 15); | 2455 kTypedDataInt8ArrayViewCid + 15); |
2440 COMPILE_ASSERT(kByteBufferCid == kExternalTypedDataInt8ArrayCid + 14); | 2456 COMPILE_ASSERT(kByteBufferCid == kExternalTypedDataInt8ArrayCid + 14); |
2441 COMPILE_ASSERT(kNullCid == kByteBufferCid + 1); | 2457 COMPILE_ASSERT(kNullCid == kByteBufferCid + 1); |
2442 return (kNullCid - kTypedDataInt8ArrayCid); | 2458 return (kNullCid - kTypedDataInt8ArrayCid); |
2443 } | 2459 } |
2444 | 2460 |
2445 } // namespace dart | 2461 } // namespace dart |
2446 | 2462 |
2447 #endif // VM_RAW_OBJECT_H_ | 2463 #endif // VM_RAW_OBJECT_H_ |
OLD | NEW |