Changeset 232883 in webkit


Ignore:
Timestamp:
Jun 15, 2018 11:31:54 AM (6 years ago)
Author:
Michael Catanzaro
Message:

Unreviewed, rolling out r232816.

Suggested by Caitlin:
"this patch clearly does get some things wrong, and it's not
easy to find what those things are"

Reverted changeset:

"[LLInt] use loadp consistently for
get_from_scope/put_to_scope"
https://bugs.webkit.org/show_bug.cgi?id=132333
https://trac.webkit.org/changeset/232816

Location:
trunk/Source/JavaScriptCore
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r232856 r232883  
     12018-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
    1162018-06-14  Michael Saboff  <msaboff@apple.com>
    217
  • trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp

    r232816 r232883  
    695695            else if (op.structure)
    696696                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);
    698698            break;
    699699        }
     
    732732            } else if (op.structure)
    733733                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);
    735735
    736736            break;
  • trunk/Source/JavaScriptCore/bytecode/Instruction.h

    r232816 r232883  
    124124        int operand;
    125125        unsigned unsignedValue;
    126         intptr_t operandPointer;
    127126        WriteBarrierBase<Structure> structure;
    128127        StructureID structureID;
  • trunk/Source/JavaScriptCore/jit/JITOperations.cpp

    r232816 r232883  
    23822382    if (getPutInfo.resolveType() == LocalClosureVar) {
    23832383        JSLexicalEnvironment* environment = jsCast<JSLexicalEnvironment*>(scope);
    2384         environment->variableAt(ScopeOffset(pc[6].u.operandPointer)).set(vm, environment, value);
     2384        environment->variableAt(ScopeOffset(pc[6].u.operand)).set(vm, environment, value);
    23852385        if (WatchpointSet* set = pc[5].u.watchpointSet)
    23862386            set->touch(vm, "Executed op_put_scope<LocalClosureVar>");
  • trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp

    r232816 r232883  
    17301730    if (getPutInfo.resolveType() == LocalClosureVar) {
    17311731        JSLexicalEnvironment* environment = jsCast<JSLexicalEnvironment*>(scope);
    1732         environment->variableAt(ScopeOffset(pc[6].u.operandPointer)).set(vm, environment, value);
     1732        environment->variableAt(ScopeOffset(pc[6].u.operand)).set(vm, environment, value);
    17331733       
    17341734        // 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  
    23402340
    23412341macro getProperty()
    2342     loadpFromInstruction(6, t3)
     2342    loadisFromInstruction(6, t3)
    23432343    loadPropertyAtVariableOffset(t3, t0, t1, t2)
    23442344    valueProfile(t1, t2, 28, t0)
     
    23602360
    23612361macro getClosureVar()
    2362     loadpFromInstruction(6, t3)
     2362    loadisFromInstruction(6, t3)
    23632363    loadp JSLexicalEnvironment_variables + TagOffset[t0, t3, 8], t1
    23642364    loadp JSLexicalEnvironment_variables + PayloadOffset[t0, t3, 8], t2
     
    24352435    loadisFromInstruction(3, t1)
    24362436    loadConstantOrVariable(t1, t2, t3)
    2437     loadpFromInstruction(6, t1)
     2437    loadisFromInstruction(6, t1)
    24382438    storePropertyAtVariableOffset(t1, t0, t2, t3)
    24392439end
     
    24522452    loadisFromInstruction(3, t1)
    24532453    loadConstantOrVariable(t1, t2, t3)
    2454     loadpFromInstruction(6, t1)
     2454    loadisFromInstruction(6, t1)
    24552455    storei t2, JSLexicalEnvironment_variables + TagOffset[t0, t1, 8]
    24562456    storei t3, JSLexicalEnvironment_variables + PayloadOffset[t0, t1, 8]
     
    24642464    notifyWrite(t5, .pDynamic)
    24652465.noVariableWatchpointSet:
    2466     loadpFromInstruction(6, t1)
     2466    loadisFromInstruction(6, t1)
    24672467    storei t2, JSLexicalEnvironment_variables + TagOffset[t0, t1, 8]
    24682468    storei t3, JSLexicalEnvironment_variables + PayloadOffset[t0, t1, 8]
  • trunk/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm

    r232816 r232883  
    15011501
    15021502.opPutByIdDoneCheckingTypes:
    1503     loadpFromInstruction(6, t1)
     1503    loadisFromInstruction(6, t1)
    15041504   
    15051505    btiz t1, .opPutByIdNotTransition
     
    15311531.opPutByIdTransitionChainDone:
    15321532    # Reload the new structure, since we clobbered it above.
    1533     loadpFromInstruction(6, t1)
     1533    loadisFromInstruction(6, t1)
    15341534
    15351535.opPutByIdTransitionDirect:
     
    23562356
    23572357macro getProperty()
    2358     loadpFromInstruction(6, t1)
     2358    loadisFromInstruction(6, t1)
    23592359    loadPropertyAtVariableOffset(t1, t0, t2)
    23602360    valueProfile(t2, 7, t0)
     
    23732373
    23742374macro getClosureVar()
    2375     loadpFromInstruction(6, t1)
     2375    loadisFromInstruction(6, t1)
    23762376    loadq JSLexicalEnvironment_variables[t0, t1, 8], t0
    23772377    valueProfile(t0, 7, t1)
     
    24462446    loadisFromInstruction(3, t1)
    24472447    loadConstantOrVariable(t1, t2)
    2448     loadpFromInstruction(6, t1)
     2448    loadisFromInstruction(6, t1)
    24492449    storePropertyAtVariableOffset(t1, t0, t2)
    24502450end
     
    24622462    loadisFromInstruction(3, t1)
    24632463    loadConstantOrVariable(t1, t2)
    2464     loadpFromInstruction(6, t1)
     2464    loadisFromInstruction(6, t1)
    24652465    storeq t2, JSLexicalEnvironment_variables[t0, t1, 8]
    24662466end
     
    24732473    notifyWrite(t3, .pDynamic)
    24742474.noVariableWatchpointSet:
    2475     loadpFromInstruction(6, t1)
     2475    loadisFromInstruction(6, t1)
    24762476    storeq t2, JSLexicalEnvironment_variables[t0, t1, 8]
    24772477end
  • trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.h

    r232816 r232883  
    139139            ConcurrentJSLocker locker(codeBlock->m_lock);
    140140            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());
    142142        }
    143143    }
     
    163163        ConcurrentJSLocker locker(codeBlock->m_lock);
    164164        pc[5].u.structure.set(vm, codeBlock, scope->structure(vm));
    165         pc[6].u.operandPointer = slot.cachedOffset();
     165        pc[6].u.operand = slot.cachedOffset();
    166166    }
    167167}
     
    187187            pc[4].u.operand = GetPutInfo(getPutInfo.resolveMode(), newResolveType, getPutInfo.initializationMode()).operand();
    188188            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());
    190190        }
    191191    }
     
    201201                ConcurrentJSLocker locker(codeBlock->m_lock);
    202202                pc[5].u.structure.set(vm, codeBlock, structure);
    203                 pc[6].u.operandPointer = slot.cachedOffset();
     203                pc[6].u.operand = slot.cachedOffset();
    204204            }
    205205            structure->startWatchingPropertyForReplacements(vm, slot.cachedOffset());
Note: See TracChangeset for help on using the changeset viewer.