Files
kernel_xiaomi_sm8250/include/linux
Jeremy Fitzhardinge f595ec964d common implementation of iterative div/mod
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: Jeremy 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: Ingo Molnar <mingo@elte.hu>
2008-06-12 10:47:56 +02:00
..
2008-05-20 14:14:15 -07:00
2008-04-29 08:06:00 -07:00
2008-04-28 06:28:37 -04:00
2008-04-29 08:11:16 -07:00
2008-06-06 11:29:10 -07:00
2008-04-29 12:36:54 -07:00
2008-04-22 15:16:32 -05:00
2008-04-29 08:06:01 -07:00
2008-05-01 08:03:59 -07:00
2008-04-30 08:29:52 -07:00
2008-04-25 13:26:55 +01:00
2008-04-25 13:26:55 +01:00
2008-04-25 13:26:55 +01:00
2008-04-28 08:58:30 -07:00
2008-05-07 09:48:23 +02:00
2008-04-28 08:58:35 -07:00
2008-05-16 17:22:26 -04:00
2008-05-01 13:08:16 -04:00
2008-06-06 11:29:11 -07:00
2008-05-13 08:02:26 -07:00
2008-05-24 09:56:13 -07:00
2008-05-20 16:44:43 +02:00
2008-05-20 16:44:43 +02:00
2008-04-22 11:34:59 +02:00
2008-04-29 23:11:38 +02:00
2008-05-18 20:49:41 +02:00
2008-05-14 23:06:16 +02:00
2008-04-29 08:06:25 -07:00
2008-04-29 08:06:03 -07:00
2008-04-29 08:06:02 -07:00
2008-05-05 16:47:14 +10:00
2008-04-29 08:06:15 -07:00
2008-05-01 08:03:58 -07:00
2008-05-14 19:11:14 -07:00
2008-04-29 08:06:01 -07:00
2008-04-29 08:06:17 -07:00
2008-05-24 09:56:09 -07:00
2008-05-26 16:08:40 +02:00
2008-06-06 11:29:12 -07:00
2008-04-28 08:58:29 -07:00
2008-04-29 08:06:02 -07:00
2008-04-29 08:06:02 -07:00
2008-05-06 12:01:41 -04:00
2008-04-30 08:29:51 -07:00
2008-04-29 08:05:59 -07:00
2008-04-25 00:25:08 +02:00
2008-04-28 08:58:32 -07:00
2008-06-06 11:29:14 -07:00
2008-04-28 08:58:20 -07:00
2008-04-28 08:58:29 -07:00
2008-05-04 17:07:03 -07:00
2008-05-21 17:40:05 -07:00
2008-04-29 02:48:01 -04:00
2008-05-01 08:03:59 -07:00
2008-05-29 14:46:30 +02:00
2008-04-24 21:16:57 -07:00
2008-05-09 07:45:18 -07:00
2008-04-28 08:58:21 -07:00