On Jul 21 2023, Michael Schmitz wrote:
static inline bool clear_bit_unlock_is_negative_byte(unsigned int nr, volatile unsigned long *p) { unsigned char *cp = (unsigned char *) p; char result; char mask = 1 << nr; /* nr guaranteed to be < 7 */ __asm__ __volatile__ ("eori.b %1, %2; smi %0" : "=d" (result) : "i" (mask), "o" (*(cp+3))
That should use "id" as constraint, so that the compiler can share the constant with other insns. Also, the third operand is modified, so it needs to be marked as in/out. -- Andreas Schwab, schwab@xxxxxxxxxxxxxx GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different."