[webkit-changes] [WebKit/WebKit] 8f1711: Use SystemV ABI for C++ entrypoints for JS LLInt

Ian noreply at github.com
Sat May 18 18:26:59 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8f1711cf5f78246f4d8f77693eb046d370b293cc
      https://github.com/WebKit/WebKit/commit/8f1711cf5f78246f4d8f77693eb046d370b293cc
  Author: Ian Grunert <ian.grunert at gmail.com>
  Date:   2024-05-18 (Sat, 18 May 2024)

  Changed paths:
    M Source/JavaScriptCore/assembler/MaxFrameExtentForSlowPathCall.h
    M Source/JavaScriptCore/assembler/X86_64Registers.h
    M Source/JavaScriptCore/heap/MachineStackMarker.cpp
    M Source/JavaScriptCore/interpreter/VMEntryRecord.h
    M Source/JavaScriptCore/jit/AssemblyHelpers.h
    M Source/JavaScriptCore/jit/GPRInfo.h
    M Source/JavaScriptCore/jit/RegisterSet.cpp
    M Source/JavaScriptCore/llint/LLIntData.cpp
    M Source/JavaScriptCore/llint/LLIntSlowPaths.cpp
    M Source/JavaScriptCore/llint/LLIntSlowPaths.h
    M Source/JavaScriptCore/llint/LLIntThunks.h
    M Source/JavaScriptCore/llint/LowLevelInterpreter.asm
    M Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
    M Source/JavaScriptCore/offlineasm/x86.rb
    M Source/JavaScriptCore/runtime/MachineContext.h
    M Source/JavaScriptCore/runtime/PutPropertySlot.h
    M Source/JavaScriptCore/runtime/VM.h
    M Source/WTF/wtf/CodePtr.h
    M Source/WTF/wtf/FunctionPtr.h
    M Source/WTF/wtf/PlatformCallingConventions.h

  Log Message:
  -----------
  Use SystemV ABI for C++ entrypoints for JS LLInt
https://bugs.webkit.org/show_bug.cgi?id=274064

Reviewed by Yusuke Suzuki.

Switched register mapping on Windows to match the other x86-64 platforms
Added SystemV ABI function annotation to C++ entrypoints for JS LLInt
Disabed WebAssembly LLInt, as it doesn't work without JIT anyway, so we
can review the necessary changes there in another pull request.

* Source/JavaScriptCore/assembler/MaxFrameExtentForSlowPathCall.h:
* Source/JavaScriptCore/assembler/X86_64Registers.h:
* Source/JavaScriptCore/heap/MachineStackMarker.cpp:
(JSC::osRedZoneAdjustment):
* Source/JavaScriptCore/interpreter/VMEntryRecord.h:
* Source/JavaScriptCore/jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::selectScratchGPR):
* Source/JavaScriptCore/jit/GPRInfo.h:
(JSC::GPRInfo::toRegister):
(JSC::GPRInfo::toArgumentRegister):
(JSC::GPRInfo::toIndex):
(JSC::PreferredArgumentImpl::preferredArgumentJSR):
* Source/JavaScriptCore/jit/RegisterSet.cpp:
(JSC::RegisterSetBuilder::vmCalleeSaveRegisters):
(JSC::RegisterSetBuilder::llintBaselineCalleeSaveRegisters):
(JSC::RegisterSetBuilder::dfgCalleeSaveRegisters):
* Source/JavaScriptCore/llint/LLIntData.cpp:
* Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:
(JSC::LLInt::llint_trace_operand):
(JSC::LLInt::llint_trace_value):
(JSC::LLInt::llint_default_call):
(JSC::LLInt::llint_virtual_call):
(JSC::LLInt::llint_slow_path_checkpoint_osr_exit_from_inlined_call):
(JSC::LLInt::llint_slow_path_checkpoint_osr_exit):
(JSC::LLInt::llint_throw_stack_overflow_error):
(JSC::LLInt::llint_stack_check_at_vm_entry):
(JSC::LLInt::llint_check_vm_entry_permission):
(JSC::LLInt::llint_dump_value):
(JSC::LLInt::llint_crash):
* Source/JavaScriptCore/llint/LLIntSlowPaths.h:
* Source/JavaScriptCore/llint/LLIntThunks.h:
* Source/JavaScriptCore/llint/LowLevelInterpreter.asm:
* Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:
* Source/JavaScriptCore/offlineasm/x86.rb:
* Source/JavaScriptCore/runtime/MachineContext.h:
(JSC::MachineContext::llintInstructionPointer):
* Source/JavaScriptCore/runtime/PutPropertySlot.h:
* Source/JavaScriptCore/runtime/VM.h:
* Source/WTF/wtf/CodePtr.h:
(WTF::CodePtr::CodePtr):
* Source/WTF/wtf/FunctionPtr.h:
* Source/WTF/wtf/PlatformCallingConventions.h:

Canonical link: https://commits.webkit.org/278967@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list