File Add-a-register-to-the-clobber-list-for-the-mul-instruction.patch of Package openblas
From: Egbert Eich <eich@suse.com>
Date: Tue Feb 19 15:32:07 2019 +0100
Subject: Add "a" register to the clobber list for the "mul" instruction
Patch-mainline: Upstream
Git-commit: fc02918f2ef54d3b7958441e5777319808829acf
References:
eax stores the low part of the mul instruction, so its value has to
be restored afterwards.
Signed-off-by: Egbert Eich <eich@suse.com>
---
common_x86.h | 2 +-
common_x86_64.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/common_x86.h b/common_x86.h
index 4363fb2..c9cd9fa 100644
--- a/common_x86.h
+++ b/common_x86.h
@@ -181,7 +181,7 @@ static __inline int blas_quickdivide(unsigned int x, unsigned int y){
y = blas_quick_divide_table[y];
- __asm__ __volatile__ ("mull %0" :"=d" (result) :"a"(x), "0" (y));
+ __asm__ __volatile__ ("mull %0" :"=d" (result), "+a"(x) : "0" (y));
return result;
#endif
diff --git a/common_x86_64.h b/common_x86_64.h
index bee88d3..9a7d0de 100644
--- a/common_x86_64.h
+++ b/common_x86_64.h
@@ -198,7 +198,7 @@ static __inline int blas_quickdivide(unsigned int x, unsigned int y){
y = blas_quick_divide_table[y];
- __asm__ __volatile__ ("mull %0" :"=d" (result) :"a"(x), "0" (y));
+ __asm__ __volatile__ ("mull %0" :"=d" (result), "+a"(x) : "0" (y));
return result;
}