Heiko Carstens fbac266f09 s390: select ARCH_SUPPORTS_INT128
s390 has instructions to support 128 bit arithmetics, e.g. a 64 bit
multiply instruction with a 128 bit result. Also 128 bit integer
artithmetics are already used in s390 specific architecture code (see
e.g. read_persistent_clock64()).

Therefore select ARCH_SUPPORTS_INT128.

However limit this to clang for now, since gcc generates inefficient code,
which may lead to stack overflows, when compiling
lib/crypto/curve25519-hacl64.c which depends on ARCH_SUPPORTS_INT128. The
gcc generated functions have 6kb stack frames, compared to only 1kb of the
code generated with clang.

If the kernel is compiled with -Os library calls for __ashlti3(),
__ashrti3(), and __lshrti3() may be generated. Similar to arm64
and riscv provide assembler implementations for these functions.

Acked-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
2023-05-15 14:12:14 +02:00
..
2023-05-05 12:56:55 -07:00
2023-05-05 12:56:55 -07:00
2023-05-14 09:17:32 -07:00
2023-05-05 12:56:55 -07:00
2023-05-04 12:25:05 -07:00
2023-05-05 12:56:55 -07:00
2023-05-05 12:56:55 -07:00
2023-05-05 12:56:55 -07:00
2023-05-05 12:56:55 -07:00
2023-05-05 12:56:55 -07:00
2023-05-05 12:56:55 -07:00
2023-05-05 12:56:55 -07:00
2023-05-15 14:12:14 +02:00
2023-05-05 12:56:55 -07:00
2023-05-05 12:56:55 -07:00
2023-05-05 12:56:55 -07:00