Changeset 220368 in webkit for trunk/Source/JavaScriptCore/jit/JITPropertyAccess.cpp
- Timestamp:
- Aug 7, 2017, 4:30:15 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/jit/JITPropertyAccess.cpp
r220118 r220368 173 173 174 174 badType = patchableBranch32(NotEqual, regT2, TrustedImm32(DoubleShape)); 175 // FIXME: Should do caging.176 // https://bugs.webkit.org/show_bug.cgi?id=175037177 175 loadPtr(Address(regT0, JSObject::butterflyOffset()), regT2); 176 cage(Gigacage::JSValue, regT2); 178 177 slowCases.append(branch32(AboveOrEqual, regT1, Address(regT2, Butterfly::offsetOfPublicLength()))); 179 178 loadDouble(BaseIndex(regT2, regT1, TimesEight), fpRegT0); … … 188 187 189 188 badType = patchableBranch32(NotEqual, regT2, TrustedImm32(expectedShape)); 190 // FIXME: Should do caging.191 // https://bugs.webkit.org/show_bug.cgi?id=175037192 189 loadPtr(Address(regT0, JSObject::butterflyOffset()), regT2); 190 cage(Gigacage::JSValue, regT2); 193 191 slowCases.append(branch32(AboveOrEqual, regT1, Address(regT2, Butterfly::offsetOfPublicLength()))); 194 192 load64(BaseIndex(regT2, regT1, TimesEight), regT0); … … 205 203 badType = patchableBranch32(Above, regT3, TrustedImm32(SlowPutArrayStorageShape - ArrayStorageShape)); 206 204 207 // FIXME: Should do caging.208 // https://bugs.webkit.org/show_bug.cgi?id=175037209 205 loadPtr(Address(regT0, JSObject::butterflyOffset()), regT2); 206 cage(Gigacage::JSValue, regT2); 210 207 slowCases.append(branch32(AboveOrEqual, regT1, Address(regT2, ArrayStorage::vectorLengthOffset()))); 211 208 … … 354 351 badType = patchableBranch32(NotEqual, regT2, TrustedImm32(indexingShape)); 355 352 356 // FIXME: Should do caging.357 // https://bugs.webkit.org/show_bug.cgi?id=175037358 353 loadPtr(Address(regT0, JSObject::butterflyOffset()), regT2); 354 cage(Gigacage::JSValue, regT2); 359 355 Jump outOfBounds = branch32(AboveOrEqual, regT1, Address(regT2, Butterfly::offsetOfPublicLength())); 360 356 … … 411 407 412 408 badType = patchableBranch32(NotEqual, regT2, TrustedImm32(ArrayStorageShape)); 413 // FIXME: Should do caging.414 // https://bugs.webkit.org/show_bug.cgi?id=175037415 409 loadPtr(Address(regT0, JSObject::butterflyOffset()), regT2); 410 cage(Gigacage::JSValue, regT2); 416 411 slowCases.append(branch32(AboveOrEqual, regT1, Address(regT2, ArrayStorage::vectorLengthOffset()))); 417 412 … … 924 919 isOutOfLine.link(this); 925 920 } 926 // FIXME: Should do caging.927 // https://bugs.webkit.org/show_bug.cgi?id=175037928 921 loadPtr(Address(base, JSObject::butterflyOffset()), scratch); 922 cage(Gigacage::JSValue, scratch); 929 923 neg32(offset); 930 924 signExtend32ToPtr(offset, offset); … … 1067 1061 emitGetVirtualRegister(value, regT2); 1068 1062 1069 // FIXME: Should do caging.1070 // https://bugs.webkit.org/show_bug.cgi?id=1750371071 1063 loadPtr(Address(regT0, JSObject::butterflyOffset()), regT0); 1064 cage(Gigacage::JSValue, regT0); 1072 1065 loadPtr(operandSlot, regT1); 1073 1066 negPtr(regT1); … … 1577 1570 RegisterID resultPayload = regT0; 1578 1571 RegisterID scratch = regT3; 1572 RegisterID scratch2 = regT4; 1579 1573 #else 1580 1574 RegisterID base = regT0; … … 1583 1577 RegisterID resultTag = regT1; 1584 1578 RegisterID scratch = regT3; 1579 RegisterID scratch2 = regT4; 1585 1580 #endif 1586 1581 … … 1590 1585 badType = patchableBranch32(NotEqual, scratch, TrustedImm32(typeForTypedArrayType(type))); 1591 1586 slowCases.append(branch32(AboveOrEqual, property, Address(base, JSArrayBufferView::offsetOfLength()))); 1592 // FIXME: Should do caging.1593 // https://bugs.webkit.org/show_bug.cgi?id=1750371594 1587 loadPtr(Address(base, JSArrayBufferView::offsetOfVector()), scratch); 1588 cageConditionally(Gigacage::Primitive, scratch, scratch2); 1595 1589 1596 1590 switch (elementSize(type)) { … … 1650 1644 RegisterID resultPayload = regT0; 1651 1645 RegisterID scratch = regT3; 1646 RegisterID scratch2 = regT4; 1652 1647 #else 1653 1648 RegisterID base = regT0; … … 1656 1651 RegisterID resultTag = regT1; 1657 1652 RegisterID scratch = regT3; 1653 RegisterID scratch2 = regT4; 1658 1654 #endif 1659 1655 … … 1663 1659 badType = patchableBranch32(NotEqual, scratch, TrustedImm32(typeForTypedArrayType(type))); 1664 1660 slowCases.append(branch32(AboveOrEqual, property, Address(base, JSArrayBufferView::offsetOfLength()))); 1665 // FIXME: Should do caging.1666 // https://bugs.webkit.org/show_bug.cgi?id=1750371667 1661 loadPtr(Address(base, JSArrayBufferView::offsetOfVector()), scratch); 1662 cageConditionally(Gigacage::Primitive, scratch, scratch2); 1668 1663 1669 1664 switch (elementSize(type)) { … … 1706 1701 RegisterID earlyScratch = regT3; 1707 1702 RegisterID lateScratch = regT2; 1703 RegisterID lateScratch2 = regT4; 1708 1704 #else 1709 1705 RegisterID base = regT0; … … 1711 1707 RegisterID earlyScratch = regT3; 1712 1708 RegisterID lateScratch = regT1; 1709 RegisterID lateScratch2 = regT4; 1713 1710 #endif 1714 1711 … … 1732 1729 // We would be loading this into base as in get_by_val, except that the slow 1733 1730 // path expects the base to be unclobbered. 1734 // FIXME: Should do caging.1735 // https://bugs.webkit.org/show_bug.cgi?id=1750371736 1731 loadPtr(Address(base, JSArrayBufferView::offsetOfVector()), lateScratch); 1732 cageConditionally(Gigacage::Primitive, lateScratch, lateScratch2); 1737 1733 1738 1734 if (isClamped(type)) { … … 1778 1774 RegisterID earlyScratch = regT3; 1779 1775 RegisterID lateScratch = regT2; 1776 RegisterID lateScratch2 = regT4; 1780 1777 #else 1781 1778 RegisterID base = regT0; … … 1783 1780 RegisterID earlyScratch = regT3; 1784 1781 RegisterID lateScratch = regT1; 1782 RegisterID lateScratch2 = regT4; 1785 1783 #endif 1786 1784 … … 1817 1815 // We would be loading this into base as in get_by_val, except that the slow 1818 1816 // path expects the base to be unclobbered. 1819 // FIXME: Should do caging.1820 // https://bugs.webkit.org/show_bug.cgi?id=1750371821 1817 loadPtr(Address(base, JSArrayBufferView::offsetOfVector()), lateScratch); 1818 cageConditionally(Gigacage::Primitive, lateScratch, lateScratch2); 1822 1819 1823 1820 switch (elementSize(type)) {
Note:
See TracChangeset
for help on using the changeset viewer.