Changeset 175471 in webkit for trunk/Source/JavaScriptCore/llint


Ignore:
Timestamp:
Nov 3, 2014, 9:56:29 AM (11 years ago)
Author:
[email protected]
Message:

Add scope operand to op_resolve_scope
https://bugs.webkit.org/show_bug.cgi?id=138253

Reviewed by Mark Lam.

Added scope operand to op_resolve_scope. Although the scope register is filled in with
the ScopeChain register, this operand is not used in the processing of the bytecode.
That will be addressed in a future patch.

  • bytecode/BytecodeList.json: Lengthened the three bytecodes.
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode): Added code to dump the scope operand.

(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::finalizeUnconditionally):
Updated the operand indecies for the processing of op_resolve_scope.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitResolveScope):
(JSC::BytecodeGenerator::emitGetOwnScope):
(JSC::BytecodeGenerator::emitReturn):
Added scope register to these emit functions and the bytecodes they emit.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_resolve_scope):
(JSC::JIT::emitSlow_op_resolve_scope):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_resolve_scope):
(JSC::JIT::emitSlow_op_resolve_scope):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:

Updated the operand indecies for the processing of op_resolve_scope.

Location:
trunk/Source/JavaScriptCore/llint
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp

    r175426 r175471  
    13561356{
    13571357    LLINT_BEGIN();
    1358     const Identifier& ident = exec->codeBlock()->identifier(pc[2].u.operand);
     1358    const Identifier& ident = exec->codeBlock()->identifier(pc[3].u.operand);
    13591359    LLINT_RETURN(JSScope::resolve(exec, exec->scope(), ident));
    13601360}
  • trunk/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm

    r174996 r175471  
    21602160macro resolveScope()
    21612161    loadp CodeBlock[cfr], t0
    2162     loadisFromInstruction(4, t2)
     2162    loadisFromInstruction(5, t2)
    21632163
    21642164    loadp ScopeChain + PayloadOffset[cfr], t0
     
    21792179_llint_op_resolve_scope:
    21802180    traceExecution()
    2181     loadisFromInstruction(3, t0)
     2181    loadisFromInstruction(4, t0)
    21822182
    21832183#rGlobalProperty:
    21842184    bineq t0, GlobalProperty, .rGlobalVar
    21852185    getGlobalObject(1)
    2186     dispatch(6)
     2186    dispatch(7)
    21872187
    21882188.rGlobalVar:
    21892189    bineq t0, GlobalVar, .rClosureVar
    21902190    getGlobalObject(1)
    2191     dispatch(6)
     2191    dispatch(7)
    21922192
    21932193.rClosureVar:
    21942194    bineq t0, ClosureVar, .rGlobalPropertyWithVarInjectionChecks
    21952195    resolveScope()
    2196     dispatch(6)
     2196    dispatch(7)
    21972197
    21982198.rGlobalPropertyWithVarInjectionChecks:
     
    22002200    varInjectionCheck(.rDynamic)
    22012201    getGlobalObject(1)
    2202     dispatch(6)
     2202    dispatch(7)
    22032203
    22042204.rGlobalVarWithVarInjectionChecks:
     
    22062206    varInjectionCheck(.rDynamic)
    22072207    getGlobalObject(1)
    2208     dispatch(6)
     2208    dispatch(7)
    22092209
    22102210.rClosureVarWithVarInjectionChecks:
     
    22122212    varInjectionCheck(.rDynamic)
    22132213    resolveScope()
    2214     dispatch(6)
     2214    dispatch(7)
    22152215
    22162216.rDynamic:
    22172217    callSlowPath(_llint_slow_path_resolve_scope)
    2218     dispatch(6)
     2218    dispatch(7)
    22192219
    22202220
  • trunk/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm

    r175058 r175471  
    19931993macro resolveScope()
    19941994    loadp CodeBlock[cfr], t0
    1995     loadisFromInstruction(4, t2)
     1995    loadisFromInstruction(5, t2)
    19961996    loadp ScopeChain[cfr], t0
    19971997    btiz t2, .resolveScopeLoopEnd
     
    20102010_llint_op_resolve_scope:
    20112011    traceExecution()
    2012     loadisFromInstruction(3, t0)
     2012    loadisFromInstruction(4, t0)
    20132013
    20142014#rGlobalProperty:
    20152015    bineq t0, GlobalProperty, .rGlobalVar
    20162016    getGlobalObject(1)
    2017     dispatch(6)
     2017    dispatch(7)
    20182018
    20192019.rGlobalVar:
    20202020    bineq t0, GlobalVar, .rClosureVar
    20212021    getGlobalObject(1)
    2022     dispatch(6)
     2022    dispatch(7)
    20232023
    20242024.rClosureVar:
    20252025    bineq t0, ClosureVar, .rGlobalPropertyWithVarInjectionChecks
    20262026    resolveScope()
    2027     dispatch(6)
     2027    dispatch(7)
    20282028
    20292029.rGlobalPropertyWithVarInjectionChecks:
     
    20312031    varInjectionCheck(.rDynamic)
    20322032    getGlobalObject(1)
    2033     dispatch(6)
     2033    dispatch(7)
    20342034
    20352035.rGlobalVarWithVarInjectionChecks:
     
    20372037    varInjectionCheck(.rDynamic)
    20382038    getGlobalObject(1)
    2039     dispatch(6)
     2039    dispatch(7)
    20402040
    20412041.rClosureVarWithVarInjectionChecks:
     
    20432043    varInjectionCheck(.rDynamic)
    20442044    resolveScope()
    2045     dispatch(6)
     2045    dispatch(7)
    20462046
    20472047.rDynamic:
    20482048    callSlowPath(_llint_slow_path_resolve_scope)
    2049     dispatch(6)
     2049    dispatch(7)
    20502050
    20512051
Note: See TracChangeset for help on using the changeset viewer.