openblas/0001-Add-a-register-to-the-clobber-list-for-the-mul-instr.patch
Stefan Brüns a55e92ab2d Accepting request 674767 from home:StefanBruens:branches:science
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
2019-02-18 17:19:19 +00:00

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