Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package isa-l for openSUSE:Factory checked 
in at 2026-03-31 15:22:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/isa-l (Old)
 and      /work/SRC/openSUSE:Factory/.isa-l.new.1999 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "isa-l"

Tue Mar 31 15:22:33 2026 rev:5 rq:1343722 version:2.32.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/isa-l/isa-l.changes      2026-03-17 
19:05:08.830287001 +0100
+++ /work/SRC/openSUSE:Factory/.isa-l.new.1999/isa-l.changes    2026-03-31 
15:23:34.735543974 +0200
@@ -1,0 +2,15 @@
+Mon Mar 30 15:36:42 UTC 2026 - Pablo de Lara Guarch 
<[email protected]>
+
+- Add 0001-crc-fix-x86-CRC-dispatcher.patch to fix dispatcher issue
+
+-------------------------------------------------------------------
+Mon Mar 30 15:25:40 UTC 2026 - Pablo de Lara Guarch 
<[email protected]>
+
+- Removed unnecessary debug lines in spec file.
+
+-------------------------------------------------------------------
+Mon Mar 30 15:17:31 UTC 2026 - Pablo de Lara Guarch 
<[email protected]>
+
+- Added patch fixing CRC x86 dispatcher. 
+
+-------------------------------------------------------------------

New:
----
  0001-crc-fix-x86-CRC-dispatcher.patch

----------(New B)----------
  New:
- Add 0001-crc-fix-x86-CRC-dispatcher.patch to fix dispatcher issue
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ isa-l.spec ++++++
--- /var/tmp/diff_new_pack.kCx02C/_old  2026-03-31 15:23:35.575578969 +0200
+++ /var/tmp/diff_new_pack.kCx02C/_new  2026-03-31 15:23:35.579579135 +0200
@@ -30,6 +30,8 @@
 BuildRequires:  libtool
 BuildRequires:  nasm >= 2.14.01
 
+Patch0:         0001-crc-fix-x86-CRC-dispatcher.patch
+
 %description
 Optimized low-level functions targeting storage applications.
 
@@ -77,7 +79,8 @@
 in libisal2.
 
 %prep
-%autosetup
+%setup -q -n isa-l-2.32.0
+%patch 0 -p1
 
 %build
 %global _lto_cflags %{_lto_cflags} -ffat-lto-objects

++++++ 0001-crc-fix-x86-CRC-dispatcher.patch ++++++
>From 4b8a74db220266ac37fba70b5fb55d3c95fab7b4 Mon Sep 17 00:00:00 2001
From: Pablo de Lara <[email protected]>
Date: Fri, 20 Mar 2026 09:11:11 +0000
Subject: [PATCH] crc: fix x86 CRC dispatcher

rbx register was being clobbered by a function pointer
before being used to decide on the AVX512+VPCLMUL implementation
to be used, based on its content from CPUID instruction.

Signed-off-by: Pablo de Lara <[email protected]>
Reported-by: Maodi Ma <[email protected]>
---
 Release_notes.txt       |  5 +++++
 include/multibinary.asm | 27 ++++++++++++++-------------
 2 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/Release_notes.txt b/Release_notes.txt
index 96032dd..b7ca581 100644
--- a/Release_notes.txt
+++ b/Release_notes.txt
@@ -11,6 +11,11 @@ RELEASE NOTE CONTENTS
 
 2. FIXED ISSUES
 ---------------
+Unreleased
+
+* Fixed x86 CRC dispatcher (AVX512+VPLCMUL implementation could not be always 
reached
+  when the ISA was available).
+
 v2.32
 
 * Fixed RAID performance application for MacOS.
diff --git a/include/multibinary.asm b/include/multibinary.asm
index 6de280b..f6630a1 100644
--- a/include/multibinary.asm
+++ b/include/multibinary.asm
@@ -131,7 +131,6 @@
        section .text
        %1_dispatch_init:
                push    rsi
-               push    rax
                push    rbx
                push    rcx
                push    rdx
@@ -164,33 +163,35 @@
                ;; Test for AVX2
                xor     ecx, ecx
                mov     eax, 7
-               cpuid
+               cpuid ; ebx, ecx returned to be checked
                test    ebx, FLAG_CPUID7_EBX_AVX2
                je      _%1_init_done           ; No AVX2 possible
-               and     ecx, FLAGS_CPUID7_ECX_AVX2_G2
-               cmp     ecx, FLAGS_CPUID7_ECX_AVX2_G2
-               lea     rbx, [%5 WRT_OPT]
-               cmove   rsi, rbx
+               mov     eax, ecx
+               and     eax, FLAGS_CPUID7_ECX_AVX2_G2
+               cmp     eax, FLAGS_CPUID7_ECX_AVX2_G2
+               lea     rax, [%5 WRT_OPT]
+               cmove   rsi, rax
 
                ;; Test for AVX512
                and     edi, FLAG_XGETBV_EAX_ZMM_OPM
                cmp     edi, FLAG_XGETBV_EAX_ZMM_OPM
                jne     _%1_init_done     ; No AVX512 possible
-               and     ebx, FLAGS_CPUID7_EBX_AVX512_G1
-               cmp     ebx, FLAGS_CPUID7_EBX_AVX512_G1
+               mov     eax, ebx
+               and     eax, FLAGS_CPUID7_EBX_AVX512_G1
+               cmp     eax, FLAGS_CPUID7_EBX_AVX512_G1
                jne     _%1_init_done
 
-               and     ecx, FLAGS_CPUID7_ECX_AVX512_G2
-               cmp     ecx, FLAGS_CPUID7_ECX_AVX512_G2
-               lea     rbx, [%6 WRT_OPT] ; AVX512/10 opt
-               cmove   rsi, rbx
+               mov     eax, ecx
+               and     eax, FLAGS_CPUID7_ECX_AVX512_G2
+               cmp     eax, FLAGS_CPUID7_ECX_AVX512_G2
+               lea     rax, [%6 WRT_OPT] ; AVX512/10 opt
+               cmove   rsi, rax
 
        _%1_init_done:
                pop     rdi
                pop     rdx
                pop     rcx
                pop     rbx
-               pop     rax
                mov     [%1_dispatched], rsi
                pop     rsi
                ret
-- 
2.43.0

Reply via email to