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

Side by Side Diff: src/arm/assembler-arm.h

Issue 235153003: Handlify code allocation. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: addressed comments Created 6 years, 8 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
« no previous file with comments | « no previous file | src/arm/assembler-arm.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) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 696 matching lines...) Expand 10 before | Expand all | Expand 10 after
707 }; 707 };
708 708
709 709
710 // Class used to build a constant pool. 710 // Class used to build a constant pool.
711 class ConstantPoolBuilder BASE_EMBEDDED { 711 class ConstantPoolBuilder BASE_EMBEDDED {
712 public: 712 public:
713 explicit ConstantPoolBuilder(); 713 explicit ConstantPoolBuilder();
714 void AddEntry(Assembler* assm, const RelocInfo& rinfo); 714 void AddEntry(Assembler* assm, const RelocInfo& rinfo);
715 void Relocate(int pc_delta); 715 void Relocate(int pc_delta);
716 bool IsEmpty(); 716 bool IsEmpty();
717 MaybeObject* Allocate(Heap* heap); 717 Handle<ConstantPoolArray> New(Isolate* isolate);
718 void Populate(Assembler* assm, ConstantPoolArray* constant_pool); 718 void Populate(Assembler* assm, ConstantPoolArray* constant_pool);
719 719
720 inline int count_of_64bit() const { return count_of_64bit_; } 720 inline int count_of_64bit() const { return count_of_64bit_; }
721 inline int count_of_code_ptr() const { return count_of_code_ptr_; } 721 inline int count_of_code_ptr() const { return count_of_code_ptr_; }
722 inline int count_of_heap_ptr() const { return count_of_heap_ptr_; } 722 inline int count_of_heap_ptr() const { return count_of_heap_ptr_; }
723 inline int count_of_32bit() const { return count_of_32bit_; } 723 inline int count_of_32bit() const { return count_of_32bit_; }
724 724
725 private: 725 private:
726 bool Is64BitEntry(RelocInfo::Mode rmode); 726 bool Is64BitEntry(RelocInfo::Mode rmode);
727 bool Is32BitEntry(RelocInfo::Mode rmode); 727 bool Is32BitEntry(RelocInfo::Mode rmode);
(...skipping 763 matching lines...) Expand 10 before | Expand all | Expand 10 after
1491 static const int kMaxNumPending64RelocInfo = kMaxDistToFPPool/kInstrSize; 1491 static const int kMaxNumPending64RelocInfo = kMaxDistToFPPool/kInstrSize;
1492 1492
1493 // Postpone the generation of the constant pool for the specified number of 1493 // Postpone the generation of the constant pool for the specified number of
1494 // instructions. 1494 // instructions.
1495 void BlockConstPoolFor(int instructions); 1495 void BlockConstPoolFor(int instructions);
1496 1496
1497 // Check if is time to emit a constant pool. 1497 // Check if is time to emit a constant pool.
1498 void CheckConstPool(bool force_emit, bool require_jump); 1498 void CheckConstPool(bool force_emit, bool require_jump);
1499 1499
1500 // Allocate a constant pool of the correct size for the generated code. 1500 // Allocate a constant pool of the correct size for the generated code.
1501 MaybeObject* AllocateConstantPool(Heap* heap); 1501 Handle<ConstantPoolArray> NewConstantPool(Isolate* isolate);
1502 1502
1503 // Generate the constant pool for the generated code. 1503 // Generate the constant pool for the generated code.
1504 void PopulateConstantPool(ConstantPoolArray* constant_pool); 1504 void PopulateConstantPool(ConstantPoolArray* constant_pool);
1505 1505
1506 bool can_use_constant_pool() const { 1506 bool can_use_constant_pool() const {
1507 return is_constant_pool_available() && !constant_pool_full_; 1507 return is_constant_pool_available() && !constant_pool_full_;
1508 } 1508 }
1509 1509
1510 void set_constant_pool_full() { 1510 void set_constant_pool_full() {
1511 constant_pool_full_ = true; 1511 constant_pool_full_ = true;
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
1689 public: 1689 public:
1690 explicit EnsureSpace(Assembler* assembler) { 1690 explicit EnsureSpace(Assembler* assembler) {
1691 assembler->CheckBuffer(); 1691 assembler->CheckBuffer();
1692 } 1692 }
1693 }; 1693 };
1694 1694
1695 1695
1696 } } // namespace v8::internal 1696 } } // namespace v8::internal
1697 1697
1698 #endif // V8_ARM_ASSEMBLER_ARM_H_ 1698 #endif // V8_ARM_ASSEMBLER_ARM_H_
OLDNEW
« no previous file with comments | « no previous file | src/arm/assembler-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698