Changeset 224564 in webkit for trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
- Timestamp:
- Nov 7, 2017, 10:29:31 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
r224280 r224564 7270 7270 7271 7271 m_jit.loadPtr(MacroAssembler::Address(arrayResultGPR, JSObject::butterflyOffset()), butterflyGPR); 7272 m_jit.cage(Gigacage::JSValue, butterflyGPR);7273 7272 7274 7273 CCallHelpers::Jump skipLoop = m_jit.branch32(MacroAssembler::Equal, arrayLengthGPR, TrustedImm32(0)); … … 7340 7339 7341 7340 m_jit.loadPtr(MacroAssembler::Address(argument, JSObject::butterflyOffset()), lengthGPR); 7342 m_jit.cage(Gigacage::JSValue, lengthGPR); 7341 m_jit.cage(Gigacage::JSValue, lengthGPR); // We may do a double memcpy loop below, so we conservatively cage. 7343 7342 m_jit.load32(MacroAssembler::Address(lengthGPR, Butterfly::offsetOfPublicLength()), lengthGPR); 7344 7343 static_assert(sizeof(JSValue) == 8 && 1 << 3 == 8, "This is strongly assumed in the code below."); … … 7351 7350 7352 7351 m_jit.loadPtr(MacroAssembler::Address(argument, JSObject::butterflyOffset()), scratch1GPR); 7353 m_jit.cage(Gigacage::JSValue, scratch1GPR); 7352 m_jit.cage(Gigacage::JSValue, scratch1GPR); // We may do a double memcpy loop below, so we conservatively cage. 7354 7353 7355 7354 MacroAssembler::JumpList done; … … 7374 7373 isDoubleArray.link(&m_jit); 7375 7374 { 7376 7377 7375 done.append(m_jit.branchTest32(MacroAssembler::Zero, lengthGPR)); 7378 7376 auto loopStart = m_jit.label(); … … 7461 7459 m_jit.move(TrustedImm32(0), indexGPR); 7462 7460 m_jit.loadPtr(MacroAssembler::Address(resultGPR, JSObject::butterflyOffset()), storageGPR); 7463 m_jit.cage(Gigacage::JSValue, storageGPR);7464 7461 7465 7462 for (unsigned i = 0; i < node->numChildren(); ++i) {
Note:
See TracChangeset
for help on using the changeset viewer.