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

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

Issue 10352012: Using SubtypeTestCache object instead of an array, that way we do not need to patch and can communi… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 7 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_CODE_GENERATOR_IA32_H_ 5 #ifndef VM_CODE_GENERATOR_IA32_H_
6 #define VM_CODE_GENERATOR_IA32_H_ 6 #define VM_CODE_GENERATOR_IA32_H_
7 7
8 #ifndef VM_CODE_GENERATOR_H_ 8 #ifndef VM_CODE_GENERATOR_H_
9 #error Do not include code_generator_ia32.h directly; use code_generator.h. 9 #error Do not include code_generator_ia32.h directly; use code_generator.h.
10 #endif 10 #endif
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 191
192 void GenerateCall(intptr_t token_index, 192 void GenerateCall(intptr_t token_index,
193 const ExternalLabel* ext_label, 193 const ExternalLabel* ext_label,
194 PcDescriptors::Kind desc_kind); 194 PcDescriptors::Kind desc_kind);
195 void GenerateCallRuntime(intptr_t node_id, 195 void GenerateCallRuntime(intptr_t node_id,
196 intptr_t token_index, 196 intptr_t token_index,
197 const RuntimeEntry& entry); 197 const RuntimeEntry& entry);
198 198
199 void GenerateInlinedFinallyBlocks(SourceLabel* label); 199 void GenerateInlinedFinallyBlocks(SourceLabel* label);
200 200
201 void GenerateInlineInstanceof(intptr_t node_id, 201 RawSubtypeTestCache* GenerateInlineInstanceof(intptr_t node_id,
202 intptr_t token_index, 202 intptr_t token_index,
203 const AbstractType& type, 203 const AbstractType& type,
204 Label* is_instance_lbl, 204 Label* is_instance_lbl,
205 Label* is_not_instance_lbl); 205 Label* is_not_instance_lbl);
206 206
207 void GenerateInstantiatedTypeWithArgumentsTest(intptr_t node_id, 207 RawSubtypeTestCache* GenerateInstantiatedTypeWithArgumentsTest(
208 intptr_t token_index, 208 intptr_t node_id,
209 const AbstractType& dst_type, 209 intptr_t token_index,
210 Label* is_instance_lbl, 210 const AbstractType& dst_type,
211 Label* is_not_instance_lbl); 211 Label* is_instance_lbl,
212 Label* is_not_instance_lbl);
212 void GenerateInstantiatedTypeNoArgumentsTest(intptr_t node_id, 213 void GenerateInstantiatedTypeNoArgumentsTest(intptr_t node_id,
213 intptr_t token_index, 214 intptr_t token_index,
214 const AbstractType& dst_type, 215 const AbstractType& dst_type,
215 Label* is_instance_lbl, 216 Label* is_instance_lbl,
216 Label* is_not_instance_lbl); 217 Label* is_not_instance_lbl);
217 void GenerateUninstantiatedTypeTest(const AbstractType& dst_type, 218 void GenerateUninstantiatedTypeTest(const AbstractType& dst_type,
218 intptr_t token_index, 219 intptr_t token_index,
219 Label* is_instance_lbl); 220 Label* is_instance_lbl);
220 void GenerateSubtype1TestCacheLookup(intptr_t node_id, 221 RawSubtypeTestCache* GenerateSubtype1TestCacheLookup(
221 intptr_t token_index, 222 intptr_t node_id,
222 const Class& type_class, 223 intptr_t token_index,
223 Label* is_instance_lbl, 224 const Class& type_class,
224 Label* is_not_instance_lbl); 225 Label* is_instance_lbl,
226 Label* is_not_instance_lbl);
225 227
226 void HandleBackwardBranch(intptr_t loop_id, intptr_t token_index); 228 void HandleBackwardBranch(intptr_t loop_id, intptr_t token_index);
227 229
228 void ErrorMsg(intptr_t token_index, const char* format, ...); 230 void ErrorMsg(intptr_t token_index, const char* format, ...);
229 231
230 int generate_next_try_index() { return try_index_ += 1; } 232 int generate_next_try_index() { return try_index_ += 1; }
231 233
232 void MarkDeoptPoint(intptr_t node_id, intptr_t token_index); 234 void MarkDeoptPoint(intptr_t node_id, intptr_t token_index);
233 void AddCurrentDescriptor(PcDescriptors::Kind kind, 235 void AddCurrentDescriptor(PcDescriptors::Kind kind,
234 intptr_t node_id, 236 intptr_t node_id,
(...skipping 13 matching lines...) Expand all
248 // The runtime context level is only incremented when a new context is 250 // The runtime context level is only incremented when a new context is
249 // allocated and chained to the list of contexts. 251 // allocated and chained to the list of contexts.
250 intptr_t context_level_; 252 intptr_t context_level_;
251 253
252 DISALLOW_IMPLICIT_CONSTRUCTORS(CodeGenerator); 254 DISALLOW_IMPLICIT_CONSTRUCTORS(CodeGenerator);
253 }; 255 };
254 256
255 } // namespace dart 257 } // namespace dart
256 258
257 #endif // VM_CODE_GENERATOR_IA32_H_ 259 #endif // VM_CODE_GENERATOR_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698