master: Copy the changes from utf8-strlen to utf8-to-character-string

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  3cc8aa4c51d78423beb596fdc20b9a104e544a31 (commit)
      from  ade839f1e4a48fdfb476ff52cdde8507c9b839a1 (commit)

- Log -----------------------------------------------------------------
commit 3cc8aa4c51d78423beb596fdc20b9a104e544a31
Author: Stas Boukarev <[email protected]>
Date:   Tue Aug 11 23:40:44 2026 +0300

    Copy the changes from utf8-strlen to utf8-to-character-string
---
 src/code/arm64-simd.lisp | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/src/code/arm64-simd.lisp b/src/code/arm64-simd.lisp
index 89643980a..969f7b0ae 100644
--- a/src/code/arm64-simd.lisp
+++ b/src/code/arm64-simd.lisp
@@ -661,6 +661,7 @@
                        (inst and temp3 temp1 nibble-mask :16b)
                        (inst ushr temp4 bytes 4 :16b)
 
+                       (inst tbl temp1 (list tbl4) temp4 :16b)
                        (inst tbl temp2 (list tbl1) temp2 :16b)
                        (inst tbl temp3 (list tbl2) temp3 :16b)
                        (inst tbl temp4 (list tbl3) temp4 :16b)
@@ -668,19 +669,15 @@
                        (inst and temp2 temp2 temp3 :16b)
                        (inst and s1 temp2 temp4 :16b)
 
-                       (inst ushr temp1 bytes 4 :16b)
-                       (inst tbl temp1 (list tbl4) temp1 :16b)
-
+                       ;; Check that the leading bytes are followed by
+                       ;; the correct amount of continuations
                        (inst ext temp2 prev-len temp1 15 :16b)
                        (inst ext temp3 prev-len temp1 14 :16b)
                        (inst ext temp4 prev-len temp1 13 :16b)
 
                        (inst ushr temp2 temp2 1 :16b)
-                       (inst ushr temp3 temp3 2 :16b)
-                       (inst ushr temp4 temp4 3 :16b)
-
-                       (inst orr temp2 temp2 temp3 :16b)
-                       (inst orr temp2 temp2 temp4 :16b)
+                       (inst usra temp2 temp3 2 :16b)
+                       (inst usra temp2 temp4 3 :16b)
 
                        (inst cmgt temp3 c-c0 bytes :16b) ;; continuations
 
@@ -2023,6 +2020,8 @@
                (inst and tmp2 tmp2 tmp4 :16b)
                (inst orr errors errors tmp2 :16b)
 
+               ;; Check that the leading bytes are followed by the
+               ;; correct amount of continuations
                (inst ext tmp2 prev-len tmp1 15 :16b)
                (inst ext tmp3 prev-len tmp1 14 :16b)
                (inst ext tmp4 prev-len tmp1 13 :16b)

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


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.