Make bn/asm/x86_64-gcc.c gcc4 savvy. +r is likely to be initially
authorAndy Polyakov <appro@openssl.org>
Sun, 3 Apr 2005 18:53:29 +0000 (18:53 +0000)
committerAndy Polyakov <appro@openssl.org>
Sun, 3 Apr 2005 18:53:29 +0000 (18:53 +0000)
introduced for a reason [like bug in initial gcc port], but proposed
=&r is treated correctly by senior 3.2, so we can assume it's safe now.
PR: 1031

crypto/bn/asm/x86_64-gcc.c

index d13ec5a468f0ce511a247e5f31b0a292055cb196..73783442515a9dfbd8beeb1444c8877822f90ee6 100644 (file)
@@ -186,7 +186,7 @@ BN_ULONG bn_add_words (BN_ULONG *rp, BN_ULONG *ap, BN_ULONG *bp,int n)
        "       leaq    1(%2),%2        \n"
        "       loop    1b              \n"
        "       sbbq    %0,%0           \n"
-               : "+a"(ret),"+c"(n),"+r"(i)
+               : "=&a"(ret),"+c"(n),"=&r"(i)
                : "r"(rp),"r"(ap),"r"(bp)
                : "cc"
        );
@@ -209,7 +209,7 @@ BN_ULONG bn_sub_words (BN_ULONG *rp, BN_ULONG *ap, BN_ULONG *bp,int n)
        "       leaq    1(%2),%2        \n"
        "       loop    1b              \n"
        "       sbbq    %0,%0           \n"
-               : "+a"(ret),"+c"(n),"+r"(i)
+               : "=&a"(ret),"+c"(n),"=&r"(i)
                : "r"(rp),"r"(ap),"r"(bp)
                : "cc"
        );