Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b4965f817ff33ae7aa73e757bcd5e9b3c4d60b97
      
https://github.com/WebKit/WebKit/commit/b4965f817ff33ae7aa73e757bcd5e9b3c4d60b97
  Author: Dan Hecht <[email protected]>
  Date:   2025-10-07 (Tue, 07 Oct 2025)

  Changed paths:
    M Source/JavaScriptCore/llint/InPlaceInterpreter64.asm

  Log Message:
  -----------
  [JSC] WASM IPInt SIMD: uINT stack_vector should not clobber sc2
https://bugs.webkit.org/show_bug.cgi?id=300280
rdar://162086434

Reviewed by Yusuke Suzuki.

uINT stack bytecode has this:

    popInt64(sc1, sc2)

which implies that register sc2 is not live at this point, and
so I had used it in uINT stack_vector to do parallel loads/stores.
However, on X86_64, that is not the case. And popInt64 doesn't
actually use the scratch, which explains why this doesn't cause
trouble without vector stack returns.

So, don't use sc2 in stack_vector. This bytecode is only used when
there are more than 8 FP and vector results, so it's very uncommon,
so let's just simplify it and use the same code on all platforms.

I'll follow up with another commit to remove the misleading, but
benign, "use" of sc2 in popInt64 arguments.

Testing: On X86_64, see that this fixes a crash when
running simd-instructions-calls.js tests in parallel.

* Source/JavaScriptCore/llint/InPlaceInterpreter64.asm:

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to