linux/arch/s390/lib
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
..
expoline s390/nospec: build expoline.o for modules_prepare target 2022-07-13 15:21:55 +02:00
delay.c s390/delay: sync comment within __delay() with reality 2022-08-30 22:00:33 +02:00
error-inject.c s390: enable HAVE_FUNCTION_ERROR_INJECTION 2020-07-27 10:33:28 +02:00
find.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Makefile s390: select ARCH_SUPPORTS_INT128 2023-05-15 14:12:14 +02:00
mem.S s390/lib: use SYM* macros instead of ENTRY(), etc. 2023-04-19 17:24:16 +02:00
probes.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
spinlock.c s390/alternatives: provide identical sized orginal/alternative sequences 2022-05-17 15:16:28 +02:00
string.c s390 updates for the 5.16 merge window 2021-11-06 14:48:06 -07:00
test_kprobes_asm.S kprobes: add testcases for s390 2021-10-04 09:49:37 +02:00
test_kprobes.c kprobes: add testcases for s390 2021-10-04 09:49:37 +02:00
test_kprobes.h kprobes: add testcases for s390 2021-10-04 09:49:37 +02:00
test_modules_helpers.c s390/module: test loading modules with a lot of relocations 2022-01-24 09:10:59 +01:00
test_modules.c s390/module: fix building test_modules_helpers.o with clang 2022-02-06 23:30:37 +01:00
test_modules.h s390/module: fix building test_modules_helpers.o with clang 2022-02-06 23:30:37 +01:00
test_unwind.c s390/kprobes: replace kretprobe with rethook 2023-01-22 18:42:35 +01:00
tishift.S s390: select ARCH_SUPPORTS_INT128 2023-05-15 14:12:14 +02:00
uaccess.c s390/uaccess: remove extra blank line 2023-04-04 18:27:24 +02:00
xor.c lib/xor: make xor prototypes more friendly to compiler vectorization 2022-02-11 20:39:39 +11:00