seL4/src
Matthew Brecknell 9ec5df5fa8 riscv: more efficient clz and ctz
For RISC-V platforms that do not provide machine instructions to count
leading and trailing zeros, this commit includes more efficient library
functions. For verification, we expose the bodies of the functions to
the proofs.

Kernel config options `CLZ_BUILTIN` and `CTZ_BUILTIN` allow selection of
whether compiler builtin functions should be used. These are only
supported on platforms where the builtin compiles to inline assembly. By
default, the options are on for all platforms except RISC-V.

Signed-off-by: Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>
2021-03-23 14:43:34 +11:00
..
api avoid passing extra_caps_t by value 2021-03-19 11:29:51 +11:00
arch riscv: more efficient clz and ctz 2021-03-23 14:43:34 +11:00
benchmark KernelBenchmarksTrackUtilisation: Add more stats 2020-07-15 15:15:27 +10:00
config Convert license tags to SPDX identifiers 2020-03-09 13:21:49 +08:00
drivers trivial: clean up code for C parser 2020-10-28 17:30:42 +11:00
fastpath mcs,fastpath: Check donation in ReplyRecv 2020-07-24 16:48:48 +10:00
kernel avoid passing extra_caps_t by value 2021-03-19 11:29:51 +11:00
machine capDL: Add kernel debugging tool for capDL 2020-09-16 18:01:36 +10:00
model Make kernel log buffer derived from cmake config 2020-11-10 16:24:43 +11:00
object remove slot_range_t 2021-03-19 11:29:51 +11:00
plat Bring Raspberry Pi 4 (RPi4) support 2021-03-22 11:41:03 +11:00
smp riscv: Improve IPI code 2020-05-07 13:48:26 +10:00
assert.c Convert license tags to SPDX identifiers 2020-03-09 13:21:49 +08:00
config.cmake capDL: Add kernel debugging tool for capDL 2020-09-16 18:01:36 +10:00
inlines.c Enabled IPC debug features under new config 2020-04-06 14:21:46 +10:00
string.c Convert license tags to SPDX identifiers 2020-03-09 13:21:49 +08:00
util.c riscv: more efficient clz and ctz 2021-03-23 14:43:34 +11:00