From 2a20b6d9731488bcb500e58a434375f59fb9adcc Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Sat, 27 Aug 2016 20:47:57 +0200 Subject: [PATCH] crypto/bn/*: x86[_64] division instruction doesn't handle constants, change constraint from 'g' to 'r'. Reviewed-by: Rich Salz Reviewed-by: Tim Hudson (cherry picked from commit 68b4a6e91f5acd42489bb9d1c580acc5ae457cad) --- crypto/bn/asm/x86_64-gcc.c | 2 +- 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 d77dc433d4..1729b479d4 100644 --- a/crypto/bn/asm/x86_64-gcc.c +++ b/crypto/bn/asm/x86_64-gcc.c @@ -194,7 +194,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 72e6ce3f74..bc37671cf1 100644 --- a/crypto/bn/bn_div.c +++ b/crypto/bn/bn_div.c @@ -155,7 +155,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; \ }) @@ -170,7 +170,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; \ }) -- 2.25.1