| 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 are | 5 // modification, are permitted provided that the following conditions are |
| 6 // met: | 6 // 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 1808 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1819 } | 1819 } |
| 1820 | 1820 |
| 1821 | 1821 |
| 1822 std::ostream& operator<<(std::ostream& os, ExternalReference reference) { | 1822 std::ostream& operator<<(std::ostream& os, ExternalReference reference) { |
| 1823 os << static_cast<const void*>(reference.address()); | 1823 os << static_cast<const void*>(reference.address()); |
| 1824 const Runtime::Function* fn = Runtime::FunctionForEntry(reference.address()); | 1824 const Runtime::Function* fn = Runtime::FunctionForEntry(reference.address()); |
| 1825 if (fn) os << "<" << fn->name << ".entry>"; | 1825 if (fn) os << "<" << fn->name << ".entry>"; |
| 1826 return os; | 1826 return os; |
| 1827 } | 1827 } |
| 1828 | 1828 |
| 1829 bool AssemblerPositionsRecorder::RecordPosition(int pos) { | 1829 void AssemblerPositionsRecorder::RecordPosition(int pos) { |
| 1830 DCHECK(pos != RelocInfo::kNoPosition); | 1830 DCHECK(pos != RelocInfo::kNoPosition); |
| 1831 DCHECK(pos >= 0); | 1831 DCHECK(pos >= 0); |
| 1832 current_position_ = pos; | 1832 current_position_ = pos; |
| 1833 LOG_CODE_EVENT(assembler_->isolate(), | 1833 LOG_CODE_EVENT(assembler_->isolate(), |
| 1834 CodeLinePosInfoAddPositionEvent(jit_handler_data_, | 1834 CodeLinePosInfoAddPositionEvent(jit_handler_data_, |
| 1835 assembler_->pc_offset(), | 1835 assembler_->pc_offset(), |
| 1836 pos)); | 1836 pos)); |
| 1837 return WriteRecordedPositions(); | 1837 WriteRecordedPositions(); |
| 1838 } | 1838 } |
| 1839 | 1839 |
| 1840 bool AssemblerPositionsRecorder::RecordStatementPosition(int pos) { | 1840 void AssemblerPositionsRecorder::RecordStatementPosition(int pos) { |
| 1841 DCHECK(pos != RelocInfo::kNoPosition); | 1841 DCHECK(pos != RelocInfo::kNoPosition); |
| 1842 DCHECK(pos >= 0); | 1842 DCHECK(pos >= 0); |
| 1843 current_statement_position_ = pos; | 1843 current_statement_position_ = pos; |
| 1844 LOG_CODE_EVENT(assembler_->isolate(), | 1844 LOG_CODE_EVENT(assembler_->isolate(), |
| 1845 CodeLinePosInfoAddStatementPositionEvent( | 1845 CodeLinePosInfoAddStatementPositionEvent( |
| 1846 jit_handler_data_, | 1846 jit_handler_data_, |
| 1847 assembler_->pc_offset(), | 1847 assembler_->pc_offset(), |
| 1848 pos)); | 1848 pos)); |
| 1849 return RecordPosition(pos); | 1849 RecordPosition(pos); |
| 1850 } | 1850 } |
| 1851 | 1851 |
| 1852 bool AssemblerPositionsRecorder::WriteRecordedPositions() { | 1852 void AssemblerPositionsRecorder::WriteRecordedPositions() { |
| 1853 bool written = false; | |
| 1854 | |
| 1855 // Write the statement position if it is different from what was written last | 1853 // Write the statement position if it is different from what was written last |
| 1856 // time. | 1854 // time. |
| 1857 if (current_statement_position_ != written_statement_position_) { | 1855 if (current_statement_position_ != written_statement_position_) { |
| 1858 EnsureSpace ensure_space(assembler_); | 1856 EnsureSpace ensure_space(assembler_); |
| 1859 assembler_->RecordRelocInfo(RelocInfo::STATEMENT_POSITION, | 1857 assembler_->RecordRelocInfo(RelocInfo::STATEMENT_POSITION, |
| 1860 current_statement_position_); | 1858 current_statement_position_); |
| 1861 written_position_ = current_statement_position_; | 1859 written_position_ = current_statement_position_; |
| 1862 written_statement_position_ = current_statement_position_; | 1860 written_statement_position_ = current_statement_position_; |
| 1863 written = true; | |
| 1864 } | 1861 } |
| 1865 | 1862 |
| 1866 // Write the position if it is different from what was written last time and | 1863 // Write the position if it is different from what was written last time and |
| 1867 // also different from the statement position that was just written. | 1864 // also different from the statement position that was just written. |
| 1868 if (current_position_ != written_position_) { | 1865 if (current_position_ != written_position_) { |
| 1869 EnsureSpace ensure_space(assembler_); | 1866 EnsureSpace ensure_space(assembler_); |
| 1870 assembler_->RecordRelocInfo(RelocInfo::POSITION, current_position_); | 1867 assembler_->RecordRelocInfo(RelocInfo::POSITION, current_position_); |
| 1871 written_position_ = current_position_; | 1868 written_position_ = current_position_; |
| 1872 written = true; | |
| 1873 } | 1869 } |
| 1874 | |
| 1875 // Return whether something was written. | |
| 1876 return written; | |
| 1877 } | 1870 } |
| 1878 | 1871 |
| 1879 | 1872 |
| 1880 ConstantPoolBuilder::ConstantPoolBuilder(int ptr_reach_bits, | 1873 ConstantPoolBuilder::ConstantPoolBuilder(int ptr_reach_bits, |
| 1881 int double_reach_bits) { | 1874 int double_reach_bits) { |
| 1882 info_[ConstantPoolEntry::INTPTR].entries.reserve(64); | 1875 info_[ConstantPoolEntry::INTPTR].entries.reserve(64); |
| 1883 info_[ConstantPoolEntry::INTPTR].regular_reach_bits = ptr_reach_bits; | 1876 info_[ConstantPoolEntry::INTPTR].regular_reach_bits = ptr_reach_bits; |
| 1884 info_[ConstantPoolEntry::DOUBLE].regular_reach_bits = double_reach_bits; | 1877 info_[ConstantPoolEntry::DOUBLE].regular_reach_bits = double_reach_bits; |
| 1885 } | 1878 } |
| 1886 | 1879 |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2113 | 2106 |
| 2114 | 2107 |
| 2115 void Assembler::DataAlign(int m) { | 2108 void Assembler::DataAlign(int m) { |
| 2116 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m)); | 2109 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m)); |
| 2117 while ((pc_offset() & (m - 1)) != 0) { | 2110 while ((pc_offset() & (m - 1)) != 0) { |
| 2118 db(0); | 2111 db(0); |
| 2119 } | 2112 } |
| 2120 } | 2113 } |
| 2121 } // namespace internal | 2114 } // namespace internal |
| 2122 } // namespace v8 | 2115 } // namespace v8 |
| OLD | NEW |