Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2bff772c7eeb205bb66618d4faf7f712fdfb626c
      
https://github.com/WebKit/WebKit/commit/2bff772c7eeb205bb66618d4faf7f712fdfb626c
  Author: Sosuke Suzuki <[email protected]>
  Date:   2026-02-12 (Thu, 12 Feb 2026)

  Changed paths:
    M Source/JavaScriptCore/CMakeLists.txt
    M Source/JavaScriptCore/assembler/ARM64Assembler.h
    M Source/JavaScriptCore/assembler/ARM64Registers.h
    M Source/JavaScriptCore/assembler/AbstractMacroAssembler.h
    M Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp
    M Source/JavaScriptCore/heap/GCMemoryOperations.h
    M Source/JavaScriptCore/inspector/scripts/codegen/preprocess.pl
    M Source/JavaScriptCore/interpreter/CallFrame.h
    M Source/JavaScriptCore/jit/ThunkGenerators.cpp
    M Source/JavaScriptCore/llint/LowLevelInterpreter.cpp
    M Source/JavaScriptCore/offlineasm/arm64.rb
    M Source/JavaScriptCore/runtime/MachineContext.h
    M Source/WTF/wtf/CodePtr.h
    M Source/WTF/wtf/FunctionPtr.h
    M Source/WTF/wtf/FunctionTraits.h
    M Source/WTF/wtf/PlatformCPU.h
    M Source/WTF/wtf/PlatformCallingConventions.h
    M Source/WTF/wtf/StackPointer.cpp
    M Source/bmalloc/CMakeLists.txt
    M Source/cmake/OptionsMSVC.cmake
    M Tools/Scripts/webkitdirs.pm
    M Tools/Scripts/webkitperl/BuildSubproject.pm

  Log Message:
  -----------
  [JSC] Add initial support for Windows ARM64
https://bugs.webkit.org/show_bug.cgi?id=307310

Reviewed by Yusuke Suzuki.

This patch adds initial support for Windows ARM64, with following changes:

* Use `_M_ARM64`, which is defined by clang-cl.
* On ARM64, there is no need to add attributes to enforce the System V ABI.
* In inline assembly, symbols cannot be exported using only `.global`.
  Therefore, they must be explicitly exported using `.drectve`.
  This is the same for Windows on x64.
* Alignment directives in inline assembly specify the size using 2^n.
* Unlike Linux and Mac, Windows does not use GOT (Global Offset Table) for
  relative addressing. Therefore, it is necessary to modify inline assembly
  that uses PC-relative addressing.
* Due to an LLVM bug, unwind tables cannot be generated if alignment directives
  are included within inline assembly. As a result, the build script must be 
modified.
* Add Windows ARM64 support to MachineContext.
* Update build script.

* Source/JavaScriptCore/CMakeLists.txt:
* Source/JavaScriptCore/assembler/ARM64Assembler.h:
* Source/JavaScriptCore/assembler/ARM64Registers.h:
* Source/JavaScriptCore/assembler/AbstractMacroAssembler.h:
* Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:
* Source/JavaScriptCore/heap/GCMemoryOperations.h:
(JSC::gcSafeMemcpy):
(JSC::gcSafeMemmove):
(JSC::gcSafeZeroMemory):
* Source/JavaScriptCore/inspector/scripts/codegen/preprocess.pl:
* Source/JavaScriptCore/interpreter/CallFrame.h:
* Source/JavaScriptCore/jit/ThunkGenerators.cpp:
* Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:
* Source/JavaScriptCore/offlineasm/arm64.rb:
* Source/JavaScriptCore/runtime/MachineContext.h:
(JSC::MachineContext::stackPointerImpl):
(JSC::MachineContext::framePointerImpl):
(JSC::MachineContext::instructionPointerImpl):
(JSC::MachineContext::argumentPointer<1>):
(JSC::MachineContext::wasmInstancePointer):
(JSC::MachineContext::llintInstructionPointer):
* Source/WTF/wtf/CodePtr.h:
* Source/WTF/wtf/FunctionPtr.h:
* Source/WTF/wtf/FunctionTraits.h:
* Source/WTF/wtf/PlatformCPU.h:
* Source/WTF/wtf/PlatformCallingConventions.h:
* Source/WTF/wtf/PlatformUse.h:
* Source/WTF/wtf/StackPointer.cpp:
* Source/bmalloc/CMakeLists.txt:
* Source/cmake/OptionsMSVC.cmake:
* Tools/Scripts/webkitdirs.pm:
(commandExists):
(isMsys):
(isAnyWindows):
(isARM64):
(shouldUseVcpkg):
(generateBuildSystemFromCMakeProject):
* Tools/Scripts/webkitperl/BuildSubproject.pm:

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



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

Reply via email to