s390/fpu: convert __kernel_fpu_begin()/__kernel_fpu_end() to C
authorHeiko Carstens <hca@linux.ibm.com>
Sat, 3 Feb 2024 10:45:08 +0000 (11:45 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Fri, 16 Feb 2024 13:30:15 +0000 (14:30 +0100)
commit918c7cad66509c2170e38a088550fb4a525e0878
tree5a8cc80c61382b65d2499b8462e6c897602feb17
parent3a5866a001e83e1aa143fc0aeba0248247483962
s390/fpu: convert __kernel_fpu_begin()/__kernel_fpu_end() to C

Convert the rather large __kernel_fpu_begin()/__kernel_fpu_end() inline
assemblies to C. The C variant is much more readable, and this also allows
to get rid of the non-obvious usage of KERNEL_VXR_* constants within the
inline assemblies. E.g. "tmll %[m],6" correlates with the two bits set in
KERNEL_VXR_LOW. If the corresponding defines would be changed, the inline
assembles would break in a subtle way.

Therefore convert to C, use the proper defines, and allow the compiler to
generate code using the (hopefully) most efficient instructions.

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