| 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 724 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 735 // Relocation info records are also used during code generation as temporary | 735 // Relocation info records are also used during code generation as temporary |
| 736 // containers for constants and code target addresses until they are emitted | 736 // containers for constants and code target addresses until they are emitted |
| 737 // to the constant pool. These pending relocation info records are temporarily | 737 // to the constant pool. These pending relocation info records are temporarily |
| 738 // stored in a separate buffer until a constant pool is emitted. | 738 // stored in a separate buffer until a constant pool is emitted. |
| 739 // If every instruction in a long sequence is accessing the pool, we need one | 739 // If every instruction in a long sequence is accessing the pool, we need one |
| 740 // pending relocation entry per instruction. | 740 // pending relocation entry per instruction. |
| 741 static const int kMaxNumPRInfo = kMaxDistBetweenPools/kInstrSize; | 741 static const int kMaxNumPRInfo = kMaxDistBetweenPools/kInstrSize; |
| 742 RelocInfo prinfo_[kMaxNumPRInfo]; // the buffer of pending relocation info | 742 RelocInfo prinfo_[kMaxNumPRInfo]; // the buffer of pending relocation info |
| 743 int num_prinfo_; // number of pending reloc info entries in the buffer | 743 int num_prinfo_; // number of pending reloc info entries in the buffer |
| 744 | 744 |
| 745 // Jump-to-jump elimination: | 745 // The bound position, before this we cannot do instruction elimination. |
| 746 // The last label to be bound to _binding_pos, if unbound. | |
| 747 Label unbound_label_; | |
| 748 // The position to which _unbound_label has to be bound, if present. | |
| 749 int binding_pos_; | |
| 750 // The position before which jumps cannot be eliminated. | |
| 751 int last_bound_pos_; | 746 int last_bound_pos_; |
| 752 | 747 |
| 753 // source position information | 748 // source position information |
| 754 int last_position_; | 749 int last_position_; |
| 755 bool last_position_is_statement_; | 750 bool last_position_is_statement_; |
| 756 | 751 |
| 757 // Code emission | 752 // Code emission |
| 758 inline void CheckBuffer(); | 753 inline void CheckBuffer(); |
| 759 void GrowBuffer(); | 754 void GrowBuffer(); |
| 760 inline void emit(Instr x); | 755 inline void emit(Instr x); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 780 | 775 |
| 781 // Block the emission of the constant pool before pc_offset | 776 // Block the emission of the constant pool before pc_offset |
| 782 void BlockConstPoolBefore(int pc_offset) { | 777 void BlockConstPoolBefore(int pc_offset) { |
| 783 if (no_const_pool_before_ < pc_offset) no_const_pool_before_ = pc_offset; | 778 if (no_const_pool_before_ < pc_offset) no_const_pool_before_ = pc_offset; |
| 784 } | 779 } |
| 785 }; | 780 }; |
| 786 | 781 |
| 787 } } // namespace v8::internal | 782 } } // namespace v8::internal |
| 788 | 783 |
| 789 #endif // V8_ASSEMBLER_ARM_H_ | 784 #endif // V8_ASSEMBLER_ARM_H_ |
| OLD | NEW |