OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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_ |
OLD | NEW |