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

Side by Side Diff: vm/raw_object.h

Issue 9701010: First step towards implementing stack map descriptions for the optimizing compiler. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/runtime/
Patch Set: Created 8 years, 9 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 | Annotate | Revision Log
OLDNEW
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/globals.h" 9 #include "vm/globals.h"
10 #include "vm/token.h" 10 #include "vm/token.h"
(...skipping 17 matching lines...) Expand all
28 V(Function) \ 28 V(Function) \
29 V(Field) \ 29 V(Field) \
30 V(LiteralToken) \ 30 V(LiteralToken) \
31 V(TokenStream) \ 31 V(TokenStream) \
32 V(Script) \ 32 V(Script) \
33 V(Library) \ 33 V(Library) \
34 V(LibraryPrefix) \ 34 V(LibraryPrefix) \
35 V(Code) \ 35 V(Code) \
36 V(Instructions) \ 36 V(Instructions) \
37 V(PcDescriptors) \ 37 V(PcDescriptors) \
38 V(Bitmap) \
38 V(LocalVarDescriptors) \ 39 V(LocalVarDescriptors) \
39 V(ExceptionHandlers) \ 40 V(ExceptionHandlers) \
40 V(Context) \ 41 V(Context) \
41 V(ContextScope) \ 42 V(ContextScope) \
42 V(ICData) \ 43 V(ICData) \
43 V(Error) \ 44 V(Error) \
44 V(ApiError) \ 45 V(ApiError) \
45 V(LanguageError) \ 46 V(LanguageError) \
46 V(UnhandledException) \ 47 V(UnhandledException) \
47 V(UnwindError) \ 48 V(UnwindError) \
(...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 class RawPcDescriptors : public RawObject { 682 class RawPcDescriptors : public RawObject {
682 RAW_HEAP_OBJECT_IMPLEMENTATION(PcDescriptors); 683 RAW_HEAP_OBJECT_IMPLEMENTATION(PcDescriptors);
683 684
684 RawSmi* length_; // Number of descriptors. 685 RawSmi* length_; // Number of descriptors.
685 686
686 // Variable length data follows here. 687 // Variable length data follows here.
687 intptr_t data_[0]; 688 intptr_t data_[0];
688 }; 689 };
689 690
690 691
692 // Bitmap is an immutable representation of a bit map optimized for
693 // dense and small bit maps, without any upper bound.
694 class RawBitmap : public RawObject {
695 RAW_HEAP_OBJECT_IMPLEMENTATION(Bitmap);
696
697 RawSmi* size_; // Size of the bit map.
srdjan 2012/03/14 17:31:32 in bits or words?
siva 2012/03/14 22:54:20 size in bytes, I have renamed it accordingly. On
698
699 // Variable length data follows here.
700 uint8_t data_[0];
701 };
702
703
691 class RawLocalVarDescriptors : public RawObject { 704 class RawLocalVarDescriptors : public RawObject {
692 RAW_HEAP_OBJECT_IMPLEMENTATION(LocalVarDescriptors); 705 RAW_HEAP_OBJECT_IMPLEMENTATION(LocalVarDescriptors);
693 706
694 struct VarInfo { 707 struct VarInfo {
695 intptr_t index; // Slot index on stack or in context. 708 intptr_t index; // Slot index on stack or in context.
696 intptr_t scope_id; // Scope to which the variable belongs. 709 intptr_t scope_id; // Scope to which the variable belongs.
697 intptr_t begin_pos; // Token position of scope start. 710 intptr_t begin_pos; // Token position of scope start.
698 intptr_t end_pos; // Token position of scope end. 711 intptr_t end_pos; // Token position of scope end.
699 }; 712 };
700 713
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after
1132 return reinterpret_cast<RawObject**>(&ptr()->pattern_); 1145 return reinterpret_cast<RawObject**>(&ptr()->pattern_);
1133 } 1146 }
1134 1147
1135 intptr_t type_; // Uninitialized, simple or complex. 1148 intptr_t type_; // Uninitialized, simple or complex.
1136 intptr_t flags_; // Represents global/local, case insensitive, multiline. 1149 intptr_t flags_; // Represents global/local, case insensitive, multiline.
1137 1150
1138 // Variable length data follows here. 1151 // Variable length data follows here.
1139 uint8_t data_[0]; 1152 uint8_t data_[0];
1140 }; 1153 };
1141 1154
1142
1143 } // namespace dart 1155 } // namespace dart
1144 1156
1145 #endif // VM_RAW_OBJECT_H_ 1157 #endif // VM_RAW_OBJECT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698