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