Add a <misc/math_extras.h> header file with portable implementations of a number of commonly used math and bit counting operations that are not available in the C programming language. The math_extras functions fall into two groups: 1. Unsigned integer arithmetic with overflow detection. Addition and multiplication are provides for the u32_t, u64_t, and size_t types. This commit doesn't include subtraction and division, and there are no signed operations. These could be added later if there is a need. 2. Bit-counting operations like clz, ctz, and ffs. These are provided for u32_t and u64_t only. I don't see a need for size_t operations, but they could be added if needed. A follow-on commit will add more efficient implementations using compiler builtins for those compilers that support it. Another commit will replace other uses of "naked" compiler builtins with calls to these functions. Signed-off-by: Jakob Olesen <jolesen@fb.com>
5 lines
57 B
YAML
5 lines
57 B
YAML
tests:
|
|
misc.math_extras:
|
|
timeout: 5
|
|
type: unit
|