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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.