Changeset 209638 in webkit for trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
- Timestamp:
- Dec 9, 2016, 5:22:15 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
r209594 r209638 7390 7390 7391 7391 GPRFlushedCallResult result(this); 7392 callOperation(operation ReallocateButterflyToHavePropertyStorageWithInitialCapacity, result.gpr(), baseGPR);7392 callOperation(operationAllocateComplexPropertyStorageWithInitialCapacity, result.gpr(), baseGPR); 7393 7393 m_jit.exceptionCheck(); 7394 7394 … … 7397 7397 } 7398 7398 7399 SpeculateCellOperand base(this, node->child1());7400 7399 GPRTemporary scratch1(this); 7401 7400 GPRTemporary scratch2(this); 7402 7401 GPRTemporary scratch3(this); 7403 7402 7404 GPRReg baseGPR = base.gpr();7405 7403 GPRReg scratchGPR1 = scratch1.gpr(); 7406 7404 GPRReg scratchGPR2 = scratch2.gpr(); … … 7416 7414 7417 7415 addSlowPathGenerator( 7418 slowPathCall(slowPath, this, operationAllocatePropertyStorageWithInitialCapacity, scratchGPR1)); 7419 7420 m_jit.store32(TrustedImm32(0), JITCompiler::Address(baseGPR, JSCell::structureIDOffset())); 7421 m_jit.storeButterfly(scratchGPR1, baseGPR); 7416 slowPathCall(slowPath, this, operationAllocateSimplePropertyStorageWithInitialCapacity, scratchGPR1)); 7422 7417 7423 7418 storageResult(scratchGPR1, node); … … 7440 7435 7441 7436 GPRFlushedCallResult result(this); 7442 callOperation(operation ReallocateButterflyToGrowPropertyStorage, result.gpr(), baseGPR, newSize / sizeof(JSValue));7437 callOperation(operationAllocateComplexPropertyStorage, result.gpr(), baseGPR, newSize / sizeof(JSValue)); 7443 7438 m_jit.exceptionCheck(); 7444 7439 … … 7447 7442 } 7448 7443 7449 SpeculateCellOperand base(this, node->child1());7450 7444 StorageOperand oldStorage(this, node->child2()); 7451 7445 GPRTemporary scratch1(this); … … 7453 7447 GPRTemporary scratch3(this); 7454 7448 7455 GPRReg baseGPR = base.gpr();7456 7449 GPRReg oldStorageGPR = oldStorage.gpr(); 7457 7450 GPRReg scratchGPR1 = scratch1.gpr(); … … 7469 7462 7470 7463 addSlowPathGenerator( 7471 slowPathCall(slowPath, this, operationAllocate PropertyStorage, scratchGPR1, newSize / sizeof(JSValue)));7464 slowPathCall(slowPath, this, operationAllocateSimplePropertyStorage, scratchGPR1, newSize / sizeof(JSValue))); 7472 7465 7473 7466 // We have scratchGPR1 = new storage, scratchGPR2 = scratch … … 7477 7470 } 7478 7471 7479 m_jit.nukeStructureAndStoreButterfly(scratchGPR1, baseGPR);7480 7481 7472 storageResult(scratchGPR1, node); 7473 } 7474 7475 void SpeculativeJIT::compileNukeStructureAndSetButterfly(Node* node) 7476 { 7477 SpeculateCellOperand base(this, node->child1()); 7478 StorageOperand storage(this, node->child2()); 7479 7480 GPRReg baseGPR = base.gpr(); 7481 GPRReg storageGPR = storage.gpr(); 7482 7483 m_jit.nukeStructureAndStoreButterfly(storageGPR, baseGPR); 7484 7485 noResult(node); 7482 7486 } 7483 7487
Note:
See TracChangeset
for help on using the changeset viewer.