Changeset 44088 in webkit for trunk/JavaScriptCore/interpreter


Ignore:
Timestamp:
May 23, 2009, 4:08:58 AM (16 years ago)
Author:
[email protected]
Message:

Remove interpreter specific logic from the JIT builds

Reviewed by Maciej Stachowiak.

This saves ~100k in JSC release builds.

Location:
trunk/JavaScriptCore/interpreter
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/interpreter/Interpreter.cpp

    r44076 r44088  
    9292}
    9393
     94#if USE(INTERPRETER)
    9495NEVER_INLINE bool Interpreter::resolve(CallFrame* callFrame, Instruction* vPC, JSValue& exceptionValue)
    9596{
     
    281282}
    282283
     284#endif // USE(INTERPRETER)
     285
    283286ALWAYS_INLINE CallFrame* Interpreter::slideRegisterWindowForCall(CodeBlock* newCodeBlock, RegisterFile* registerFile, CallFrame* callFrame, size_t registerOffset, int argc)
    284287{
     
    318321}
    319322
     323#if USE(INTERPRETER)
    320324static NEVER_INLINE bool isInvalidParamForIn(CallFrame* callFrame, CodeBlock* codeBlock, const Instruction* vPC, JSValue value, JSValue& exceptionData)
    321325{
     
    333337    return true;
    334338}
     339#endif
    335340
    336341NEVER_INLINE JSValue Interpreter::callEval(CallFrame* callFrame, RegisterFile* registerFile, Register* argv, int argc, int registerOffset, JSValue& exceptionValue)
     
    907912    }
    908913}
    909 
     914   
     915#if USE(INTERPRETER)
    910916NEVER_INLINE ScopeChainNode* Interpreter::createExceptionScope(CallFrame* callFrame, const Instruction* vPC)
    911917{
     
    10871093}
    10881094
     1095#endif // USE(INTERPRETER)
     1096
    10891097JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFile, CallFrame* callFrame, JSValue* exception)
    10901098{
     
    11091117    ASSERT_NOT_REACHED();
    11101118#endif
     1119#if !USE(INTERPRETER)
     1120    UNUSED_PARAM(registerFile);
     1121    UNUSED_PARAM(callFrame);
     1122    UNUSED_PARAM(exception);
     1123    return JSValue();
     1124#else
    11111125
    11121126    JSGlobalData* globalData = &callFrame->globalData();
     
    38563870    } // iterator loop ends
    38573871#endif
     3872#endif // USE(INTERPRETER)
    38583873    #undef NEXT_INSTRUCTION
    38593874    #undef DEFINE_OPCODE
  • trunk/JavaScriptCore/interpreter/Interpreter.h

    r43122 r44088  
    120120
    121121        NEVER_INLINE void debug(CallFrame*, DebugHookID, int firstLine, int lastLine);
    122 
     122#if USE(INTERPRETER)
    123123        NEVER_INLINE bool resolve(CallFrame*, Instruction*, JSValue& exceptionValue);
    124124        NEVER_INLINE bool resolveSkip(CallFrame*, Instruction*, JSValue& exceptionValue);
     
    126126        NEVER_INLINE void resolveBase(CallFrame*, Instruction* vPC);
    127127        NEVER_INLINE bool resolveBaseAndProperty(CallFrame*, Instruction*, JSValue& exceptionValue);
     128        NEVER_INLINE bool resolveBaseAndFunc(CallFrame*, Instruction*, JSValue& exceptionValue);
    128129        NEVER_INLINE ScopeChainNode* createExceptionScope(CallFrame*, const Instruction* vPC);
     130
     131        void tryCacheGetByID(CallFrame*, CodeBlock*, Instruction*, JSValue baseValue, const Identifier& propertyName, const PropertySlot&);
     132        void uncacheGetByID(CodeBlock*, Instruction* vPC);
     133        void tryCachePutByID(CallFrame*, CodeBlock*, Instruction*, JSValue baseValue, const PutPropertySlot&);
     134        void uncachePutByID(CodeBlock*, Instruction* vPC);       
     135#endif
    129136
    130137        NEVER_INLINE bool unwindCallFrame(CallFrame*&, JSValue, unsigned& bytecodeOffset, CodeBlock*&);
    131138        NEVER_INLINE HandlerInfo* throwException(CallFrame*&, JSValue&, unsigned bytecodeOffset, bool);
    132         NEVER_INLINE bool resolveBaseAndFunc(CallFrame*, Instruction*, JSValue& exceptionValue);
    133139
    134140        static ALWAYS_INLINE CallFrame* slideRegisterWindowForCall(CodeBlock*, RegisterFile*, CallFrame*, size_t registerOffset, int argc);
     
    140146        void dumpCallFrame(CallFrame*);
    141147        void dumpRegisters(CallFrame*);
    142 
    143         void tryCacheGetByID(CallFrame*, CodeBlock*, Instruction*, JSValue baseValue, const Identifier& propertyName, const PropertySlot&);
    144         void uncacheGetByID(CodeBlock*, Instruction* vPC);
    145         void tryCachePutByID(CallFrame*, CodeBlock*, Instruction*, JSValue baseValue, const PutPropertySlot&);
    146         void uncachePutByID(CodeBlock*, Instruction* vPC);
    147148       
    148149        bool isCallBytecode(Opcode opcode) { return opcode == getOpcode(op_call) || opcode == getOpcode(op_construct) || opcode == getOpcode(op_call_eval); }
Note: See TracChangeset for help on using the changeset viewer.