10 Apr, 2017

1 commit


13 Sep, 2016

2 commits

  • This commits adds support for runtime detection of SIMD instructions. The idea is that you would build once with all supported SIMD functions and the same binaries could run on different machines with varying support for SIMD. At runtime gf-complete will select the right functions based on the processor.
    
    gf_cpu.c has the logic to detect SIMD instructions. On Intel processors this is done through cpuid. For ARM on linux we use getauxv.
    
    The logic in gf_w*.c has been changed to check for runtime SIMD support and fallback to generic code.
    
    Also a new test has been added. It compares the functions selected by gf_init when we enable/disable SIMD support through build flags, with runtime enabling/disabling. The test checks if the results are identical.
    Bassam Tabbara
     
  • There is currently no way to figure out which functions were selected
    during gf_init and as a result of SIMD options. This is not even possible
    in gdb since most functions are static.
    
    This commit adds a new macro SET_FUNCTION that records the name of the
    function selected during init inside the gf_internal structure. This macro
    only works when DEBUG_FUNCTIONS is defined during compile. Otherwise the
    code works exactly as it did before this change.
    
    The names of selected functions will be used during testing of SIMD
    runtime detection.
    
    All calls such as:
    
    gf->multiply.w32 = gf_w16_shift_multiply;
    
    need to be replaced with the following:
    
    SET_FUNCTION(gf,multiply,w32,gf_w16_shift_multiply)
    
    Also added a new flag to tools/gf_methods that will print the names of
    functions selected during gf_init.
    Bassam Tabbara
     

02 Sep, 2015

1 commit

  • * (1 << w) are changed into ((uint32_t)1 << w)
    * int are changed into uint32_t
    
    gf.c: gf_composite_get_default_poly:
    
       a larger unsigned were assigned to unsigned integers in which case
       the type of the assigned variable is changed to be the same as the
       value assigned to it.
    
    gf_w16.c: GF_MULTBY_TWO
    
       setting the parameter to a variable instead of passing the expression
       resolves the warning for some reason.
    
    Signed-off-by: Loic Dachary <loic@dachary.org>
    Loic Dachary
     

17 Jun, 2015

1 commit

  • Fix for Coverity issue:
    
    CID 1297812 (#1 of 1): Constant variable guards dead code (DEADCODE)
     dead_error_begin: Execution cannot reach this statement: fprintf(stderr,
      "Code conta....
     Local variable no_default_flag is assigned only once, to a constant
      value, making it effectively constant throughout its scope. If this
      is not the intent, examine the logic to see if there is a missing
      assignment that would make no_default_flag not remain constant.
    
    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
    Danny Al-Gaaf
     

09 Oct, 2014

1 commit


14 May, 2014

1 commit


10 Apr, 2014

1 commit


31 Mar, 2014

1 commit


30 Mar, 2014

1 commit

  • Acknowledge that gf_w128_split_4_128_multiply_region and
    gf_w128_split_4_128_sse_multiply_region are only used when the
    INTEL_SSE4 flag is present, even though they only need INTEL_SSSE3
    
    It suppresses a compilation warning complaining about them not being
    used if INTEL_SSE4 is absent and INTEL_SSSE3 is present.
    
    Signed-off-by: Loic Dachary <loic@dachary.org>
    Loic Dachary
     

29 Mar, 2014

1 commit


28 Mar, 2014

1 commit


06 Mar, 2014

5 commits


01 Jan, 2014

1 commit


31 Dec, 2013

1 commit


30 Dec, 2013

3 commits


10 Dec, 2013

1 commit


04 Dec, 2013

1 commit


08 Nov, 2013

1 commit


09 Oct, 2013

2 commits


08 Feb, 2013

2 commits


06 Feb, 2013

1 commit


08 Dec, 2012

1 commit