master: arm64/simd-pack: use stp during allocation

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  a6ebdf5177a6eb4259176d21673678296a41ec90 (commit)
      from  f5b902543065796a6bb2543cd3d31fdd4bb62eff (commit)

- Log -----------------------------------------------------------------
commit a6ebdf5177a6eb4259176d21673678296a41ec90
Author: Stas Boukarev <[email protected]>
Date:   Sat Aug 29 19:11:55 2026 +0300

    arm64/simd-pack: use stp during allocation
---
 src/compiler/arm64/simd-pack.lisp | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/src/compiler/arm64/simd-pack.lisp b/src/compiler/arm64/simd-pack.lisp
index 6cedbe04f..5d31ac9d8 100644
--- a/src/compiler/arm64/simd-pack.lisp
+++ b/src/compiler/arm64/simd-pack.lisp
@@ -117,12 +117,12 @@
                     (:note "NEON to pointer coercion")
                     (:generator 13
                       (with-fixed-allocation (y lr
-                                                simd-pack-widetag
-                                                simd-pack-size)
+                                              simd-pack-widetag
+                                              simd-pack-size
+                                              :store-type-code nil)
                         (inst mov header (fixnumize ,tag))
-                        (storew header
-                                y simd-pack-tag-slot other-pointer-lowtag)
-                        (storew x y simd-pack-lo-value-slot other-pointer-lowtag))))
+                        (storew-pair lr 0 header simd-pack-tag-slot tmp-tn)
+                        (storew x tmp-tn simd-pack-lo-value-slot))))
                   (define-move-vop ,name :move
                     ,scs (descriptor-reg))))))
   ;; see +simd-pack-element-types+
@@ -201,12 +201,11 @@
   (:result-types t)
   (:generator 13
     (with-fixed-allocation (dst lr
-                                simd-pack-widetag
-                                simd-pack-size)
+                            simd-pack-widetag
+                            simd-pack-size :store-type-code nil)
       ;; see +simd-pack-element-types+
-      (storew tag dst simd-pack-tag-slot other-pointer-lowtag)
-      (storew lo dst simd-pack-lo-value-slot other-pointer-lowtag)
-      (storew hi dst simd-pack-hi-value-slot other-pointer-lowtag))))
+      (storew-pair lr 0 tag simd-pack-tag-slot tmp-tn)
+      (storew-pair lo simd-pack-lo-value-slot hi simd-pack-hi-value-slot tmp-tn))))
 
 (define-vop (%make-simd-pack-ub64)
   (:translate %make-simd-pack-ub64)

-----------------------------------------------------------------------


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.