File 0001-Add-a-register-to-the-clobber-list-for-the-mul-instr.patch of Package openblas

From 13ee3335e4d4cf797ec5fe3226ab7fcb77d43654 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
Date: Tue, 12 Feb 2019 20:31:54 +0100
Subject: [PATCH] Add "a" register to the clobber list for the "mul"
 instruction

eax stores the low part of the mul instruction, so its value has to
be restored afterwards.
---
 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 4f538c9..fb56f6e 100644
--- a/common_x86.h
+++ b/common_x86.h
@@ -187,7 +187,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 62e138e..4d5d36d 100644
--- a/common_x86_64.h
+++ b/common_x86_64.h
@@ -210,7 +210,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;
 }
-- 
2.20.1

openSUSE Build Service is sponsored by