On Tue, 4 Feb 2025 09:51:33 +0000 Janosch Frank <frankja@xxxxxxxxxxxxx> wrote: > Less need to count the operands makes the code easier to read. > > Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx> Reviewed-by: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx> > --- > > This one has been gathering dust for a while. > rfc->v1: Moved to Q constraint (thanks Heiko) > > --- > lib/s390x/css.h | 76 ++++++++++++++++++++++++------------------------- > 1 file changed, 38 insertions(+), 38 deletions(-) > > diff --git a/lib/s390x/css.h b/lib/s390x/css.h > index 504b3f14..42c5830c 100644 > --- a/lib/s390x/css.h > +++ b/lib/s390x/css.h > @@ -135,11 +135,11 @@ static inline int ssch(unsigned long schid, struct orb *addr) > int cc; > > asm volatile( > - " ssch 0(%2)\n" > - " ipm %0\n" > - " srl %0,28\n" > - : "=d" (cc) > - : "d" (reg1), "a" (addr), "m" (*addr) > + " ssch %[addr]\n" > + " ipm %[cc]\n" > + " srl %[cc],28\n" > + : [cc] "=d" (cc) > + : "d" (reg1), [addr] "Q" (*addr) > : "cc", "memory"); > return cc; > } > @@ -152,11 +152,11 @@ static inline int stsch(unsigned long schid, struct schib *addr) > > asm volatile( > " tmll %[bogus_cc],3\n" > - " stsch 0(%3)\n" > - " ipm %0\n" > - " srl %0,28" > - : "=d" (cc), "=m" (*addr) > - : "d" (reg1), "a" (addr), [bogus_cc] "d" (bogus_cc) > + " stsch %[addr]\n" > + " ipm %[cc]\n" > + " srl %[cc],28" > + : [cc] "=d" (cc), [addr] "=Q" (*addr) > + : "d" (reg1), [bogus_cc] "d" (bogus_cc) > : "cc"); > return cc; > } > @@ -167,11 +167,11 @@ static inline int msch(unsigned long schid, struct schib *addr) > int cc; > > asm volatile( > - " msch 0(%3)\n" > - " ipm %0\n" > - " srl %0,28" > - : "=d" (cc) > - : "d" (reg1), "m" (*addr), "a" (addr) > + " msch %[addr]\n" > + " ipm %[cc]\n" > + " srl %[cc],28" > + : [cc] "=d" (cc) > + : "d" (reg1), [addr] "Q" (*addr) > : "cc"); > return cc; > } > @@ -184,11 +184,11 @@ static inline int tsch(unsigned long schid, struct irb *addr) > > asm volatile( > " tmll %[bogus_cc],3\n" > - " tsch 0(%3)\n" > - " ipm %0\n" > - " srl %0,28" > - : "=d" (cc), "=m" (*addr) > - : "d" (reg1), "a" (addr), [bogus_cc] "d" (bogus_cc) > + " tsch %[addr]\n" > + " ipm %[cc]\n" > + " srl %[cc],28" > + : [cc] "=d" (cc), [addr] "=Q" (*addr) > + : "d" (reg1), [bogus_cc] "d" (bogus_cc) > : "cc"); > return cc; > } > @@ -200,9 +200,9 @@ static inline int hsch(unsigned long schid) > > asm volatile( > " hsch\n" > - " ipm %0\n" > - " srl %0,28" > - : "=d" (cc) > + " ipm %[cc]\n" > + " srl %[cc],28" > + : [cc] "=d" (cc) > : "d" (reg1) > : "cc"); > return cc; > @@ -215,9 +215,9 @@ static inline int xsch(unsigned long schid) > > asm volatile( > " xsch\n" > - " ipm %0\n" > - " srl %0,28" > - : "=d" (cc) > + " ipm %[cc]\n" > + " srl %cc,28" > + : [cc] "=d" (cc) > : "d" (reg1) > : "cc"); > return cc; > @@ -230,9 +230,9 @@ static inline int csch(unsigned long schid) > > asm volatile( > " csch\n" > - " ipm %0\n" > - " srl %0,28" > - : "=d" (cc) > + " ipm %[cc]\n" > + " srl %[cc],28" > + : [cc] "=d" (cc) > : "d" (reg1) > : "cc"); > return cc; > @@ -245,9 +245,9 @@ static inline int rsch(unsigned long schid) > > asm volatile( > " rsch\n" > - " ipm %0\n" > - " srl %0,28" > - : "=d" (cc) > + " ipm %[cc]\n" > + " srl %[cc],28" > + : [cc] "=d" (cc) > : "d" (reg1) > : "cc"); > return cc; > @@ -262,9 +262,9 @@ static inline int rchp(unsigned long chpid) > asm volatile( > " tmll %[bogus_cc],3\n" > " rchp\n" > - " ipm %0\n" > - " srl %0,28" > - : "=d" (cc) > + " ipm %[cc]\n" > + " srl %[cc],28" > + : [cc] "=d" (cc) > : "d" (reg1), [bogus_cc] "d" (bogus_cc) > : "cc"); > return cc; > @@ -369,9 +369,9 @@ static inline int _chsc(void *p) > int cc; > > asm volatile(" .insn rre,0xb25f0000,%2,0\n" > - " ipm %0\n" > - " srl %0,28\n" > - : "=d" (cc), "=m" (p) > + " ipm %[cc]\n" > + " srl %[cc],28\n" > + : [cc] "=d" (cc), "=m" (p) > : "d" (p), "m" (p) > : "cc"); >