#include "config.h"
#include "LLIntCLoop.h"
#include "Instruction.h"
namespace JSC {
namespace LLInt {
#if ENABLE(LLINT_C_LOOP)
void CLoop::initialize()
{
execute(0, llint_unused, true);
}
void* CLoop::catchRoutineFor(Instruction* catchPCForInterpreter)
{
return reinterpret_cast<Instruction*>(catchPCForInterpreter->u.opcode);
}
MacroAssemblerCodePtr CLoop::hostCodeEntryFor(CodeSpecializationKind kind)
{
MacroAssemblerCodePtr codePtr;
codePtr = (kind == CodeForCall) ?
MacroAssemblerCodePtr::createLLIntCodePtr(llint_native_call_trampoline) :
MacroAssemblerCodePtr::createLLIntCodePtr(llint_native_construct_trampoline);
return codePtr;
}
MacroAssemblerCodePtr CLoop::jsCodeEntryWithArityCheckFor(CodeSpecializationKind kind)
{
MacroAssemblerCodePtr codePtr;
codePtr = (kind == CodeForCall) ?
MacroAssemblerCodePtr::createLLIntCodePtr(llint_function_for_call_arity_check) :
MacroAssemblerCodePtr::createLLIntCodePtr(llint_function_for_construct_arity_check);
return codePtr;
}
MacroAssemblerCodePtr CLoop::jsCodeEntryFor(CodeSpecializationKind kind)
{
MacroAssemblerCodePtr codePtr;
codePtr = (kind == CodeForCall) ?
MacroAssemblerCodePtr::createLLIntCodePtr(llint_function_for_call_prologue) :
MacroAssemblerCodePtr::createLLIntCodePtr(llint_function_for_construct_prologue);
return codePtr;
}
#endif // ENABLE(LLINT_C_LOOP)
} }