[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    Re: [PATCH] networking: cc is not a register
From:       Denys Vlasenko <vda.linux () googlemail ! com>
Date:       2019-05-17 20:57:35
Message-ID: CAK1hOcMqhkjgu44n7WNGF6hE5=MujBdRnexySPmNdeds74m-GQ () mail ! gmail ! com
[Download RAW message or body]

Applied, thanks!

On Thu, Mar 7, 2019 at 6:06 AM Khem Raj <raj.khem@gmail.com> wrote:
> 
> gcc accepts
> 
> __asm__ ( "" : : : "%cc");
> 
> but cc is not a real register and clang does not like it.
> 
> networking/tls_pstm_montgomery_reduce.c:385:4: error: unknown register name '%cc' \
> in asm |                         INNERMUL;
> > ^
> 
> The % syntax nominally goes before a register, in this case cc,
> like "memory" isn't a true register it's just a way of specifying that
> the condition code registers for the target are clobbered
> 
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
> networking/tls_pstm_montgomery_reduce.c | 12 ++++++------
> networking/tls_pstm_mul_comba.c         |  4 ++--
> networking/tls_pstm_sqr_comba.c         | 22 +++++++++++-----------
> 3 files changed, 19 insertions(+), 19 deletions(-)
> 
> diff --git a/networking/tls_pstm_montgomery_reduce.c \
> b/networking/tls_pstm_montgomery_reduce.c index d46e2aa2b..20f9c26d5 100644
> --- a/networking/tls_pstm_montgomery_reduce.c
> +++ b/networking/tls_pstm_montgomery_reduce.c
> @@ -73,7 +73,7 @@ asm(                                                      \
> "movl %%edx,%1 \n\t"                                   \
> > "=g"(_c[LO]), "=r"(cy)                                   \
> > "0"(_c[LO]), "1"(cy), "g"(mu), "g"(*tmpm++)              \
> -: "%eax", "%edx", "%cc")
> +: "%eax", "%edx", "cc")
> 
> #define PROPCARRY                           \
> asm(                                        \
> @@ -82,7 +82,7 @@ asm(                                        \
> "movzbl %%al,%1 \n\t"                    \
> > "=g"(_c[LO]), "=r"(cy)                     \
> > "0"(_c[LO]), "1"(cy)                       \
> -: "%eax", "%cc")
> +: "%eax", "cc")
> 
> /******************************************************************************/
> #elif defined(PSTM_X86_64)
> @@ -235,7 +235,7 @@ asm(                                \
> " STR    r0,%1            \n\t" \
> > "=r"(cy),"=m"(_c[0])\
> > "0"(cy),"r"(mu),"r"(*tmpm++),"m"(_c[0])\
> -       :"r0","%cc");
> +       :"r0","cc");
> #define PROPCARRY                  \
> asm(                               \
> " LDR   r0,%1            \n\t" \
> @@ -246,7 +246,7 @@ asm(                               \
> " MOVCC %0,#0            \n\t" \
> > "=r"(cy),"=m"(_c[0])\
> > "0"(cy),"m"(_c[0])\
> -       :"r0","%cc");
> +       :"r0","cc");
> #else /* Non-Thumb2 code */
> //#pragma message ("Using 32 bit ARM Assembly Optimizations")
> #define INNERMUL                    \
> @@ -259,7 +259,7 @@ asm(                                \
> " STR    r0,%1            \n\t" \
> > "=r"(cy),"=m"(_c[0])\
> > "0"(cy),"r"(mu),"r"(*tmpm++),"m"(_c[0])\
> -       :"r0","%cc");
> +       :"r0","cc");
> #define PROPCARRY                  \
> asm(                               \
> " LDR   r0,%1            \n\t" \
> @@ -269,7 +269,7 @@ asm(                               \
> " MOVCC %0,#0            \n\t" \
> > "=r"(cy),"=m"(_c[0])\
> > "0"(cy),"m"(_c[0])\
> -       :"r0","%cc");
> +       :"r0","cc");
> #endif /* __thumb2__ */
> 
> 
> diff --git a/networking/tls_pstm_mul_comba.c b/networking/tls_pstm_mul_comba.c
> index ac4fcc3ef..af50358e5 100644
> --- a/networking/tls_pstm_mul_comba.c
> +++ b/networking/tls_pstm_mul_comba.c
> @@ -85,7 +85,7 @@ asm(                                                      \
> "addl  %%eax,%0     \n\t"                            \
> "adcl  %%edx,%1     \n\t"                            \
> "adcl  $0,%2        \n\t"                            \
> -        :"=rm"(c0), "=rm"(c1), "=rm"(c2): "0"(c0), "1"(c1), "2"(c2), "m"(i), \
> "m"(j)  :"%eax","%edx","%cc"); +        :"=rm"(c0), "=rm"(c1), "=rm"(c2): "0"(c0), \
>                 "1"(c1), "2"(c2), "m"(i), "m"(j)  :"%eax","%edx","cc");
> //bbox: ^^^ replaced "=r" with "=rm": %ebx is not available on shared build
> 
> /******************************************************************************/
> @@ -155,7 +155,7 @@ asm(                                                          \
> "  ADDS   %0,%0,r0              \n\t"                     \
> "  ADCS   %1,%1,r1              \n\t"                     \
> "  ADC    %2,%2,#0              \n\t"                     \
> -       :"=r"(c0), "=r"(c1), "=r"(c2) : "0"(c0), "1"(c1), "2"(c2), "r"(i), "r"(j) : \
> "r0", "r1", "%cc"); +       :"=r"(c0), "=r"(c1), "=r"(c2) : "0"(c0), "1"(c1), \
> "2"(c2), "r"(i), "r"(j) : "r0", "r1", "cc"); 
> /******************************************************************************/
> #elif defined(PSTM_MIPS)
> diff --git a/networking/tls_pstm_sqr_comba.c b/networking/tls_pstm_sqr_comba.c
> index 8604132d6..a4d421b89 100644
> --- a/networking/tls_pstm_sqr_comba.c
> +++ b/networking/tls_pstm_sqr_comba.c
> @@ -78,7 +78,7 @@ asm(                                            \
> "addl  %%eax,%0     \n\t"                            \
> "adcl  %%edx,%1     \n\t"                            \
> "adcl  $0,%2        \n\t"                            \
> -        :"=rm"(c0), "=rm"(c1), "=rm"(c2): "0"(c0), "1"(c1), "2"(c2), "m"(i) \
> :"%eax","%edx","%cc"); +        :"=rm"(c0), "=rm"(c1), "=rm"(c2): "0"(c0), "1"(c1), \
>                 "2"(c2), "m"(i) :"%eax","%edx","cc");
> //bbox: ^^^ replaced "=r" with "=rm": %ebx is not available on shared build
> 
> #define SQRADD2(i, j)                                     \
> @@ -91,7 +91,7 @@ asm(                                            \
> "addl  %%eax,%0     \n\t"                            \
> "adcl  %%edx,%1     \n\t"                            \
> "adcl  $0,%2        \n\t"                            \
> -        :"=rm"(c0), "=rm"(c1), "=rm"(c2): "0"(c0), "1"(c1), "2"(c2), "m"(i), \
> "m"(j)  :"%eax","%edx","%cc"); +        :"=rm"(c0), "=rm"(c1), "=rm"(c2): "0"(c0), \
>                 "1"(c1), "2"(c2), "m"(i), "m"(j)  :"%eax","%edx","cc");
> //bbox: ^^^ replaced "=r" with "=rm": %ebx is not available on shared build
> 
> #define SQRADDSC(i, j)                                    \
> @@ -101,7 +101,7 @@ asm(                                                     \
> "movl  %%eax,%0     \n\t"                            \
> "movl  %%edx,%1     \n\t"                            \
> "xorl  %2,%2        \n\t"                            \
> -        :"=r"(sc0), "=r"(sc1), "=r"(sc2): "0"(sc0), "1"(sc1), "2"(sc2), "g"(i), \
> "g"(j) :"%eax","%edx","%cc"); +        :"=r"(sc0), "=r"(sc1), "=r"(sc2): "0"(sc0), \
> "1"(sc1), "2"(sc2), "g"(i), "g"(j) :"%eax","%edx","cc"); 
> #define SQRADDAC(i, j)                                    \
> asm(                                                     \
> @@ -110,7 +110,7 @@ asm(                                                     \
> "addl  %%eax,%0     \n\t"                            \
> "adcl  %%edx,%1     \n\t"                            \
> "adcl  $0,%2        \n\t"                            \
> -        :"=r"(sc0), "=r"(sc1), "=r"(sc2): "0"(sc0), "1"(sc1), "2"(sc2), "g"(i), \
> "g"(j) :"%eax","%edx","%cc"); +        :"=r"(sc0), "=r"(sc1), "=r"(sc2): "0"(sc0), \
> "1"(sc1), "2"(sc2), "g"(i), "g"(j) :"%eax","%edx","cc"); 
> #define SQRADDDB                                          \
> asm(                                                     \
> @@ -120,7 +120,7 @@ asm(                                                     \
> "addl %6,%0         \n\t"                            \
> "adcl %7,%1         \n\t"                            \
> "adcl %8,%2         \n\t"                            \
> -        :"=r"(c0), "=r"(c1), "=r"(c2) : "0"(c0), "1"(c1), "2"(c2), "r"(sc0), \
> "r"(sc1), "r"(sc2) : "%cc"); +        :"=r"(c0), "=r"(c1), "=r"(c2) : "0"(c0), \
> "1"(c1), "2"(c2), "r"(sc0), "r"(sc1), "r"(sc2) : "cc"); 
> /******************************************************************************/
> #elif defined(PSTM_X86_64)
> @@ -223,7 +223,7 @@ asm(                                                            \
> \ "  ADDS   %0,%0,r0                 \n\t"                         \
> "  ADCS   %1,%1,r1                 \n\t"                         \
> "  ADC    %2,%2,#0                 \n\t"                         \
> -:"=r"(c0), "=r"(c1), "=r"(c2) : "0"(c0), "1"(c1), "2"(c2), "r"(i) : "r0", "r1", \
> "%cc"); +:"=r"(c0), "=r"(c1), "=r"(c2) : "0"(c0), "1"(c1), "2"(c2), "r"(i) : "r0", \
> "r1", "cc"); 
> /* for squaring some of the terms are doubled... */
> #define SQRADD2(i, j)                                            \
> @@ -235,13 +235,13 @@ asm(                                                          \
> \ "  ADDS   %0,%0,r0                 \n\t"                         \
> "  ADCS   %1,%1,r1                 \n\t"                         \
> "  ADC    %2,%2,#0                 \n\t"                         \
> -:"=r"(c0), "=r"(c1), "=r"(c2) : "0"(c0), "1"(c1), "2"(c2), "r"(i), "r"(j) : "r0", \
> "r1", "%cc"); +:"=r"(c0), "=r"(c1), "=r"(c2) : "0"(c0), "1"(c1), "2"(c2), "r"(i), \
> "r"(j) : "r0", "r1", "cc"); 
> #define SQRADDSC(i, j)                                           \
> asm(                                                             \
> "  UMULL  %0,%1,%6,%7              \n\t"                         \
> "  SUB    %2,%2,%2                 \n\t"                         \
> -:"=r"(sc0), "=r"(sc1), "=r"(sc2) : "0"(sc0), "1"(sc1), "2"(sc2), "r"(i), "r"(j) : \
> "%cc"); +:"=r"(sc0), "=r"(sc1), "=r"(sc2) : "0"(sc0), "1"(sc1), "2"(sc2), "r"(i), \
> "r"(j) : "cc"); 
> #define SQRADDAC(i, j)                                           \
> asm(                                                             \
> @@ -249,7 +249,7 @@ asm(                                                            \
> \ "  ADDS   %0,%0,r0                 \n\t"                         \
> "  ADCS   %1,%1,r1                 \n\t"                         \
> "  ADC    %2,%2,#0                 \n\t"                         \
> -:"=r"(sc0), "=r"(sc1), "=r"(sc2) : "0"(sc0), "1"(sc1), "2"(sc2), "r"(i), "r"(j) : \
> "r0", "r1", "%cc"); +:"=r"(sc0), "=r"(sc1), "=r"(sc2) : "0"(sc0), "1"(sc1), \
> "2"(sc2), "r"(i), "r"(j) : "r0", "r1", "cc"); 
> #define SQRADDDB                                                 \
> asm(                                                             \
> @@ -259,7 +259,7 @@ asm(                                                            \
> \ "  ADDS  %0,%0,%3                     \n\t"                      \
> "  ADCS  %1,%1,%4                     \n\t"                      \
> "  ADC   %2,%2,%5                     \n\t"                      \
> -:"=r"(c0), "=r"(c1), "=r"(c2) : "r"(sc0), "r"(sc1), "r"(sc2), "0"(c0), "1"(c1), \
> "2"(c2) : "%cc"); +:"=r"(c0), "=r"(c1), "=r"(c2) : "r"(sc0), "r"(sc1), "r"(sc2), \
> "0"(c0), "1"(c1), "2"(c2) : "cc"); 
> /******************************************************************************/
> #elif defined(PSTM_MIPS)
> @@ -330,7 +330,7 @@ asm(                               \
> " mflo   %0             \n\t"  \
> " mfhi   %1             \n\t"  \
> " xor    %2,%2,%2       \n\t"  \
> -       :"=r"(sc0), "=r"(sc1), "=r"(sc2):"0"(sc0), "1"(sc1), "2"(sc2), \
> "r"(i),"r"(j) : "%cc"); +       :"=r"(sc0), "=r"(sc1), "=r"(sc2):"0"(sc0), \
> "1"(sc1), "2"(sc2), "r"(i),"r"(j) : "cc"); 
> #define SQRADDAC(i, j)            \
> asm(                              \
> --
> 2.21.0
> 
> _______________________________________________
> busybox mailing list
> busybox@busybox.net
> http://lists.busybox.net/mailman/listinfo/busybox
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic