networking: cc is not a register
authorKhem Raj <raj.khem@gmail.com>
Thu, 7 Mar 2019 05:06:10 +0000 (21:06 -0800)
committerDenys Vlasenko <vda.linux@googlemail.com>
Fri, 17 May 2019 20:56:47 +0000 (22:56 +0200)
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>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
networking/tls_pstm_montgomery_reduce.c
networking/tls_pstm_mul_comba.c
networking/tls_pstm_sqr_comba.c

index d46e2aa2b1ad70925a99939ae671bba51d7b81d5..20f9c26d5fced042f467e3e9427aba639dbafbad 100644 (file)
@@ -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__ */
 
 
index ac4fcc3efc8d06a59064b0d3e9522bc834254507..af50358e536131a71456e4677fb525d5d42237f2 100644 (file)
@@ -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)
index 8604132d616d65de593bbf357a6f56875ee1fb7f..a4d421b89ff6b8c52d7a66f56bb1af5ada3efb76 100644 (file)
@@ -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(                              \