ping
On Wed, Mar 6, 2019 at 9:06 PM Khem Raj <[email protected]> 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 <[email protected]> > --- > 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 [email protected] http://lists.busybox.net/mailman/listinfo/busybox
