diff options
Diffstat (limited to 'Source/JavaScriptCore/jit/JIT.cpp')
-rw-r--r-- | Source/JavaScriptCore/jit/JIT.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/Source/JavaScriptCore/jit/JIT.cpp b/Source/JavaScriptCore/jit/JIT.cpp index 01401a7..89b1e30 100644 --- a/Source/JavaScriptCore/jit/JIT.cpp +++ b/Source/JavaScriptCore/jit/JIT.cpp @@ -318,7 +318,6 @@ void JIT::privateCompileMainPass() DEFINE_OP(op_tear_off_arguments) DEFINE_OP(op_throw) DEFINE_OP(op_throw_reference_error) - DEFINE_OP(op_throw_syntax_error) DEFINE_OP(op_to_jsnumber) DEFINE_OP(op_to_primitive) @@ -490,7 +489,6 @@ JITCode JIT::privateCompile(CodePtr* functionEntryArityCheck) privateCompileSlowCases(); Label arityCheck; - Call callArityCheck; if (m_codeBlock->codeType() == FunctionCode) { registerFileCheck.link(this); m_bytecodeOffset = 0; @@ -505,8 +503,9 @@ JITCode JIT::privateCompile(CodePtr* functionEntryArityCheck) emitPutToCallFrameHeader(regT2, RegisterFile::ReturnPC); branch32(Equal, regT1, Imm32(m_codeBlock->m_numParameters)).linkTo(beginLabel, this); restoreArgumentReference(); - callArityCheck = call(); - move(regT0, callFrameRegister); + + JITStubCall(this, m_codeBlock->m_isConstructor ? cti_op_construct_arityCheck : cti_op_call_arityCheck).call(callFrameRegister); + jump(beginLabel); } @@ -586,10 +585,8 @@ JITCode JIT::privateCompile(CodePtr* functionEntryArityCheck) info.callReturnLocation = m_codeBlock->structureStubInfo(m_methodCallCompilationInfo[i].propertyAccessIndex).callReturnLocation; } - if (m_codeBlock->codeType() == FunctionCode && functionEntryArityCheck) { - patchBuffer.link(callArityCheck, FunctionPtr(m_codeBlock->m_isConstructor ? cti_op_construct_arityCheck : cti_op_call_arityCheck)); + if (m_codeBlock->codeType() == FunctionCode && functionEntryArityCheck) *functionEntryArityCheck = patchBuffer.locationOf(arityCheck); - } return patchBuffer.finalizeCode(); } |