• Show log

    Commit

  • Hash : eb14189c
    Author : Jonathan Wright
    Date : 2020-11-17T12:48:49

    Fix Neon SIMD build issues with Visual Studio
    
    - Use the _M_ARM and _M_ARM64 macros provided by Visual Studio for
      compile-time detection of Arm builds, since __arm__ and __aarch64__
      are only present in GNU-compatible compilers.
    - Neon/intrinsics: Use the _CountLeadingZeros() and
      _CountLeadingZeros64() intrinsics provided by Visual Studio, since
      __builtin_clz() and __builtin_clzl() are only present in
      GNU-compatible compilers.
    - Neon/intrinsics: Since Visual Studio does not support static vector
      initialization, replace static initialization of Neon vectors with the
      appropriate intrinsics.  Compared to the static initialization
      approach, this produces identical assembly code with both GCC and
      Clang.
    - Neon/intrinsics: Since Visual Studio does not support inline assembly
      code, provide alternative code paths for Visual Studio whenever inline
      assembly is used.
    - Build: Set FLOATTEST appropriately for AArch64 Visual Studio builds
      (Visual Studio does not emit fused multiply-add [FMA] instructions by
      default for such builds.)
    - Neon/intrinsics: Move temporary buffer allocation outside of nested
      loops.  Since Visual Studio configures Arm builds with a relatively
      small amount of stack memory, attempting to allocate those buffers
      within the inner loops caused a stack overflow.
    
    Closes #461
    Closes #475
    

  • 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