Chromium Code Reviews| 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 1428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1439 static const int kMaxNumPending32RelocInfo = kMaxDistToIntPool/kInstrSize; | 1439 static const int kMaxNumPending32RelocInfo = kMaxDistToIntPool/kInstrSize; |
| 1440 static const int kMaxNumPending64RelocInfo = kMaxDistToFPPool/kInstrSize; | 1440 static const int kMaxNumPending64RelocInfo = kMaxDistToFPPool/kInstrSize; |
| 1441 | 1441 |
| 1442 // Postpone the generation of the constant pool for the specified number of | 1442 // Postpone the generation of the constant pool for the specified number of |
| 1443 // instructions. | 1443 // instructions. |
| 1444 void BlockConstPoolFor(int instructions); | 1444 void BlockConstPoolFor(int instructions); |
| 1445 | 1445 |
| 1446 // Check if is time to emit a constant pool. | 1446 // Check if is time to emit a constant pool. |
| 1447 void CheckConstPool(bool force_emit, bool require_jump); | 1447 void CheckConstPool(bool force_emit, bool require_jump); |
| 1448 | 1448 |
| 1449 RegList registers_mask() const { return registers_mask_; } | |
| 1450 RegList double_registers_mask() const { return double_registers_mask_; } | |
| 1451 void set_registers_masks(RegList registers_mask, | |
|
Benedikt Meurer
2014/03/13 10:41:49
Nit: One dedicated setter per property.
vincent.belliard
2014/03/13 10:53:37
The aim was to ensure that both masks would always
| |
| 1452 RegList double_registers_mask) { | |
| 1453 registers_mask_ = registers_mask; | |
| 1454 double_registers_mask_ = double_registers_mask; | |
| 1455 } | |
| 1456 | |
| 1449 protected: | 1457 protected: |
| 1450 // Relocation for a type-recording IC has the AST id added to it. This | 1458 // Relocation for a type-recording IC has the AST id added to it. This |
| 1451 // member variable is a way to pass the information from the call site to | 1459 // member variable is a way to pass the information from the call site to |
| 1452 // the relocation info. | 1460 // the relocation info. |
| 1453 TypeFeedbackId recorded_ast_id_; | 1461 TypeFeedbackId recorded_ast_id_; |
| 1454 | 1462 |
| 1455 int buffer_space() const { return reloc_info_writer.pos() - pc_; } | 1463 int buffer_space() const { return reloc_info_writer.pos() - pc_; } |
| 1456 | 1464 |
| 1457 // Decode branch instruction at pos and return branch target pos | 1465 // Decode branch instruction at pos and return branch target pos |
| 1458 int target_at(int pos); | 1466 int target_at(int pos); |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1552 RelocInfo pending_32_bit_reloc_info_[kMaxNumPending32RelocInfo]; | 1560 RelocInfo pending_32_bit_reloc_info_[kMaxNumPending32RelocInfo]; |
| 1553 RelocInfo pending_64_bit_reloc_info_[kMaxNumPending64RelocInfo]; | 1561 RelocInfo pending_64_bit_reloc_info_[kMaxNumPending64RelocInfo]; |
| 1554 // Number of pending reloc info entries in the 32 bits buffer. | 1562 // Number of pending reloc info entries in the 32 bits buffer. |
| 1555 int num_pending_32_bit_reloc_info_; | 1563 int num_pending_32_bit_reloc_info_; |
| 1556 // Number of pending reloc info entries in the 64 bits buffer. | 1564 // Number of pending reloc info entries in the 64 bits buffer. |
| 1557 int num_pending_64_bit_reloc_info_; | 1565 int num_pending_64_bit_reloc_info_; |
| 1558 | 1566 |
| 1559 // The bound position, before this we cannot do instruction elimination. | 1567 // The bound position, before this we cannot do instruction elimination. |
| 1560 int last_bound_pos_; | 1568 int last_bound_pos_; |
| 1561 | 1569 |
| 1570 RegList registers_mask_; | |
| 1571 RegList double_registers_mask_; | |
| 1572 | |
| 1562 // Code emission | 1573 // Code emission |
| 1563 inline void CheckBuffer(); | 1574 inline void CheckBuffer(); |
| 1564 void GrowBuffer(); | 1575 void GrowBuffer(); |
| 1565 inline void emit(Instr x); | 1576 inline void emit(Instr x); |
| 1566 | 1577 |
| 1567 // 32-bit immediate values | 1578 // 32-bit immediate values |
| 1568 void move_32_bit_immediate(Condition cond, | 1579 void move_32_bit_immediate(Condition cond, |
| 1569 Register rd, | 1580 Register rd, |
| 1570 SBit s, | 1581 SBit s, |
| 1571 const Operand& x); | 1582 const Operand& x); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1607 public: | 1618 public: |
| 1608 explicit EnsureSpace(Assembler* assembler) { | 1619 explicit EnsureSpace(Assembler* assembler) { |
| 1609 assembler->CheckBuffer(); | 1620 assembler->CheckBuffer(); |
| 1610 } | 1621 } |
| 1611 }; | 1622 }; |
| 1612 | 1623 |
| 1613 | 1624 |
| 1614 } } // namespace v8::internal | 1625 } } // namespace v8::internal |
| 1615 | 1626 |
| 1616 #endif // V8_ARM_ASSEMBLER_ARM_H_ | 1627 #endif // V8_ARM_ASSEMBLER_ARM_H_ |
| OLD | NEW |