Changeset 220441 in webkit
- Timestamp:
- Aug 8, 2017 8:48:44 PM (7 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r220436 r220441 1 2017-08-08 Filip Pizlo <fpizlo@apple.com> 2 3 ICs should do caging 4 https://bugs.webkit.org/show_bug.cgi?id=175295 5 6 Reviewed by Saam Barati. 7 8 Adds the appropriate cage() calls in our inline caches. 9 10 * bytecode/AccessCase.cpp: 11 (JSC::AccessCase::generateImpl): 12 * bytecode/InlineAccess.cpp: 13 (JSC::InlineAccess::dumpCacheSizesAndCrash): 14 (JSC::InlineAccess::generateSelfPropertyAccess): 15 (JSC::InlineAccess::generateSelfPropertyReplace): 16 (JSC::InlineAccess::generateArrayLength): 17 1 18 2017-08-08 Devin Rousso <drousso@apple.com> 2 19 -
trunk/Source/JavaScriptCore/bytecode/AccessCase.cpp
r220416 r220441 528 528 CCallHelpers::Address(baseForAccessGPR, JSObject::butterflyOffset()), 529 529 loadedValueGPR); 530 // FIXME: Do caging! 531 // https://bugs.webkit.org/show_bug.cgi?id=175295 530 jit.cage(Gigacage::JSValue, loadedValueGPR); 532 531 storageGPR = loadedValueGPR; 533 532 } … … 880 879 881 880 jit.loadPtr(CCallHelpers::Address(baseGPR, JSObject::butterflyOffset()), scratchGPR3); 882 // FIXME: Do caging! 883 // https://bugs.webkit.org/show_bug.cgi?id=175295 881 jit.cage(Gigacage::JSValue, scratchGPR3); 884 882 885 883 // We have scratchGPR = new storage, scratchGPR3 = old storage, … … 962 960 if (!allocating) { 963 961 jit.loadPtr(CCallHelpers::Address(baseGPR, JSObject::butterflyOffset()), scratchGPR); 964 // FIXME: Do caging! 965 // https://bugs.webkit.org/show_bug.cgi?id=175295 962 jit.cage(Gigacage::JSValue, scratchGPR); 966 963 } 967 964 jit.storeValue( … … 1000 997 case ArrayLength: { 1001 998 jit.loadPtr(CCallHelpers::Address(baseGPR, JSObject::butterflyOffset()), scratchGPR); 1002 // FIXME: Do caging! 1003 // https://bugs.webkit.org/show_bug.cgi?id=175295 999 jit.cage(Gigacage::JSValue, scratchGPR); 1004 1000 jit.load32(CCallHelpers::Address(scratchGPR, ArrayStorage::lengthOffset()), scratchGPR); 1005 1001 state.failAndIgnore.append( -
trunk/Source/JavaScriptCore/bytecode/InlineAccess.cpp
r220416 r220441 58 58 CCallHelpers::NotEqual, value, CCallHelpers::TrustedImm32(IsArray | ContiguousShape)); 59 59 jit.loadPtr(CCallHelpers::Address(base, JSObject::butterflyOffset()), value); 60 // FIXME: Do caging! 61 // https://bugs.webkit.org/show_bug.cgi?id=175295 60 jit.cage(Gigacage::JSValue, value); 62 61 jit.load32(CCallHelpers::Address(value, ArrayStorage::lengthOffset()), value); 63 62 jit.boxInt32(scratchGPR, regs); … … 76 75 CCallHelpers::Address(base, JSObject::butterflyOffset()), 77 76 value); 78 // FIXME: Do caging! 79 // https://bugs.webkit.org/show_bug.cgi?id=175295 77 jit.cage(Gigacage::JSValue, value); 80 78 GPRReg storageGPR = value; 81 79 jit.loadValue( … … 121 119 122 120 jit.loadPtr(MacroAssembler::Address(base, JSObject::butterflyOffset()), value); 123 // FIXME: Do caging! 124 // https://bugs.webkit.org/show_bug.cgi?id=175295 121 jit.cage(Gigacage::JSValue, value); 125 122 jit.storeValue( 126 123 regs, … … 177 174 else { 178 175 jit.loadPtr(CCallHelpers::Address(base, JSObject::butterflyOffset()), value.payloadGPR()); 179 // FIXME: Do caging! 180 // https://bugs.webkit.org/show_bug.cgi?id=175295 176 jit.cage(Gigacage::JSValue, value.payloadGPR()); 181 177 storage = value.payloadGPR(); 182 178 } … … 240 236 ASSERT(storage != InvalidGPRReg); 241 237 jit.loadPtr(CCallHelpers::Address(base, JSObject::butterflyOffset()), storage); 242 // FIXME: Do caging! 243 // https://bugs.webkit.org/show_bug.cgi?id=175295 238 jit.cage(Gigacage::JSValue, storage); 244 239 } 245 240 … … 280 275 CCallHelpers::NotEqual, scratch, CCallHelpers::TrustedImm32(array->indexingType())); 281 276 jit.loadPtr(CCallHelpers::Address(base, JSObject::butterflyOffset()), value.payloadGPR()); 282 // FIXME: Do caging! 283 // https://bugs.webkit.org/show_bug.cgi?id=175295 277 jit.cage(Gigacage::JSValue, value.payloadGPR()); 284 278 jit.load32(CCallHelpers::Address(value.payloadGPR(), ArrayStorage::lengthOffset()), value.payloadGPR()); 285 279 jit.boxInt32(value.payloadGPR(), value);
Note: See TracChangeset
for help on using the changeset viewer.