Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 2a040cbef4c2e759a20508e0e32170a86f72d9ab
https://github.com/WebKit/WebKit/commit/2a040cbef4c2e759a20508e0e32170a86f72d9ab
Author: Yusuke Suzuki <[email protected]>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
A JSTests/microbenchmarks/from-hex.js
M JSTests/stress/uint8array-fromHex.js
M JSTests/stress/uint8array-setFromHex.js
M Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructor.cpp
M Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructor.h
M Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototype.cpp
Log Message:
-----------
[JSC] Implement fromHex and setFromHex in SIMD
https://bugs.webkit.org/show_bug.cgi?id=276705
rdar://131903377
Reviewed by Keith Miller and Justin Michaud.
This patch implements fromHex / setFromHex in SIMD. The new implementation is
roughly 17x faster.
We use http://0x80.pl/notesen/2022-01-17-validating-hex-parse.html 's algorithm
3 approach to decode hex in SIMD with validation.
For 16bit string, we load high and low bytes separately, checking high bytes
are all zero, and decoding low bytes as the same to
8bit string with validation.
ToT Patched
from-hex 46.8263+-0.1123 ^ 2.7441+-0.0149 ^
definitely 17.0641x faster
* JSTests/microbenchmarks/from-hex.js: Added.
(test):
* JSTests/stress/uint8array-fromHex.js:
(shouldBeArray.Uint8Array.fromHex):
(shouldBeArray):
* Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructor.cpp:
(JSC::decodeHexImpl):
(JSC::decodeHex):
(JSC::JSC_DEFINE_HOST_FUNCTION):
* Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructor.h:
* Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
Canonical link: https://commits.webkit.org/281053@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