• commit-queue@webkit.org's avatar
    Refactor LLInt and supporting code in preparation for the C Loop backend. · eebad5de
    commit-queue@webkit.org authored
    Patch by Mark Lam <mark.lam@apple.com> on 2012-08-31
    Reviewed by Filip Pizlo.
    * bytecode/GetByIdStatus.cpp:
    * bytecode/PutByIdStatus.cpp:
    * jit/JITExceptions.cpp:
    (JSC::genericThrow): Use ExecutableBase::catchRoutineFor() to fetch
        fetch the catch routine for a thrown exception.  This will allow
        us to redefine that for the C loop later, and still keep this
        code readable.
    * llint/LLIntOfflineAsmConfig.h: Moved ASM macros to
        LowLevelInterpreter.cpp which is the only place they are used. This
        will make it more convenient to redefine them for the C loop later.
    * llint/LLIntSlowPaths.cpp:
    (JSC::LLInt::setUpCall): Use ExecutableBase's hostCodeEntry()
        jsCodeEntryFor(), and jsCodeWithArityCheckEntryFor() for computing
        the entry points to functions being called.
    * llint/LLIntSlowPaths.h:
    (JSC::LLInt::decodeResult): Added.  Needed by LLInt C Loop later.
    * llint/LowLevelInterpreter.asm:
    * llint/LowLevelInterpreter.cpp:
    * llint/LowLevelInterpreter32_64.asm:
    * llint/LowLevelInterpreter64.asm:
    * offlineasm/asm.rb: Disambiguate between opcodes and other labels.
    * offlineasm/config.rb:
    * runtime/Executable.h:
    (JSC::ExecutableBase::hostCodeEntryFor): Added.
    (JSC::ExecutableBase::jsCodeEntryFor): Added.
    (JSC::ExecutableBase::jsCodeWithArityCheckEntryFor): Added.
    (JSC::ExecutableBase::catchRoutineFor): Added.
    * runtime/JSValueInlineMethods.h:
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127333 268f45cc-cd09-0410-ab3c-d52691b4dbfc