Skip to content
Snippets Groups Projects
Select Git revision
  • f595ec964daf7f99668039d7303ddedd09a75142
  • vme-testing default
  • ci-test
  • master
  • remoteproc
  • am625-sk-ov5640
  • pcal6534-upstreaming
  • lps22df-upstreaming
  • msc-upstreaming
  • imx8mp
  • iio/noa1305
  • vme-next
  • vme-next-4.14-rc4
  • v4.14-rc4
  • v4.14-rc3
  • v4.14-rc2
  • v4.14-rc1
  • v4.13
  • vme-next-4.13-rc7
  • v4.13-rc7
  • v4.13-rc6
  • v4.13-rc5
  • v4.13-rc4
  • v4.13-rc3
  • v4.13-rc2
  • v4.13-rc1
  • v4.12
  • v4.12-rc7
  • v4.12-rc6
  • v4.12-rc5
  • v4.12-rc4
  • v4.12-rc3
32 results

div64.c

  • Jeremy Fitzhardinge's avatar
    f595ec96
    common implementation of iterative div/mod · f595ec96
    Jeremy Fitzhardinge authored
    
    We have a few instances of the open-coded iterative div/mod loop, used
    when we don't expcet the dividend to be much bigger than the divisor.
    Unfortunately modern gcc's have the tendency to strength "reduce" this
    into a full mod operation, which isn't necessarily any faster, and
    even if it were, doesn't exist if gcc implements it in libgcc.
    
    The workaround is to put a dummy asm statement in the loop to prevent
    gcc from performing the transformation.
    
    This patch creates a single implementation of this loop, and uses it
    to replace the open-coded versions I know about.
    
    Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: john stultz <johnstul@us.ibm.com>
    Cc: Segher Boessenkool <segher@kernel.crashing.org>
    Cc: Christian Kujau <lists@nerdbynature.de>
    Cc: Robert Hancock <hancockr@shaw.ca>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    f595ec96
    History
    common implementation of iterative div/mod
    Jeremy Fitzhardinge authored
    
    We have a few instances of the open-coded iterative div/mod loop, used
    when we don't expcet the dividend to be much bigger than the divisor.
    Unfortunately modern gcc's have the tendency to strength "reduce" this
    into a full mod operation, which isn't necessarily any faster, and
    even if it were, doesn't exist if gcc implements it in libgcc.
    
    The workaround is to put a dummy asm statement in the loop to prevent
    gcc from performing the transformation.
    
    This patch creates a single implementation of this loop, and uses it
    to replace the open-coded versions I know about.
    
    Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: john stultz <johnstul@us.ibm.com>
    Cc: Segher Boessenkool <segher@kernel.crashing.org>
    Cc: Christian Kujau <lists@nerdbynature.de>
    Cc: Robert Hancock <hancockr@shaw.ca>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>