• Show log

    Commit

  • Hash : 0081c2de
    Author : DRC
    Date : 2021-07-07T10:12:46

    Neon/AArch32: Fix build if 'soft' float ABI used
    
    Arm compilers have three floating point ABI options:
    
    'soft' compiles floating point operations as function calls into a
    software floating point library, which emulates floating point
    operations using integer operations.  Floating point function arguments
    are passed using integer registers.
    
    'softfp' also compiles floating point operations as function calls into
    a floating point library and passes floating point function arguments
    using integer registers, but the floating point library functions can
    use FPU instructions if the CPU supports them.
    
    'hard' compiles floating point operations into inline FPU instructions,
    similarly to x86 and other architectures, and passes floating point
    function arguments using FPU registers.
    
    Not all AArch32 CPUs have FPUs or support Neon instructions, so on Linux
    and Android platforms, the AArch32 SIMD dispatcher in libjpeg-turbo only
    enables the Neon SIMD extensions at run time if /proc/cpuinfo indicates
    that the CPU supports Neon instructions or if Neon instructions are
    explicitly enabled (e.g. by passing -mfpu=neon to the compiler.)  In
    order to support all AArch32 CPUs using the same code base, i.e. to
    support run-time FPU and Neon auto-detection, it is necessary to compile
    the scalar C source code using -mfloat-abi=soft.  However, the 'soft'
    floating point ABI cannot be used when compiling Neon intrinsics, so the
    intrinsics implementation of the Neon SIMD extensions must be compiled
    using -mfloat-abi=softfp if the scalar C source code is compiled using
    -mfloat-abi=soft.
    
    This commit modifies the build system so that it detects whether
    -mfloat-abi=softfp must be explicitly added to the compiler flags when
    building the intrinsics implementation of the Neon SIMD extensions.
    This will be necessary if the build is using the 'soft' floating
    point ABI along with run-time auto-detection of Neon instructions.
    
    Fixes #523
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/libjpeg-turbo.git
    Git SSH git@git.kmx.io:kc3-lang/libjpeg-turbo.git
    Public access ? public
    Description

    Fork of libjpeg with SIMD

    Users
    thodg_m kc3_lang_org thodg_w www_kmx_io thodg_l thodg
    Tags