mirror of
https://github.com/Samsung/escargot.git
synced 2026-06-29 10:02:14 +00:00
Implement basic tail call optimization for normal function
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
This commit is contained in:
parent
0e0b759817
commit
283873a291
18 changed files with 540 additions and 92 deletions
|
|
@ -522,9 +522,9 @@ void CodeCacheWriter::storeByteCodeStream(ByteCodeBlock* block)
|
|||
STORE_ATOMICSTRING_RELOC(m_id);
|
||||
break;
|
||||
}
|
||||
case CallFunctionComplexCaseOpcode: {
|
||||
CallFunctionComplexCase* bc = static_cast<CallFunctionComplexCase*>(currentCode);
|
||||
if (bc->m_kind == CallFunctionComplexCase::InWithScope) {
|
||||
case CallComplexCaseOpcode: {
|
||||
CallComplexCase* bc = static_cast<CallComplexCase*>(currentCode);
|
||||
if (bc->m_kind == CallComplexCase::InWithScope) {
|
||||
STORE_ATOMICSTRING_RELOC(m_calleeName);
|
||||
}
|
||||
break;
|
||||
|
|
@ -1099,9 +1099,9 @@ void CodeCacheReader::loadByteCodeStream(Context* context, ByteCodeBlock* block)
|
|||
LOAD_ATOMICSTRING_RELOC(m_id);
|
||||
break;
|
||||
}
|
||||
case CallFunctionComplexCaseOpcode: {
|
||||
CallFunctionComplexCase* bc = static_cast<CallFunctionComplexCase*>(currentCode);
|
||||
ASSERT(bc->m_kind == CallFunctionComplexCase::InWithScope);
|
||||
case CallComplexCaseOpcode: {
|
||||
CallComplexCase* bc = static_cast<CallComplexCase*>(currentCode);
|
||||
ASSERT(bc->m_kind == CallComplexCase::InWithScope);
|
||||
LOAD_ATOMICSTRING_RELOC(m_calleeName);
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue