zephyr/include/arch
Andy Ross 64cf33952d arch/xtensa: Add non-HAL caching primitives
The Xtensa L1 cache layer has straightforward semantics accessible via
single-instructions that operate on cache lines via physical
addresses.  These are very amenable to inlining.

Unfortunately the Xtensa HAL layer requires function calls to do this,
leading to significant code waste at the calling site, an extra frame
on the stack and needless runtime instructions for situations where
the call is over a constant region that could elide the loop.  This is
made even worse because the HAL library is not built with
-ffunction-sections, so pulling in even one of these tiny cache
functions has the effect of importing a 1500-byte object file into the
link!

Add our own tiny cache layer to include/arch/xtensa/cache.h and use
that instead.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2021-03-08 11:14:27 -05:00
..
arc arch: arc: fix mpu version number 2021-02-24 08:57:35 -05:00
arm arch: arm: aarch64: add SMP support 2021-03-06 07:36:37 -05:00
common
nios2 license: add missing SPDX headers 2021-02-11 08:05:16 -05:00
posix
riscv include: arch: riscv: drop __soc_get_irq() declaration 2021-02-25 21:52:20 +03:00
sparc
x86 x86: allow linking in virtual address space 2021-02-22 14:55:28 -05:00
xtensa arch/xtensa: Add non-HAL caching primitives 2021-03-08 11:14:27 -05:00
arch_inlines.h aarch64: add arch_curr_cpu 2021-03-06 07:36:37 -05:00
cpu.h
syscall.h