Changeset 156120 in webkit for trunk/Source/JavaScriptCore/jit/JSInterfaceJIT.h
- Timestamp:
- Sep 19, 2013, 3:10:26 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/jit/JSInterfaceJIT.h
r154075 r156120 28 28 29 29 #include "BytecodeConventions.h" 30 #include "CCallHelpers.h" 30 31 #include "JITCode.h" 31 32 #include "JITStubs.h" … … 39 40 40 41 namespace JSC { 41 class JSInterfaceJIT : public MacroAssembler{42 class JSInterfaceJIT : public CCallHelpers { 42 43 public: 44 JSInterfaceJIT(VM* vm, CodeBlock* codeBlock = 0) 45 : CCallHelpers(vm, codeBlock) 46 { 47 } 48 43 49 // NOTES: 44 50 // … … 207 213 void emitPutCellToCallFrameHeader(RegisterID from, JSStack::CallFrameHeaderEntry); 208 214 209 void preserveReturnAddressAfterCall(RegisterID);210 void restoreReturnAddressBeforeReturn(RegisterID);211 void restoreReturnAddressBeforeReturn(Address);212 215 void restoreArgumentReference(); 213 216 … … 397 400 } 398 401 399 #if CPU(ARM)400 401 ALWAYS_INLINE void JSInterfaceJIT::preserveReturnAddressAfterCall(RegisterID reg)402 {403 move(linkRegister, reg);404 }405 406 ALWAYS_INLINE void JSInterfaceJIT::restoreReturnAddressBeforeReturn(RegisterID reg)407 {408 move(reg, linkRegister);409 }410 411 ALWAYS_INLINE void JSInterfaceJIT::restoreReturnAddressBeforeReturn(Address address)412 {413 loadPtr(address, linkRegister);414 }415 #elif CPU(SH4)416 417 ALWAYS_INLINE void JSInterfaceJIT::preserveReturnAddressAfterCall(RegisterID reg)418 {419 m_assembler.stspr(reg);420 }421 422 ALWAYS_INLINE void JSInterfaceJIT::restoreReturnAddressBeforeReturn(RegisterID reg)423 {424 m_assembler.ldspr(reg);425 }426 427 ALWAYS_INLINE void JSInterfaceJIT::restoreReturnAddressBeforeReturn(Address address)428 {429 loadPtrLinkReg(address);430 }431 432 #elif CPU(MIPS)433 434 ALWAYS_INLINE void JSInterfaceJIT::preserveReturnAddressAfterCall(RegisterID reg)435 {436 move(returnAddressRegister, reg);437 }438 439 ALWAYS_INLINE void JSInterfaceJIT::restoreReturnAddressBeforeReturn(RegisterID reg)440 {441 move(reg, returnAddressRegister);442 }443 444 ALWAYS_INLINE void JSInterfaceJIT::restoreReturnAddressBeforeReturn(Address address)445 {446 loadPtr(address, returnAddressRegister);447 }448 449 #else // CPU(X86) || CPU(X86_64)450 451 ALWAYS_INLINE void JSInterfaceJIT::preserveReturnAddressAfterCall(RegisterID reg)452 {453 pop(reg);454 }455 456 ALWAYS_INLINE void JSInterfaceJIT::restoreReturnAddressBeforeReturn(RegisterID reg)457 {458 push(reg);459 }460 461 ALWAYS_INLINE void JSInterfaceJIT::restoreReturnAddressBeforeReturn(Address address)462 {463 push(address);464 }465 466 #endif467 468 402 ALWAYS_INLINE void JSInterfaceJIT::restoreArgumentReference() 469 403 {
Note:
See TracChangeset
for help on using the changeset viewer.