[JSC] Remove per-host-function CTI stub in 32bit environment
[WebKit-https.git] / Source / JavaScriptCore / jit / JITOpcodes32_64.cpp
index 06bb3f6..2a58848 100644 (file)
 
 namespace JSC {
 
-JIT::CodeRef JIT::privateCompileCTINativeCall(VM* vm, NativeFunction func)
-{
-    // FIXME: This should be able to log ShadowChicken prologue packets.
-    // https://bugs.webkit.org/show_bug.cgi?id=155689
-    
-    Call nativeCall;
-
-    emitFunctionPrologue();
-    emitPutToCallFrameHeader(0, CallFrameSlot::codeBlock);
-    storePtr(callFrameRegister, &vm->topCallFrame);
-
-#if CPU(X86)
-    // Calling convention:      f(ecx, edx, ...);
-    // Host function signature: f(ExecState*);
-    move(callFrameRegister, X86Registers::ecx);
-
-    subPtr(TrustedImm32(8), stackPointerRegister); // Align stack for call.
-    storePtr(X86Registers::ecx, Address(stackPointerRegister));
-
-    // call the function
-    nativeCall = call();
-
-    addPtr(TrustedImm32(8), stackPointerRegister);
-
-#elif CPU(ARM) || CPU(MIPS)
-#if CPU(MIPS)
-    // Allocate stack space for (unused) 16 bytes (8-byte aligned) for 4 arguments.
-    subPtr(TrustedImm32(16), stackPointerRegister);
-#endif
-
-    // Calling convention is f(argumentGPR0, argumentGPR1, ...).
-    // Host function signature is f(ExecState*).
-    move(callFrameRegister, argumentGPR0);
-
-    emitGetFromCallFrameHeaderPtr(CallFrameSlot::callee, argumentGPR1);
-    loadPtr(Address(argumentGPR1, OBJECT_OFFSETOF(JSFunction, m_executable)), regT2);
-
-    // call the function
-    nativeCall = call();
-
-#if CPU(MIPS)
-    // Restore stack space
-    addPtr(TrustedImm32(16), stackPointerRegister);
-#endif
-
-    restoreReturnAddressBeforeReturn(regT3);
-#else
-#error "JIT not supported on this platform."
-    abortWithReason(JITNotSupported);
-#endif // CPU(X86)
-
-    // Check for an exception
-    Jump sawException = branch32(NotEqual, AbsoluteAddress(vm->addressOfException()), TrustedImm32(0));
-
-    emitFunctionEpilogue();
-    // Return.
-    ret();
-
-    // Handle an exception
-    sawException.link(this);
-
-    storePtr(callFrameRegister, &vm->topCallFrame);
-
-#if CPU(X86)
-    addPtr(TrustedImm32(-4), stackPointerRegister);
-    move(callFrameRegister, X86Registers::ecx);
-    push(X86Registers::ecx);
-#else
-    move(callFrameRegister, argumentGPR0);
-#endif
-    move(TrustedImmPtr(FunctionPtr(operationVMHandleException).value()), regT3);
-    call(regT3);
-
-#if CPU(X86)
-    addPtr(TrustedImm32(8), stackPointerRegister);
-#endif
-
-    jumpToExceptionHandler(*vm);
-
-    // All trampolines constructed! copy the code, link up calls, and set the pointers on the Machine object.
-    LinkBuffer patchBuffer(*this, GLOBAL_THUNK_ID);
-
-    patchBuffer.link(nativeCall, FunctionPtr(func));
-    return FINALIZE_CODE(patchBuffer, ("JIT CTI native call"));
-}
-
 void JIT::emit_op_mov(Instruction* currentInstruction)
 {
     int dst = currentInstruction[1].u.operand;