u-boot/arch/arm
Sean Anderson 726a802fda arm: Use builtins for ffs/fls
Since ARMv5, the clz instruction allows for efficient implementation of
ffs/fls with builtins. Until ARMv7 (with Thumb-2), this instruction is
only available in ARM mode. LTO makes it difficult to force specific
functions to be in ARM mode, as it is effectively a form of very
aggressive inlining. To work around this, fls/ffs are implemented in
assembly for ARMv5 and ARMv6 when compiling U-Boot in Thumb mode.
Overall, this saves around 75 bytes per call.

This code is synced with v5.15 of the Linux kernel.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2023-08-17 16:39:20 -04:00
..
cpu treewide: unify the linker symbol reference format 2023-08-09 09:21:42 -04:00
dts arm: dts: k3-am64: Sync DT with Linux v6.5-rc1 2023-08-17 15:10:01 -04:00
include arm: Use builtins for ffs/fls 2023-08-17 16:39:20 -04:00
lib arm: Use builtins for ffs/fls 2023-08-17 16:39:20 -04:00
mach-apple arm: apple: Add initial Apple M2 Pro/Max support 2023-05-30 15:13:44 -04:00
mach-aspeed
mach-at91 Prepare v2023.07-rc6 2023-07-05 11:28:55 -04:00
mach-bcm283x mmc: bcm2835-host: let firmware manage the clock divisor 2023-03-24 14:43:20 +00:00
mach-bcmbca
mach-bcmstb
mach-cortina
mach-davinci include: Remove unused header files 2023-05-31 12:31:47 -04:00
mach-exynos
mach-highbank
mach-histb arm: histb: hi3798mv200: add initial support for Hi3798MV200 HC2910-2AGHD05 board 2023-05-03 09:05:24 -04:00
mach-hpe arm: Correct cpu_reset function prototype on some platforms 2023-03-22 15:22:48 -04:00
mach-imx Kconfigs: Correct default of "0" on hex type entries 2023-08-09 09:21:42 -04:00
mach-integrator
mach-ipq40xx
mach-k3 board: toradex: add verdin am62 support 2023-08-04 15:03:42 -04:00
mach-keystone include: Remove unused header files 2023-05-31 12:31:47 -04:00
mach-kirkwood arm: kirkwood: Move internal registers in arch_very_early_init() function 2023-03-24 13:11:47 +01:00
mach-lpc32xx
mach-mediatek arm: mediatek: add support for MediaTek MT7988 SoC 2023-08-03 09:40:50 -04:00
mach-meson arch/arm: meson: sm: introduce power domain functions 2023-06-28 10:05:34 +02:00
mach-mvebu arm: mvebu: Add Allied Telesis x240 board 2023-07-13 15:53:57 +02:00
mach-nexell
mach-npcm arch: arm: npcm8xx: add cpu version and 4G ram support 2023-07-14 12:52:18 -04:00
mach-octeontx
mach-octeontx2
mach-omap2 part: eliminate part_get_info_by_name_type() 2023-07-25 12:44:46 -04:00
mach-orion5x
mach-owl
mach-qemu
mach-rmobile Merge tag v2023.07-rc4 into next 2023-06-12 14:55:33 -04:00
mach-rockchip Kconfigs: Correct default of "0" on hex type entries 2023-08-09 09:21:42 -04:00
mach-s5pc1xx
mach-snapdragon
mach-socfpga
mach-sti
mach-stm32
mach-stm32mp treewide: unify the linker symbol reference format 2023-08-09 09:21:42 -04:00
mach-sunxi Kconfigs: Correct default of "0" on hex type entries 2023-08-09 09:21:42 -04:00
mach-tegra arm64: zynqmp: Switch to amd.com emails 2023-07-21 09:00:38 +02:00
mach-u8500
mach-uniphier arm: uniphier: fix header inclusion guard 2023-05-31 10:11:46 -04:00
mach-versal arm64: zynqmp: Switch to amd.com emails 2023-07-21 09:00:38 +02:00
mach-versal-net xilinx: Consolidate zynqmp_mmio_read/write in zynqmp_firmware.h 2023-07-21 09:00:38 +02:00
mach-versatile
mach-zynq
mach-zynqmp arm64: zynqmp: Switch to amd.com emails 2023-07-21 09:00:38 +02:00
mach-zynqmp-r5
thumb1/include/asm/proc-armv
config.mk arm: Centralize fixed register logic 2023-04-25 15:31:27 -04:00
Kconfig phy: Add support for the Apple Type-C PHY 2023-08-14 17:51:51 -04:00
Kconfig.debug
Makefile arm: add support for Hisilicon HiSTB family SoCs 2023-05-03 09:05:24 -04:00