master: x86-64: encode lddqu
stassats via Sbcl-commits <[email protected]>
| Newsgroups | gmane.lisp.steel-bank.cvs |
|---|---|
| Message-ID | <[email protected]> |
The branch "master" has been updated in SBCL:
via 0290cfc968277d27bb31b4879661aa21c67e605a (commit)
from 63e9079dcf77a8d77a58ddbd8e34afa29074db0e (commit)
- Log -----------------------------------------------------------------
commit 0290cfc968277d27bb31b4879661aa21c67e605a
Author: Stas Boukarev <[email protected]>
Date: Thu Aug 13 02:42:23 2026 +0300
x86-64: encode lddqu
---
src/compiler/x86-64/avx2-insts.lisp | 9 +++++++++
src/compiler/x86-64/insts.lisp | 7 +++++++
2 files changed, 16 insertions(+)
diff --git a/src/compiler/x86-64/avx2-insts.lisp b/src/compiler/x86-64/avx2-insts.lisp
index 74700ff60..064da937c 100644
--- a/src/compiler/x86-64/avx2-insts.lisp
+++ b/src/compiler/x86-64/avx2-insts.lisp
@@ -1137,6 +1137,15 @@ REG is the source (encoded in ModR/M.r/m).
(def vmovlpd #x66 #x12 #x13 :force-to-mem t :l 0 :nds t)
(def vmovlps nil #x12 #x13 :reg-reg-name vmovhlps :l 0 :nds t))
+(define-instruction vlddqu (segment dst src)
+ (:emitter
+ (aver (xmm-register-p dst))
+ (aver (ea-p src))
+ (emit-avx2-inst segment src dst #xf2 #xf0 :opcode-prefix 15 :evex-w 0 :l nil))
+ .
+ #.(avx2-inst-printer-list 'ymm-ymm/mem #xf2 #xf0))
+
+
(macrolet ((def (name prefix)
`(define-instruction ,name (segment dst src &optional src2)
,@(avx2-inst-printer-list 'ymm-ymm/mem-dir prefix #b0001000)
diff --git a/src/compiler/x86-64/insts.lisp b/src/compiler/x86-64/insts.lisp
index 2ea66f9d9..1302cbe6c 100644
--- a/src/compiler/x86-64/insts.lisp
+++ b/src/compiler/x86-64/insts.lisp
@@ -2829,6 +2829,13 @@
(emit-regular-2byte-sse-inst segment dst src #x66 #x38 #x2a))
. #.(2byte-sse-inst-printer '2byte-xmm-xmm/mem #x66 #x38 #x2a))
+(define-instruction lddqu (segment dst src)
+ (:printer ext-xmm-xmm/mem ((prefix #xF2) (op #xF0)))
+ (:emitter
+ (aver (xmm-register-p dst))
+ (aver (ea-p src))
+ (emit-regular-sse-inst segment dst src #xF2 #xF0)))
+
;;; Move a 32-bit value (MOVD) or 64-bit value (MOVQ)
;;; MOVD has encodings for xmm <-> r/m32.
;;; MOVQ has encodings for xmm <-> r/m64 and xmm <-> xmm/m64.
-----------------------------------------------------------------------
hooks/post-receive
--
SBCL