Changeset 50594 in webkit


Ignore:
Timestamp:
Nov 6, 2009 12:47:47 AM (14 years ago)
Author:
barraclough@apple.com
Message:

Rubber Stamped by Oliver Hunt.

Patch by Gavin Barraclough <barraclough@apple.com> on 2009-11-05
Remove a magic number (1) from the JIT, instead compute the value with OBJECT_OFFSET.

  • jit/JITInlineMethods.h:

(JSC::JIT::emitPutJITStubArg):
(JSC::JIT::emitPutJITStubArgConstant):
(JSC::JIT::emitGetJITStubArg):
(JSC::JIT::emitPutJITStubArgFromVirtualRegister):

  • jit/JITStubCall.h:

(JSC::JITStubCall::JITStubCall):
(JSC::JITStubCall::getArgument):

  • jit/JITStubs.h:
Location:
trunk/JavaScriptCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r50593 r50594  
     12009-11-05  Gavin Barraclough  <barraclough@apple.com>
     2
     3        Rubber Stamped by Oliver Hunt.
     4
     5        Remove a magic number (1) from the JIT, instead compute the value with OBJECT_OFFSET.
     6
     7        * jit/JITInlineMethods.h:
     8        (JSC::JIT::emitPutJITStubArg):
     9        (JSC::JIT::emitPutJITStubArgConstant):
     10        (JSC::JIT::emitGetJITStubArg):
     11        (JSC::JIT::emitPutJITStubArgFromVirtualRegister):
     12        * jit/JITStubCall.h:
     13        (JSC::JITStubCall::JITStubCall):
     14        (JSC::JITStubCall::getArgument):
     15        * jit/JITStubs.h:
     16
    1172009-11-05  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu>
    218
  • trunk/JavaScriptCore/jit/JITInlineMethods.h

    r50109 r50594  
    3838ALWAYS_INLINE void JIT::emitPutJITStubArg(RegisterID src, unsigned argumentNumber)
    3939{
    40     unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + 1;
     40    unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + JITSTACKFRAME_ARGS_INDEX;
    4141    poke(src, argumentStackOffset);
    4242}
     
    4646ALWAYS_INLINE void JIT::emitPutJITStubArgConstant(unsigned value, unsigned argumentNumber)
    4747{
    48     unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + 1;
     48    unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + JITSTACKFRAME_ARGS_INDEX;
    4949    poke(Imm32(value), argumentStackOffset);
    5050}
     
    5454ALWAYS_INLINE void JIT::emitPutJITStubArgConstant(void* value, unsigned argumentNumber)
    5555{
    56     unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + 1;
     56    unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + JITSTACKFRAME_ARGS_INDEX;
    5757    poke(ImmPtr(value), argumentStackOffset);
    5858}
     
    6262ALWAYS_INLINE void JIT::emitGetJITStubArg(unsigned argumentNumber, RegisterID dst)
    6363{
    64     unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + 1;
     64    unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + JITSTACKFRAME_ARGS_INDEX;
    6565    peek(dst, argumentStackOffset);
    6666}
     
    586586ALWAYS_INLINE void JIT::emitPutJITStubArg(RegisterID tag, RegisterID payload, unsigned argumentNumber)
    587587{
    588     unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + 1;
     588    unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + JITSTACKFRAME_ARGS_INDEX;
    589589    poke(payload, argumentStackOffset);
    590590    poke(tag, argumentStackOffset + 1);
     
    595595ALWAYS_INLINE void JIT::emitPutJITStubArgFromVirtualRegister(unsigned src, unsigned argumentNumber, RegisterID scratch1, RegisterID scratch2)
    596596{
    597     unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + 1;
     597    unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + JITSTACKFRAME_ARGS_INDEX;
    598598    if (m_codeBlock->isConstantRegisterIndex(src)) {
    599599        JSValue constant = m_codeBlock->getConstant(src);
     
    847847ALWAYS_INLINE void JIT::emitPutJITStubArgFromVirtualRegister(unsigned src, unsigned argumentNumber, RegisterID scratch)
    848848{
    849     unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + 1;
     849    unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + JITSTACKFRAME_ARGS_INDEX;
    850850    if (m_codeBlock->isConstantRegisterIndex(src)) {
    851851        JSValue value = m_codeBlock->getConstant(src);
  • trunk/JavaScriptCore/jit/JITStubCall.h

    r49509 r50594  
    3939            , m_stub(stub)
    4040            , m_returnType(Cell)
    41             , m_stackIndex(stackIndexStart)
     41            , m_stackIndex(JITSTACKFRAME_ARGS_INDEX)
    4242        {
    4343        }
     
    4747            , m_stub(stub)
    4848            , m_returnType(Cell)
    49             , m_stackIndex(stackIndexStart)
     49            , m_stackIndex(JITSTACKFRAME_ARGS_INDEX)
    5050        {
    5151        }
     
    5555            , m_stub(stub)
    5656            , m_returnType(VoidPtr)
    57             , m_stackIndex(stackIndexStart)
     57            , m_stackIndex(JITSTACKFRAME_ARGS_INDEX)
    5858        {
    5959        }
     
    6363            , m_stub(stub)
    6464            , m_returnType(Int)
    65             , m_stackIndex(stackIndexStart)
     65            , m_stackIndex(JITSTACKFRAME_ARGS_INDEX)
    6666        {
    6767        }
     
    7171            , m_stub(stub)
    7272            , m_returnType(Int)
    73             , m_stackIndex(stackIndexStart)
     73            , m_stackIndex(JITSTACKFRAME_ARGS_INDEX)
    7474        {
    7575        }
     
    7979            , m_stub(stub)
    8080            , m_returnType(Void)
    81             , m_stackIndex(stackIndexStart)
     81            , m_stackIndex(JITSTACKFRAME_ARGS_INDEX)
    8282        {
    8383        }
     
    8888            , m_stub(stub)
    8989            , m_returnType(Value)
    90             , m_stackIndex(stackIndexStart)
     90            , m_stackIndex(JITSTACKFRAME_ARGS_INDEX)
    9191        {
    9292        }
     
    146146        void getArgument(size_t argumentNumber, JIT::RegisterID tag, JIT::RegisterID payload)
    147147        {
    148             size_t stackIndex = stackIndexStart + (argumentNumber * stackIndexStep);
     148            size_t stackIndex = JITSTACKFRAME_ARGS_INDEX + (argumentNumber * stackIndexStep);
    149149            m_jit->peek(payload, stackIndex);
    150150            m_jit->peek(tag, stackIndex + 1);
     
    223223    private:
    224224        static const size_t stackIndexStep = sizeof(EncodedJSValue) == 2 * sizeof(void*) ? 2 : 1;
    225         static const size_t stackIndexStart = 1; // Index 0 is reserved for restoreArgumentReference().
    226225
    227226        JIT* m_jit;
  • trunk/JavaScriptCore/jit/JITStubs.h

    r50109 r50594  
    187187#error "JITStackFrame not defined for this platform."
    188188#endif
     189
     190#define JITSTACKFRAME_ARGS_INDEX (OBJECT_OFFSETOF(JITStackFrame, args) / sizeof(void*))
    189191
    190192#if USE(JIT_STUB_ARGUMENT_VA_LIST)
Note: See TracChangeset for help on using the changeset viewer.