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 1537 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1548 Assembler* assem_; | 1548 Assembler* assem_; |
1549 | 1549 |
1550 DISALLOW_COPY_AND_ASSIGN(BlockCodeTargetSharingScope); | 1550 DISALLOW_COPY_AND_ASSIGN(BlockCodeTargetSharingScope); |
1551 }; | 1551 }; |
1552 | 1552 |
1553 // Debugging | 1553 // Debugging |
1554 | 1554 |
1555 // Mark address of a debug break slot. | 1555 // Mark address of a debug break slot. |
1556 void RecordDebugBreakSlot(RelocInfo::Mode mode); | 1556 void RecordDebugBreakSlot(RelocInfo::Mode mode); |
1557 | 1557 |
1558 // Record the AST id of the CallIC being compiled, so that it can be placed | |
1559 // in the relocation information. | |
1560 void SetRecordedAstId(TypeFeedbackId ast_id) { | |
1561 DCHECK(recorded_ast_id_.IsNone()); | |
1562 recorded_ast_id_ = ast_id; | |
1563 } | |
1564 | |
1565 TypeFeedbackId RecordedAstId() { | |
1566 DCHECK(!recorded_ast_id_.IsNone()); | |
1567 return recorded_ast_id_; | |
1568 } | |
1569 | |
1570 void ClearRecordedAstId() { recorded_ast_id_ = TypeFeedbackId::None(); } | |
1571 | |
1572 // Record a comment relocation entry that can be used by a disassembler. | 1558 // Record a comment relocation entry that can be used by a disassembler. |
1573 // Use --code-comments to enable. | 1559 // Use --code-comments to enable. |
1574 void RecordComment(const char* msg); | 1560 void RecordComment(const char* msg); |
1575 | 1561 |
1576 // Record a deoptimization reason that can be used by a log or cpu profiler. | 1562 // Record a deoptimization reason that can be used by a log or cpu profiler. |
1577 // Use --trace-deopt to enable. | 1563 // Use --trace-deopt to enable. |
1578 void RecordDeoptReason(DeoptimizeReason reason, SourcePosition position, | 1564 void RecordDeoptReason(DeoptimizeReason reason, SourcePosition position, |
1579 int id); | 1565 int id); |
1580 | 1566 |
1581 // Record the emission of a constant pool. | 1567 // Record the emission of a constant pool. |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1696 } | 1682 } |
1697 | 1683 |
1698 void PatchConstantPoolAccessInstruction(int pc_offset, int offset, | 1684 void PatchConstantPoolAccessInstruction(int pc_offset, int offset, |
1699 ConstantPoolEntry::Access access, | 1685 ConstantPoolEntry::Access access, |
1700 ConstantPoolEntry::Type type) { | 1686 ConstantPoolEntry::Type type) { |
1701 // No embedded constant pool support. | 1687 // No embedded constant pool support. |
1702 UNREACHABLE(); | 1688 UNREACHABLE(); |
1703 } | 1689 } |
1704 | 1690 |
1705 protected: | 1691 protected: |
1706 // Relocation for a type-recording IC has the AST id added to it. This | |
1707 // member variable is a way to pass the information from the call site to | |
1708 // the relocation info. | |
1709 TypeFeedbackId recorded_ast_id_; | |
1710 | |
1711 int buffer_space() const { return reloc_info_writer.pos() - pc_; } | 1692 int buffer_space() const { return reloc_info_writer.pos() - pc_; } |
1712 | 1693 |
1713 // Decode branch instruction at pos and return branch target pos | 1694 // Decode branch instruction at pos and return branch target pos |
1714 int target_at(int pos); | 1695 int target_at(int pos); |
1715 | 1696 |
1716 // Patch branch instruction at pos to branch to given branch target pos | 1697 // Patch branch instruction at pos to branch to given branch target pos |
1717 void target_at_put(int pos, int target_pos); | 1698 void target_at_put(int pos, int target_pos); |
1718 | 1699 |
1719 // Prevent sharing of code target constant pool entries until | 1700 // Prevent sharing of code target constant pool entries until |
1720 // EndBlockCodeTargetSharing is called. Calls to this function can be nested | 1701 // EndBlockCodeTargetSharing is called. Calls to this function can be nested |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1903 | 1884 |
1904 void Emit(Address addr); | 1885 void Emit(Address addr); |
1905 void FlushICache(Isolate* isolate); | 1886 void FlushICache(Isolate* isolate); |
1906 }; | 1887 }; |
1907 | 1888 |
1908 | 1889 |
1909 } // namespace internal | 1890 } // namespace internal |
1910 } // namespace v8 | 1891 } // namespace v8 |
1911 | 1892 |
1912 #endif // V8_ARM_ASSEMBLER_ARM_H_ | 1893 #endif // V8_ARM_ASSEMBLER_ARM_H_ |
OLD | NEW |