diff options
author | Andy Polyakov <appro@openssl.org> | 2016-08-27 20:47:57 +0200 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2016-08-31 16:45:00 +0200 |
commit | 68b4a6e91f5acd42489bb9d1c580acc5ae457cad (patch) | |
tree | 02793b5a1bdc833ab883a302d1f3aa5980ec565b | |
parent | f879d5ff38d3c2283db968ea57c7a3207cc05889 (diff) | |
download | openssl-68b4a6e91f5acd42489bb9d1c580acc5ae457cad.tar.gz |
crypto/bn/*: x86[_64] division instruction doesn't handle constants, change constraint from 'g' to 'r'.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
-rw-r--r-- | crypto/bn/asm/x86_64-gcc.c | 2 | ||||
-rw-r--r-- | crypto/bn/bn_div.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/crypto/bn/asm/x86_64-gcc.c b/crypto/bn/asm/x86_64-gcc.c index d46109a8c2..4f19abe43f 100644 --- a/crypto/bn/asm/x86_64-gcc.c +++ b/crypto/bn/asm/x86_64-gcc.c @@ -203,7 +203,7 @@ BN_ULONG bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d) BN_ULONG ret, waste; asm("divq %4":"=a"(ret), "=d"(waste) - : "a"(l), "d"(h), "g"(d) + : "a"(l), "d"(h), "r"(d) : "cc"); return ret; diff --git a/crypto/bn/bn_div.c b/crypto/bn/bn_div.c index 0bec12b1c8..99abf35c41 100644 --- a/crypto/bn/bn_div.c +++ b/crypto/bn/bn_div.c @@ -105,7 +105,7 @@ int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, ({ asm volatile ( \ "divl %4" \ : "=a"(q), "=d"(rem) \ - : "a"(n1), "d"(n0), "g"(d0) \ + : "a"(n1), "d"(n0), "r"(d0) \ : "cc"); \ q; \ }) @@ -120,7 +120,7 @@ int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, ({ asm volatile ( \ "divq %4" \ : "=a"(q), "=d"(rem) \ - : "a"(n1), "d"(n0), "g"(d0) \ + : "a"(n1), "d"(n0), "r"(d0) \ : "cc"); \ q; \ }) |