Skip to content

Commit 6982dba

Browse files
hcahcaVasily Gorbik
authored andcommitted
s390/alternatives: use insn format for new instructions
Use insn format with instruction format specifier instead of plain longs. This way it is also more obvious that code instead of data is generated. The generated code is identical. Signed-off-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
1 parent 4afeb67 commit 6982dba

3 files changed

Lines changed: 8 additions & 8 deletions

File tree

arch/s390/include/asm/spinlock.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ static inline void arch_spin_unlock(arch_spinlock_t *lp)
7878
{
7979
typecheck(int, lp->lock);
8080
asm_inline volatile(
81-
ALTERNATIVE("", ".long 0xb2fa0070", 49) /* NIAI 7 */
81+
ALTERNATIVE("", ".insn rre,0xb2fa0000,7,0", 49) /* NIAI 7 */
8282
" sth %1,%0\n"
8383
: "=R" (((unsigned short *) &lp->lock)[1])
8484
: "d" (0) : "cc", "memory");

arch/s390/kernel/entry.S

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,22 +121,22 @@ _LPP_OFFSET = __LC_LPP
121121
.endm
122122

123123
.macro BPOFF
124-
ALTERNATIVE "", ".long 0xb2e8c000", 82
124+
ALTERNATIVE "", ".insn rrf,0xb2e80000,0,0,12,0", 82
125125
.endm
126126

127127
.macro BPON
128-
ALTERNATIVE "", ".long 0xb2e8d000", 82
128+
ALTERNATIVE "", ".insn rrf,0xb2e80000,0,0,13,0", 82
129129
.endm
130130

131131
.macro BPENTER tif_ptr,tif_mask
132-
ALTERNATIVE "TSTMSK \tif_ptr,\tif_mask; jz .+8; .long 0xb2e8d000", \
132+
ALTERNATIVE "TSTMSK \tif_ptr,\tif_mask; jz .+8; .insn rrf,0xb2e80000,0,0,13,0", \
133133
"", 82
134134
.endm
135135

136136
.macro BPEXIT tif_ptr,tif_mask
137137
TSTMSK \tif_ptr,\tif_mask
138-
ALTERNATIVE "jz .+8; .long 0xb2e8c000", \
139-
"jnz .+8; .long 0xb2e8d000", 82
138+
ALTERNATIVE "jz .+8; .insn rrf,0xb2e80000,0,0,12,0", \
139+
"jnz .+8; .insn rrf,0xb2e80000,0,0,13,0", 82
140140
.endm
141141

142142
/*

arch/s390/lib/spinlock.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ static inline int arch_load_niai4(int *lock)
7575
int owner;
7676

7777
asm_inline volatile(
78-
ALTERNATIVE("", ".long 0xb2fa0040", 49) /* NIAI 4 */
78+
ALTERNATIVE("", ".insn rre,0xb2fa0000,4,0", 49) /* NIAI 4 */
7979
" l %0,%1\n"
8080
: "=d" (owner) : "Q" (*lock) : "memory");
8181
return owner;
@@ -86,7 +86,7 @@ static inline int arch_cmpxchg_niai8(int *lock, int old, int new)
8686
int expected = old;
8787

8888
asm_inline volatile(
89-
ALTERNATIVE("", ".long 0xb2fa0080", 49) /* NIAI 8 */
89+
ALTERNATIVE("", ".insn rre,0xb2fa0000,8,0", 49) /* NIAI 8 */
9090
" cs %0,%3,%1\n"
9191
: "=d" (old), "=Q" (*lock)
9292
: "0" (old), "d" (new), "Q" (*lock)

0 commit comments

Comments
 (0)