]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
s390/spinlock: Generate shorter code for arch_spin_unlock()
authorHeiko Carstens <hca@linux.ibm.com>
Tue, 26 Nov 2024 13:28:25 +0000 (14:28 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Thu, 28 Nov 2024 13:12:04 +0000 (14:12 +0100)
Use mvhhi instead of sth to write a zero to spinlocks. Compared to the
sth variant this avoids the load of zero to a register, and reduces
register pressure.

Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/include/asm/spinlock.h

index 9601e27d32910c7295b8e36ce2f4e3e78c606be5..f87dd0a84855da86815a4db2d7c6473fcb1947eb 100644 (file)
@@ -82,9 +82,9 @@ static inline void arch_spin_unlock(arch_spinlock_t *lp)
        kcsan_release();
        asm_inline volatile(
                ALTERNATIVE("nop", ".insn rre,0xb2fa0000,7,0", ALT_FACILITY(49)) /* NIAI 7 */
-               "       sth     %[zero],%[lock]\n"
-               : [lock] "=R" (((unsigned short *)&lp->lock)[1])
-               : [zero] "d" (0)
+               "       mvhhi   %[lock],0\n"
+               : [lock] "=Q" (((unsigned short *)&lp->lock)[1])
+               :
                : "memory");
 }