Changeset 232883 in webkit
- Timestamp:
- Jun 15, 2018 11:31:54 AM (6 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r232856 r232883 1 2018-06-15 Michael Catanzaro <mcatanzaro@igalia.com> 2 3 Unreviewed, rolling out r232816. 4 5 Suggested by Caitlin: 6 "this patch clearly does get some things wrong, and it's not 7 easy to find what those things are" 8 9 Reverted changeset: 10 11 "[LLInt] use loadp consistently for 12 get_from_scope/put_to_scope" 13 https://bugs.webkit.org/show_bug.cgi?id=132333 14 https://trac.webkit.org/changeset/232816 15 1 16 2018-06-14 Michael Saboff <msaboff@apple.com> 2 17 -
trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp
r232816 r232883 695 695 else if (op.structure) 696 696 instructions[i + 5].u.structure.set(vm, this, op.structure); 697 instructions[i + 6].u. operandPointer = op.operand;697 instructions[i + 6].u.pointer = reinterpret_cast<void*>(op.operand); 698 698 break; 699 699 } … … 732 732 } else if (op.structure) 733 733 instructions[i + 5].u.structure.set(vm, this, op.structure); 734 instructions[i + 6].u. operandPointer = op.operand;734 instructions[i + 6].u.pointer = reinterpret_cast<void*>(op.operand); 735 735 736 736 break; -
trunk/Source/JavaScriptCore/bytecode/Instruction.h
r232816 r232883 124 124 int operand; 125 125 unsigned unsignedValue; 126 intptr_t operandPointer;127 126 WriteBarrierBase<Structure> structure; 128 127 StructureID structureID; -
trunk/Source/JavaScriptCore/jit/JITOperations.cpp
r232816 r232883 2382 2382 if (getPutInfo.resolveType() == LocalClosureVar) { 2383 2383 JSLexicalEnvironment* environment = jsCast<JSLexicalEnvironment*>(scope); 2384 environment->variableAt(ScopeOffset(pc[6].u.operand Pointer)).set(vm, environment, value);2384 environment->variableAt(ScopeOffset(pc[6].u.operand)).set(vm, environment, value); 2385 2385 if (WatchpointSet* set = pc[5].u.watchpointSet) 2386 2386 set->touch(vm, "Executed op_put_scope<LocalClosureVar>"); -
trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp
r232816 r232883 1730 1730 if (getPutInfo.resolveType() == LocalClosureVar) { 1731 1731 JSLexicalEnvironment* environment = jsCast<JSLexicalEnvironment*>(scope); 1732 environment->variableAt(ScopeOffset(pc[6].u.operand Pointer)).set(vm, environment, value);1732 environment->variableAt(ScopeOffset(pc[6].u.operand)).set(vm, environment, value); 1733 1733 1734 1734 // Have to do this *after* the write, because if this puts the set into IsWatched, then we need -
trunk/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
r232816 r232883 2340 2340 2341 2341 macro getProperty() 2342 load pFromInstruction(6, t3)2342 loadisFromInstruction(6, t3) 2343 2343 loadPropertyAtVariableOffset(t3, t0, t1, t2) 2344 2344 valueProfile(t1, t2, 28, t0) … … 2360 2360 2361 2361 macro getClosureVar() 2362 load pFromInstruction(6, t3)2362 loadisFromInstruction(6, t3) 2363 2363 loadp JSLexicalEnvironment_variables + TagOffset[t0, t3, 8], t1 2364 2364 loadp JSLexicalEnvironment_variables + PayloadOffset[t0, t3, 8], t2 … … 2435 2435 loadisFromInstruction(3, t1) 2436 2436 loadConstantOrVariable(t1, t2, t3) 2437 load pFromInstruction(6, t1)2437 loadisFromInstruction(6, t1) 2438 2438 storePropertyAtVariableOffset(t1, t0, t2, t3) 2439 2439 end … … 2452 2452 loadisFromInstruction(3, t1) 2453 2453 loadConstantOrVariable(t1, t2, t3) 2454 load pFromInstruction(6, t1)2454 loadisFromInstruction(6, t1) 2455 2455 storei t2, JSLexicalEnvironment_variables + TagOffset[t0, t1, 8] 2456 2456 storei t3, JSLexicalEnvironment_variables + PayloadOffset[t0, t1, 8] … … 2464 2464 notifyWrite(t5, .pDynamic) 2465 2465 .noVariableWatchpointSet: 2466 load pFromInstruction(6, t1)2466 loadisFromInstruction(6, t1) 2467 2467 storei t2, JSLexicalEnvironment_variables + TagOffset[t0, t1, 8] 2468 2468 storei t3, JSLexicalEnvironment_variables + PayloadOffset[t0, t1, 8] -
trunk/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
r232816 r232883 1501 1501 1502 1502 .opPutByIdDoneCheckingTypes: 1503 load pFromInstruction(6, t1)1503 loadisFromInstruction(6, t1) 1504 1504 1505 1505 btiz t1, .opPutByIdNotTransition … … 1531 1531 .opPutByIdTransitionChainDone: 1532 1532 # Reload the new structure, since we clobbered it above. 1533 load pFromInstruction(6, t1)1533 loadisFromInstruction(6, t1) 1534 1534 1535 1535 .opPutByIdTransitionDirect: … … 2356 2356 2357 2357 macro getProperty() 2358 load pFromInstruction(6, t1)2358 loadisFromInstruction(6, t1) 2359 2359 loadPropertyAtVariableOffset(t1, t0, t2) 2360 2360 valueProfile(t2, 7, t0) … … 2373 2373 2374 2374 macro getClosureVar() 2375 load pFromInstruction(6, t1)2375 loadisFromInstruction(6, t1) 2376 2376 loadq JSLexicalEnvironment_variables[t0, t1, 8], t0 2377 2377 valueProfile(t0, 7, t1) … … 2446 2446 loadisFromInstruction(3, t1) 2447 2447 loadConstantOrVariable(t1, t2) 2448 load pFromInstruction(6, t1)2448 loadisFromInstruction(6, t1) 2449 2449 storePropertyAtVariableOffset(t1, t0, t2) 2450 2450 end … … 2462 2462 loadisFromInstruction(3, t1) 2463 2463 loadConstantOrVariable(t1, t2) 2464 load pFromInstruction(6, t1)2464 loadisFromInstruction(6, t1) 2465 2465 storeq t2, JSLexicalEnvironment_variables[t0, t1, 8] 2466 2466 end … … 2473 2473 notifyWrite(t3, .pDynamic) 2474 2474 .noVariableWatchpointSet: 2475 load pFromInstruction(6, t1)2475 loadisFromInstruction(6, t1) 2476 2476 storeq t2, JSLexicalEnvironment_variables[t0, t1, 8] 2477 2477 end -
trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.h
r232816 r232883 139 139 ConcurrentJSLocker locker(codeBlock->m_lock); 140 140 pc[5].u.watchpointSet = entry.watchpointSet(); 141 pc[6].u.pointer = globalLexicalEnvironment->variableAt(entry.scopeOffset()).slot();141 pc[6].u.pointer = static_cast<void*>(globalLexicalEnvironment->variableAt(entry.scopeOffset()).slot()); 142 142 } 143 143 } … … 163 163 ConcurrentJSLocker locker(codeBlock->m_lock); 164 164 pc[5].u.structure.set(vm, codeBlock, scope->structure(vm)); 165 pc[6].u.operand Pointer= slot.cachedOffset();165 pc[6].u.operand = slot.cachedOffset(); 166 166 } 167 167 } … … 187 187 pc[4].u.operand = GetPutInfo(getPutInfo.resolveMode(), newResolveType, getPutInfo.initializationMode()).operand(); 188 188 pc[5].u.watchpointSet = entry.watchpointSet(); 189 pc[6].u.pointer = globalLexicalEnvironment->variableAt(entry.scopeOffset()).slot();189 pc[6].u.pointer = static_cast<void*>(globalLexicalEnvironment->variableAt(entry.scopeOffset()).slot()); 190 190 } 191 191 } … … 201 201 ConcurrentJSLocker locker(codeBlock->m_lock); 202 202 pc[5].u.structure.set(vm, codeBlock, structure); 203 pc[6].u.operand Pointer= slot.cachedOffset();203 pc[6].u.operand = slot.cachedOffset(); 204 204 } 205 205 structure->startWatchingPropertyForReplacements(vm, slot.cachedOffset());
Note: See TracChangeset
for help on using the changeset viewer.