master: Avoid using avx512 registers in generic routines
stassats via Sbcl-commits <[email protected]> Sat, 11 Jul 2026 15:04:51 +0000
| Newsgroups | gmane.lisp.steel-bank.cvs |
|---|---|
| Message-ID | <[email protected]> |
The branch "master" has been updated in SBCL:
via 14d60e26b1e9fc4b2ba63dd6d5f9a4c0e79b437e (commit)
from 173185836fb315946fd67df72a224c806a2f89e2 (commit)
- Log -----------------------------------------------------------------
commit 14d60e26b1e9fc4b2ba63dd6d5f9a4c0e79b437e
Author: Stas Boukarev <[email protected]>
Date: Sat Jul 11 18:03:28 2026 +0300
Avoid using avx512 registers in generic routines
Which forces avx512-capable allocation tramps.
Fixes lp#2160413
---
src/code/debug-int.lisp | 6 ++++++
src/code/x86-64-vm.lisp | 6 ++++++
2 files changed, 12 insertions(+)
diff --git a/src/code/debug-int.lisp b/src/code/debug-int.lisp
index c313f12bf..4e4bf26c0 100644
--- a/src/code/debug-int.lisp
+++ b/src/code/debug-int.lisp
@@ -2439,6 +2439,9 @@
#-c-stack-is-control-stack
(* (sb-c:sc+offset-offset sc+offset) n-word-bytes)
,offset)))
+ ;; Don't make the whole thing use avx512 registers
+ #+sb-simd-pack-512
+ (declare (notinline %make-simd-pack-512-ub64 %make-simd-pack-512-single %make-simd-pack-512-double))
(ecase (sb-c:sc+offset-scn sc+offset)
((#.any-reg-sc-number
#.descriptor-reg-sc-number)
@@ -2731,6 +2734,9 @@
#-c-stack-is-control-stack
(* (sb-c:sc+offset-offset sc+offset) n-word-bytes)
,offset)))
+ ;; Don't make the whole thing use avx512 registers
+ #+sb-simd-pack-512
+ (declare (notinline %make-simd-pack-512-ub64 %make-simd-pack-512-single %make-simd-pack-512-double))
(ecase (sb-c:sc+offset-scn sc+offset)
((#.any-reg-sc-number
#.descriptor-reg-sc-number)
diff --git a/src/code/x86-64-vm.lisp b/src/code/x86-64-vm.lisp
index f5fac6619..22529b398 100644
--- a/src/code/x86-64-vm.lisp
+++ b/src/code/x86-64-vm.lisp
@@ -35,6 +35,9 @@
(defun context-float-register (context index format &optional integer)
(declare (ignorable context index integer))
+ ;; Don't make the whole thing use avx512 registers
+ #+sb-simd-pack-512
+ (declare (notinline %make-simd-pack-512-ub64 %make-simd-pack-512-single %make-simd-pack-512-double))
#-(or darwin linux openbsd win32 sunos (and freebsd x86-64))
(progn
(warn "stub CONTEXT-FLOAT-REGISTER")
@@ -245,6 +248,9 @@
(defun %set-context-float-register (context index format value)
(declare (ignorable context index format))
+ ;; Don't make the whole thing use avx512 registers
+ #+sb-simd-pack-512
+ (declare (notinline %simd-pack-512-singles %simd-pack-512-doubles %simd-pack-512-ub64s))
#-(or linux win32)
(progn
(warn "stub %SET-CONTEXT-FLOAT-REGISTER")
-----------------------------------------------------------------------
hooks/post-receive
--
SBCL