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

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

Issue 1343373003: Revert "VM: New calling convention for generated code." (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: 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);
292 intptr_t AddImmediate(uword imm); 291 intptr_t AddImmediate(uword imm);
293 intptr_t AddExternalLabel(const ExternalLabel* label, 292 intptr_t AddExternalLabel(const ExternalLabel* label,
294 Patchability patchable); 293 Patchability patchable);
295 294
296 intptr_t FindObject(const Object& obj, 295 intptr_t FindObject(const Object& obj);
297 Patchability patchable = kNotPatchable);
298 intptr_t FindImmediate(uword imm); 296 intptr_t FindImmediate(uword imm);
299 intptr_t FindExternalLabel(const ExternalLabel* label, 297 intptr_t FindExternalLabel(const ExternalLabel* label,
300 Patchability patchable); 298 Patchability patchable);
301 intptr_t FindNativeEntry(const ExternalLabel* label, 299 intptr_t FindNativeEntry(const ExternalLabel* label,
302 Patchability patchable); 300 Patchability patchable);
303 301
304 RawObjectPool* MakeObjectPool(); 302 RawObjectPool* MakeObjectPool();
305 303
306 private: 304 private:
307 intptr_t AddObject(ObjectPool::Entry entry, Patchability patchable); 305 intptr_t AddObject(ObjectPool::Entry entry, Patchability patchable);
308 intptr_t FindObject(ObjectPool::Entry entry, Patchability patchable); 306 intptr_t FindObject(ObjectPool::Entry entry, Patchability patchable);
309 307
310 // Objects and jump targets. 308 // Objects and jump targets.
311 GrowableArray<ObjectPool::Entry> object_pool_; 309 GrowableArray<ObjectPool::Entry> object_pool_;
312 310
313 // Hashmap for fast lookup in object pool. 311 // Hashmap for fast lookup in object pool.
314 DirectChainedHashMap<ObjIndexPair> object_pool_index_table_; 312 DirectChainedHashMap<ObjIndexPair> object_pool_index_table_;
315 }; 313 };
316 314
317
318 enum RestorePP {
319 kRestoreCallerPP,
320 kKeepCalleePP
321 };
322
323 } // namespace dart 315 } // namespace dart
324 316
325 317
326 #if defined(TARGET_ARCH_IA32) 318 #if defined(TARGET_ARCH_IA32)
327 #include "vm/assembler_ia32.h" 319 #include "vm/assembler_ia32.h"
328 #elif defined(TARGET_ARCH_X64) 320 #elif defined(TARGET_ARCH_X64)
329 #include "vm/assembler_x64.h" 321 #include "vm/assembler_x64.h"
330 #elif defined(TARGET_ARCH_ARM) 322 #elif defined(TARGET_ARCH_ARM)
331 #include "vm/assembler_arm.h" 323 #include "vm/assembler_arm.h"
332 #elif defined(TARGET_ARCH_ARM64) 324 #elif defined(TARGET_ARCH_ARM64)
333 #include "vm/assembler_arm64.h" 325 #include "vm/assembler_arm64.h"
334 #elif defined(TARGET_ARCH_MIPS) 326 #elif defined(TARGET_ARCH_MIPS)
335 #include "vm/assembler_mips.h" 327 #include "vm/assembler_mips.h"
336 #else 328 #else
337 #error Unknown architecture. 329 #error Unknown architecture.
338 #endif 330 #endif
339 331
340 #endif // VM_ASSEMBLER_H_ 332 #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