1.23 Real-time integer division in the ARM libraries
The ARM library provides a real-time division routine and a standard division routine.
The standard division routine supplied with the ARM libraries provides good overall performance. However, the amount of time required to perform a division depends on the input values. For example, a division that generates a four-bit quotient might require only 12 cycles while a 32-bit quotient might require 96 cycles. Depending on your target, some applications require a faster worst-case cycle count at the expense of lower average performance. For this reason, the ARM library provides two divide routines.
The real-time routine:
Always executes in fewer than 45 cycles.
Is faster than the standard division routine for larger quotients.
Is slower than the standard division routine for typical quotients.
Returns the same results.
Does not require any change in the surrounding code.
NoteReal-time division is not available in the libraries for Cortex-M1 or Cortex-M0.
NoteThe Cortex-R4 and Cortex-M3 processors support hardware floating-point divide, so they do not require the library divide routines.
Select the real-time divide routine using either of the following methods:
IMPORT __use_realtime_divisionfrom assembly language.
asm(".global __use_realtime_division\n")from C.