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

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

Issue 1192103004: VM: New calling convention for generated code. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: fixed comments Created 5 years, 3 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
« no previous file with comments | « no previous file | runtime/vm/assembler.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_ASSEMBLER_H_ 5 #ifndef VM_ASSEMBLER_H_
6 #define VM_ASSEMBLER_H_ 6 #define VM_ASSEMBLER_H_
7 7
8 #include "platform/assert.h" 8 #include "platform/assert.h"
9 #include "vm/allocation.h" 9 #include "vm/allocation.h"
10 #include "vm/globals.h" 10 #include "vm/globals.h"
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 280
281 281
282 enum Patchability { 282 enum Patchability {
283 kPatchable, 283 kPatchable,
284 kNotPatchable, 284 kNotPatchable,
285 }; 285 };
286 286
287 287
288 class ObjectPoolWrapper : public ValueObject { 288 class ObjectPoolWrapper : public ValueObject {
289 public: 289 public:
290 intptr_t AddObject(const Object& obj); 290 intptr_t AddObject(const Object& obj,
291 Patchability patchable = kNotPatchable);
291 intptr_t AddImmediate(uword imm); 292 intptr_t AddImmediate(uword imm);
292 intptr_t AddExternalLabel(const ExternalLabel* label, 293 intptr_t AddExternalLabel(const ExternalLabel* label,
293 Patchability patchable); 294 Patchability patchable);
294 295
295 intptr_t FindObject(const Object& obj); 296 intptr_t FindObject(const Object& obj,
297 Patchability patchable = kNotPatchable);
296 intptr_t FindImmediate(uword imm); 298 intptr_t FindImmediate(uword imm);
297 intptr_t FindExternalLabel(const ExternalLabel* label, 299 intptr_t FindExternalLabel(const ExternalLabel* label,
298 Patchability patchable); 300 Patchability patchable);
299 intptr_t FindNativeEntry(const ExternalLabel* label, 301 intptr_t FindNativeEntry(const ExternalLabel* label,
300 Patchability patchable); 302 Patchability patchable);
301 303
302 RawObjectPool* MakeObjectPool(); 304 RawObjectPool* MakeObjectPool();
303 305
304 private: 306 private:
305 intptr_t AddObject(ObjectPool::Entry entry, Patchability patchable); 307 intptr_t AddObject(ObjectPool::Entry entry, Patchability patchable);
306 intptr_t FindObject(ObjectPool::Entry entry, Patchability patchable); 308 intptr_t FindObject(ObjectPool::Entry entry, Patchability patchable);
307 309
308 // Objects and jump targets. 310 // Objects and jump targets.
309 GrowableArray<ObjectPool::Entry> object_pool_; 311 GrowableArray<ObjectPool::Entry> object_pool_;
310 312
311 // Hashmap for fast lookup in object pool. 313 // Hashmap for fast lookup in object pool.
312 DirectChainedHashMap<ObjIndexPair> object_pool_index_table_; 314 DirectChainedHashMap<ObjIndexPair> object_pool_index_table_;
313 }; 315 };
314 316
317
318 enum RestorePP {
319 kRestoreCallerPP,
320 kKeepCalleePP
321 };
322
315 } // namespace dart 323 } // namespace dart
316 324
317 325
318 #if defined(TARGET_ARCH_IA32) 326 #if defined(TARGET_ARCH_IA32)
319 #include "vm/assembler_ia32.h" 327 #include "vm/assembler_ia32.h"
320 #elif defined(TARGET_ARCH_X64) 328 #elif defined(TARGET_ARCH_X64)
321 #include "vm/assembler_x64.h" 329 #include "vm/assembler_x64.h"
322 #elif defined(TARGET_ARCH_ARM) 330 #elif defined(TARGET_ARCH_ARM)
323 #include "vm/assembler_arm.h" 331 #include "vm/assembler_arm.h"
324 #elif defined(TARGET_ARCH_ARM64) 332 #elif defined(TARGET_ARCH_ARM64)
325 #include "vm/assembler_arm64.h" 333 #include "vm/assembler_arm64.h"
326 #elif defined(TARGET_ARCH_MIPS) 334 #elif defined(TARGET_ARCH_MIPS)
327 #include "vm/assembler_mips.h" 335 #include "vm/assembler_mips.h"
328 #else 336 #else
329 #error Unknown architecture. 337 #error Unknown architecture.
330 #endif 338 #endif
331 339
332 #endif // VM_ASSEMBLER_H_ 340 #endif // VM_ASSEMBLER_H_
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698