x86-64: rename xmm-tn-p to float-tn-p

This commit is contained in:
arthur 2026-08-20 19:05:16 +02:00 committed by Stas Boukarev
parent 6d159d1fd9
commit fde3ddff06
4 changed files with 16 additions and 17 deletions

View file

@ -941,7 +941,7 @@
(:variant nil)
(:generator 3
(when (or (location= y xmm)
(and (not (xmm-tn-p x)) (xmm-tn-p y)))
(and (not (float-tn-p x)) (float-tn-p y)))
(rotatef x y))
(sc-case x
(single-reg (setf xmm x))
@ -975,7 +975,7 @@
(:vop-var vop)
(:generator 3
(when (or (location= y xmm)
(and (not (xmm-tn-p x)) (xmm-tn-p y)))
(and (not (float-tn-p x)) (float-tn-p y)))
(rotatef x y))
(sc-case x
(double-reg

View file

@ -1021,7 +1021,7 @@
(ldb (byte 5 3) reg-id))
;;; Note that SB-VM has its own variation on these predicates
;;; operating on TNs: GPR-TN-P, XMM-TN-P
;;; operating on TNs: GPR-TN-P, FLOAT-TN-P
;;; Return true if THING is a general-purpose register.
(defun gpr-p (thing)

View file

@ -22,34 +22,34 @@
(unless (location= dst src)
(sc-case dst
((single-reg complex-single-reg)
(aver (xmm-tn-p src))
(aver (float-tn-p src))
(inst movaps dst src))
((double-reg complex-double-reg)
(aver (xmm-tn-p src))
(aver (float-tn-p src))
(inst movapd dst src))
#+sb-simd-pack
((int-sse-reg sse-reg)
(aver (xmm-tn-p src))
(aver (float-tn-p src))
(inst movdqa dst src))
#+sb-simd-pack
((single-sse-reg double-sse-reg)
(aver (xmm-tn-p src))
(aver (float-tn-p src))
(inst movaps dst src))
#+sb-simd-pack-256
(int-avx2-reg
(aver (xmm-tn-p src))
(aver (float-tn-p src))
(inst vmovdqa dst src))
#+sb-simd-pack-256
((single-avx2-reg double-avx2-reg)
(aver (xmm-tn-p src))
(aver (float-tn-p src))
(inst vmovaps dst src))
#+sb-simd-pack-512
(int-avx512-reg
(aver (xmm-tn-p src))
(aver (float-tn-p src))
(inst vmovdqu64 dst src))
#+sb-simd-pack-512
((single-avx512-reg double-avx512-reg)
(aver (xmm-tn-p src))
(aver (float-tn-p src))
(inst vmovups dst src))
(t
(if size

View file

@ -464,15 +464,14 @@
(defun gpr-tn-p (thing)
(and (tn-p thing)
(eq (sb-name (sc-sb (tn-sc thing))) 'registers)))
;;; Return true if THING is an XMM register TN.
(defun xmm-tn-p (thing)
;;; Return true if THING is a TN in the FLOAT-REGISTERS storage base. This
;;; includes XMM, YMM, ZMM SIMD registers, but also scalar float, double and
;;; complex float/double, but does not include mask registers.
(defun float-tn-p (thing)
(and (tn-p thing)
(eq (sb-name (sc-sb (tn-sc thing))) 'float-registers)))
(defun zmm-tn-p (tn)
(member (tn-sc tn) (list (sc-or-lose 'single-avx512-reg)
(sc-or-lose 'double-avx512-reg)
(sc-or-lose 'int-avx512-reg))))
;;; Return true if THING is on the stack (in whatever storage class).
(defun stack-tn-p (thing)
(and (tn-p thing)