Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5ad2bece7631af71f4efe7bf084a40f6e5147651
      
https://github.com/WebKit/WebKit/commit/5ad2bece7631af71f4efe7bf084a40f6e5147651
  Author: Yusuke Suzuki <[email protected]>
  Date:   2026-09-15 (Tue, 15 Sep 2026)

  Changed paths:
    A JSTests/wasm/stress/ipint-atomic-cmpxchg-fast-path.js
    M Source/JavaScriptCore/assembler/MaxFrameExtentForSlowPathCall.h
    M Source/JavaScriptCore/llint/InPlaceInterpreter.asm
    M Source/JavaScriptCore/llint/InPlaceInterpreter.cpp
    M Source/JavaScriptCore/llint/InPlaceInterpreter.h
    M Source/JavaScriptCore/llint/InPlaceInterpreter64.asm
    M Source/JavaScriptCore/llint/LowLevelInterpreter.cpp
    M Source/JavaScriptCore/offlineasm/arm64.rb
    M Source/JavaScriptCore/offlineasm/instructions.rb
    M Source/JavaScriptCore/offlineasm/risc.rb
    M Source/JavaScriptCore/offlineasm/x86.rb
    M Source/JavaScriptCore/wasm/WasmIPIntGenerator.h
    M Source/JavaScriptCore/wasm/WasmOperations.cpp

  Log Message:
  -----------
  [JSC] Tighten IPInt code
https://bugs.webkit.org/show_bug.cgi?id=324059
rdar://187291986

Reviewed by Yijia Huang.

IPInt code is layout with 256B size for each handler. This patch applies
many effort to reduce the size of this handler to make it within 128B size.
Currently enabling this smaller size only for ARM64.

1. Add ARM64 specific instructions to reduce # of instructions
2. Define out-of-line code for very large handler and jump to that
   instead.

This improves IPInt wasm execution by roughly ~5%, largely due to
reduced size from 256B -> 128B and now IPInt main loop is much more tight.

* JSTests/wasm/stress/ipint-atomic-cmpxchg-fast-path.js: Added.
(async test):
* Source/JavaScriptCore/assembler/MaxFrameExtentForSlowPathCall.h:
* Source/JavaScriptCore/llint/InPlaceInterpreter.asm:
* Source/JavaScriptCore/llint/InPlaceInterpreter.cpp:
* Source/JavaScriptCore/llint/InPlaceInterpreter.h:
* Source/JavaScriptCore/llint/InPlaceInterpreter64.asm:
* Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:
* Source/JavaScriptCore/offlineasm/arm64.rb:
* Source/JavaScriptCore/offlineasm/instructions.rb:
* Source/JavaScriptCore/offlineasm/risc.rb:
* Source/JavaScriptCore/offlineasm/x86.rb:
* Source/JavaScriptCore/wasm/WasmIPIntGenerator.h:
* Source/JavaScriptCore/wasm/WasmOperations.cpp:
(JSC::Wasm::doOSREntry):

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



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

Reply via email to