Changeset 50594 in webkit for trunk/JavaScriptCore
- Timestamp:
- Nov 6, 2009, 12:47:47 AM (16 years ago)
- Location:
- trunk/JavaScriptCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/ChangeLog
r50593 r50594 1 2009-11-05 Gavin Barraclough <[email protected]> 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 1 17 2009-11-05 Zoltan Herczeg <[email protected]> 2 18 -
trunk/JavaScriptCore/jit/JITInlineMethods.h
r50109 r50594 38 38 ALWAYS_INLINE void JIT::emitPutJITStubArg(RegisterID src, unsigned argumentNumber) 39 39 { 40 unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + 1;40 unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + JITSTACKFRAME_ARGS_INDEX; 41 41 poke(src, argumentStackOffset); 42 42 } … … 46 46 ALWAYS_INLINE void JIT::emitPutJITStubArgConstant(unsigned value, unsigned argumentNumber) 47 47 { 48 unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + 1;48 unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + JITSTACKFRAME_ARGS_INDEX; 49 49 poke(Imm32(value), argumentStackOffset); 50 50 } … … 54 54 ALWAYS_INLINE void JIT::emitPutJITStubArgConstant(void* value, unsigned argumentNumber) 55 55 { 56 unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + 1;56 unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + JITSTACKFRAME_ARGS_INDEX; 57 57 poke(ImmPtr(value), argumentStackOffset); 58 58 } … … 62 62 ALWAYS_INLINE void JIT::emitGetJITStubArg(unsigned argumentNumber, RegisterID dst) 63 63 { 64 unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + 1;64 unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + JITSTACKFRAME_ARGS_INDEX; 65 65 peek(dst, argumentStackOffset); 66 66 } … … 586 586 ALWAYS_INLINE void JIT::emitPutJITStubArg(RegisterID tag, RegisterID payload, unsigned argumentNumber) 587 587 { 588 unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + 1;588 unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + JITSTACKFRAME_ARGS_INDEX; 589 589 poke(payload, argumentStackOffset); 590 590 poke(tag, argumentStackOffset + 1); … … 595 595 ALWAYS_INLINE void JIT::emitPutJITStubArgFromVirtualRegister(unsigned src, unsigned argumentNumber, RegisterID scratch1, RegisterID scratch2) 596 596 { 597 unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + 1;597 unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + JITSTACKFRAME_ARGS_INDEX; 598 598 if (m_codeBlock->isConstantRegisterIndex(src)) { 599 599 JSValue constant = m_codeBlock->getConstant(src); … … 847 847 ALWAYS_INLINE void JIT::emitPutJITStubArgFromVirtualRegister(unsigned src, unsigned argumentNumber, RegisterID scratch) 848 848 { 849 unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + 1;849 unsigned argumentStackOffset = (argumentNumber * (sizeof(JSValue) / sizeof(void*))) + JITSTACKFRAME_ARGS_INDEX; 850 850 if (m_codeBlock->isConstantRegisterIndex(src)) { 851 851 JSValue value = m_codeBlock->getConstant(src); -
trunk/JavaScriptCore/jit/JITStubCall.h
r49509 r50594 39 39 , m_stub(stub) 40 40 , m_returnType(Cell) 41 , m_stackIndex( stackIndexStart)41 , m_stackIndex(JITSTACKFRAME_ARGS_INDEX) 42 42 { 43 43 } … … 47 47 , m_stub(stub) 48 48 , m_returnType(Cell) 49 , m_stackIndex( stackIndexStart)49 , m_stackIndex(JITSTACKFRAME_ARGS_INDEX) 50 50 { 51 51 } … … 55 55 , m_stub(stub) 56 56 , m_returnType(VoidPtr) 57 , m_stackIndex( stackIndexStart)57 , m_stackIndex(JITSTACKFRAME_ARGS_INDEX) 58 58 { 59 59 } … … 63 63 , m_stub(stub) 64 64 , m_returnType(Int) 65 , m_stackIndex( stackIndexStart)65 , m_stackIndex(JITSTACKFRAME_ARGS_INDEX) 66 66 { 67 67 } … … 71 71 , m_stub(stub) 72 72 , m_returnType(Int) 73 , m_stackIndex( stackIndexStart)73 , m_stackIndex(JITSTACKFRAME_ARGS_INDEX) 74 74 { 75 75 } … … 79 79 , m_stub(stub) 80 80 , m_returnType(Void) 81 , m_stackIndex( stackIndexStart)81 , m_stackIndex(JITSTACKFRAME_ARGS_INDEX) 82 82 { 83 83 } … … 88 88 , m_stub(stub) 89 89 , m_returnType(Value) 90 , m_stackIndex( stackIndexStart)90 , m_stackIndex(JITSTACKFRAME_ARGS_INDEX) 91 91 { 92 92 } … … 146 146 void getArgument(size_t argumentNumber, JIT::RegisterID tag, JIT::RegisterID payload) 147 147 { 148 size_t stackIndex = stackIndexStart+ (argumentNumber * stackIndexStep);148 size_t stackIndex = JITSTACKFRAME_ARGS_INDEX + (argumentNumber * stackIndexStep); 149 149 m_jit->peek(payload, stackIndex); 150 150 m_jit->peek(tag, stackIndex + 1); … … 223 223 private: 224 224 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().226 225 227 226 JIT* m_jit; -
trunk/JavaScriptCore/jit/JITStubs.h
r50109 r50594 187 187 #error "JITStackFrame not defined for this platform." 188 188 #endif 189 190 #define JITSTACKFRAME_ARGS_INDEX (OBJECT_OFFSETOF(JITStackFrame, args) / sizeof(void*)) 189 191 190 192 #if USE(JIT_STUB_ARGUMENT_VA_LIST)
Note:
See TracChangeset
for help on using the changeset viewer.