a55e92ab2d
Fix openblas error, leading to failing octave testsuite on i586 - Fix https://github.com/xianyi/OpenBLAS/issues/2014 Add 0001-Add-a-register-to-the-clobber-list-for-the-mul-instr.patch OBS-URL: https://build.opensuse.org/request/show/674767 OBS-URL: https://build.opensuse.org/package/show/science/openblas?expand=0&rev=74
43 lines
1.3 KiB
Diff
43 lines
1.3 KiB
Diff
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
|
|
|