Changeset 172867 in webkit for trunk/Source/JavaScriptCore/jit/JIT.cpp
- Timestamp:
- Aug 22, 2014, 12:54:30 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/jit/JIT.cpp
r172820 r172867 723 723 void JIT::privateCompileExceptionHandlers() 724 724 { 725 if (m_exceptionChecks.empty() && m_exceptionChecksWithCallFrameRollback.empty())726 return;727 728 Jump doLookup;729 730 725 if (!m_exceptionChecksWithCallFrameRollback.empty()) { 731 726 m_exceptionChecksWithCallFrameRollback.link(this); 732 emitGetCallerFrameFromCallFrameHeaderPtr(GPRInfo::argumentGPR1); 733 doLookup = jump(); 734 } 735 736 if (!m_exceptionChecks.empty()) 727 728 // lookupExceptionHandlerFromCallerFrame is passed two arguments, the VM and the exec (the CallFrame*). 729 730 move(TrustedImmPtr(vm()), GPRInfo::argumentGPR0); 731 move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR1); 732 733 #if CPU(X86) 734 // FIXME: should use the call abstraction, but this is currently in the SpeculativeJIT layer! 735 poke(GPRInfo::argumentGPR0); 736 poke(GPRInfo::argumentGPR1, 1); 737 #endif 738 m_calls.append(CallRecord(call(), (unsigned)-1, FunctionPtr(lookupExceptionHandlerFromCallerFrame).value())); 739 jumpToExceptionHandler(); 740 } 741 742 if (!m_exceptionChecks.empty()) { 737 743 m_exceptionChecks.link(this); 738 739 // lookupExceptionHandler is passed two arguments, the VM and the exec (the CallFrame*). 740 move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR1); 741 742 if (doLookup.isSet()) 743 doLookup.link(this); 744 745 move(TrustedImmPtr(vm()), GPRInfo::argumentGPR0); 744 745 // lookupExceptionHandler is passed two arguments, the VM and the exec (the CallFrame*). 746 move(TrustedImmPtr(vm()), GPRInfo::argumentGPR0); 747 move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR1); 746 748 747 749 #if CPU(X86) 748 // FIXME: should use the call abstraction, but this is currently in the SpeculativeJIT layer! 749 poke(GPRInfo::argumentGPR0); 750 poke(GPRInfo::argumentGPR1, 1); 751 #endif 752 m_calls.append(CallRecord(call(), (unsigned)-1, FunctionPtr(lookupExceptionHandler).value())); 753 jumpToExceptionHandler(); 750 // FIXME: should use the call abstraction, but this is currently in the SpeculativeJIT layer! 751 poke(GPRInfo::argumentGPR0); 752 poke(GPRInfo::argumentGPR1, 1); 753 #endif 754 m_calls.append(CallRecord(call(), (unsigned)-1, FunctionPtr(lookupExceptionHandler).value())); 755 jumpToExceptionHandler(); 756 } 754 757 } 755 758
Note:
See TracChangeset
for help on using the changeset viewer.