OLD | NEW |
1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 1708 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1719 // The offset is in the 32-bit displacement of a seven byte | 1719 // The offset is in the 32-bit displacement of a seven byte |
1720 // memory-to-register move instruction (REX.W 0x88 ModR/M disp32), | 1720 // memory-to-register move instruction (REX.W 0x88 ModR/M disp32), |
1721 // so we add 3 to get the offset of the displacement. | 1721 // so we add 3 to get the offset of the displacement. |
1722 Address offset_address = | 1722 Address offset_address = |
1723 test_instruction_address + delta + kOffsetToLoadInstruction + 3; | 1723 test_instruction_address + delta + kOffsetToLoadInstruction + 3; |
1724 *reinterpret_cast<int*>(offset_address) = offset - kHeapObjectTag; | 1724 *reinterpret_cast<int*>(offset_address) = offset - kHeapObjectTag; |
1725 return true; | 1725 return true; |
1726 } | 1726 } |
1727 | 1727 |
1728 | 1728 |
| 1729 bool LoadIC::PatchInlinedContextualLoad(Address address, |
| 1730 Object* map, |
| 1731 Object* cell) { |
| 1732 // TODO(<bug#>): implement this. |
| 1733 return false; |
| 1734 } |
| 1735 |
| 1736 |
1729 // The offset from the inlined patch site to the start of the inlined | 1737 // The offset from the inlined patch site to the start of the inlined |
1730 // store instruction. | 1738 // store instruction. |
1731 const int StoreIC::kOffsetToStoreInstruction = 20; | 1739 const int StoreIC::kOffsetToStoreInstruction = 20; |
1732 | 1740 |
1733 | 1741 |
1734 bool StoreIC::PatchInlinedStore(Address address, Object* map, int offset) { | 1742 bool StoreIC::PatchInlinedStore(Address address, Object* map, int offset) { |
1735 // The address of the instruction following the call. | 1743 // The address of the instruction following the call. |
1736 Address test_instruction_address = | 1744 Address test_instruction_address = |
1737 address + Assembler::kCallTargetAddressOffset; | 1745 address + Assembler::kCallTargetAddressOffset; |
1738 | 1746 |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1889 GenerateMiss(masm); | 1897 GenerateMiss(masm); |
1890 } | 1898 } |
1891 | 1899 |
1892 | 1900 |
1893 #undef __ | 1901 #undef __ |
1894 | 1902 |
1895 | 1903 |
1896 } } // namespace v8::internal | 1904 } } // namespace v8::internal |
1897 | 1905 |
1898 #endif // V8_TARGET_ARCH_X64 | 1906 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |