master: Use a memory operand instead of loading into a register, 2
stassats via Sbcl-commits <[email protected]> Sat, 18 Jul 2026 10:44:38 +0000
| Newsgroups | gmane.lisp.steel-bank.cvs |
|---|---|
| Message-ID | <[email protected]> |
The branch "master" has been updated in SBCL:
via 9939d748662c79b15bfbf0d3a590fe4442632929 (commit)
from 88b11e809444329adec84e3a5e82bb4de1957241 (commit)
- Log -----------------------------------------------------------------
commit 9939d748662c79b15bfbf0d3a590fe4442632929
Author: Stas Boukarev <[email protected]>
Date: Sat Jul 18 13:44:16 2026 +0300
Use a memory operand instead of loading into a register, 2
---
src/code/x86-64-simd.lisp | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/src/code/x86-64-simd.lisp b/src/code/x86-64-simd.lisp
index e1c06dcdb..403d095f5 100644
--- a/src/code/x86-64-simd.lisp
+++ b/src/code/x86-64-simd.lisp
@@ -2465,9 +2465,7 @@
(inst shl :dword tmp2 8)
(inst or :dword index tmp2)
- (inst shl index 5)
- (inst vmovdqu x2 (ea full-table index)) ; shuf-low
- (inst vmovdqu x3 (ea 16 full-table index)) ; shuf-high
+ (inst shl :dword index 5)
;; Use the high 4 bits of each byte to get an and-mask that
;; will clear their tags
@@ -2478,9 +2476,8 @@
(inst vpand current current x4)
;; Shuffle the bytes into 4-byte lanes
- (inst vmovdqa next current)
- (inst vpshufb current current x2) ; chars-low
- (inst vpshufb next next x3) ; chars-high
+ (inst vpshufb next current (ea 16 full-table index)) ; chars-high
+ (inst vpshufb current current (ea full-table index)) ; chars-low
(flet ((decode-lane (chars)
;; Perform
-----------------------------------------------------------------------
hooks/post-receive
--
SBCL