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