• Heiko Carstens's avatar
    s390: select ARCH_SUPPORTS_INT128 · fbac266f
    Heiko Carstens authored
    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: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
    Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
    Signed-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
    fbac266f
Makefile 831 Bytes