]> git.ipfire.org Git - thirdparty/linux.git/commit
s390/current: Implement current with inline assembly
authorHeiko Carstens <hca@linux.ibm.com>
Mon, 10 Mar 2025 09:33:39 +0000 (10:33 +0100)
committerVasily Gorbik <gor@linux.ibm.com>
Tue, 18 Mar 2025 16:13:04 +0000 (17:13 +0100)
commit65c07e91cc31700ca8484d3bcd96e49b0053b57b
tree28273f5fef4d096ef54d6ea312c635603f7d5256
parent430693c836c3828c72db2e1b1a7d2ddc97509cb8
s390/current: Implement current with inline assembly

Implement current with an inline assembly, which makes use of the
ALTERNATIVE macro, to read current from lowcore. Provide an alternative
instruction with a different offset in case lowcore is relocated.

This replaces sequences of two instructions with one instruction.

Before:
 100076:       a5 1e 00 00             llilh   %r1,0
 10007a:       e3 40 13 40 00 04       lg      %r4,832(%r1)

After:
 100076:       e3 10 03 40 00 04       lg      %r1,832

Kernel image size change:
add/remove: 3/17 grow/shrink: 166/2204 up/down: 7122/-24594 (-17472)

Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/include/asm/current.h