zephyr/arch/xtensa/core
Daniel Leung 42b209f816 xtensa: optimize syscall helper functions
The original idea of the syscall helpers is to workaround
an issue where the compiler could not correctly model register
usage with inline functions. It was supposed to be only used
when there are more then 3 arguments to syscalls. However,
during the original MMU code development, the helper got
expanded to cover "less then 2 arguments syscalls" as a way
for debugging syscall handling code and was never removed.
So fix that now by limiting the helper for syscalls with
more than 3 arguments.

Moreover, instead of using one helper with 6 arguments, now
we have separate implementations for both 4 and 5 arguments
syscall helpers. Now the compiler does not have to generate
code to always handle 6 arguments which saves a few code bytes
as there is no need to pass extra zeroes as arguments.

This has been verified to work with xt-clang RI-2022.10.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2024-12-04 14:16:15 -05:00
..
offsets
startup arch: xtensa: rename processor state save and restore calls 2024-10-29 07:07:42 -05:00
CMakeLists.txt cmake: toolchain/xcc,xt-clang: env vars for multiple cores 2024-10-31 09:26:00 -05:00
coredump.c xtensa: coredump: support dumping privilege stack 2024-09-21 11:29:39 +02:00
cpu_idle.c arch: use same syntax for custom arch calls 2024-08-12 12:43:36 +02:00
crt1.S xtensa: introduce prep_c for xtensa 2024-08-07 13:50:53 +02:00
debug_helpers_asm.S
elf.c LLEXT: fix advanced uses of detached sections 2024-11-16 15:28:00 -05:00
fatal.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
gdbstub.c
gen_vectors.py
gen_zsr.py xtensa: make it work with TLB misses during interrupt handling 2024-06-15 04:44:48 -04:00
irq_manage.c
irq_offload.c arch: initialize irq_offload during boot, do not use SYS_INIT 2024-09-17 20:05:22 -04:00
mem_manage.c
mmu.c
mpu.c xtensa: mpu: update hardware if manipulating current domain 2024-09-16 09:55:53 +02:00
prep_c.c cache: add new interface arch_cache_init() for initializing cache 2024-09-17 20:05:22 -04:00
ptables.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
README_MMU.txt everywhere: replace double words 2024-06-25 06:05:35 -04:00
README_WINDOWS.rst
smp.c arch: call arch_smp_init() directly, do not use SYS_INIT 2024-06-12 18:23:54 -04:00
syscall_helper.c xtensa: optimize syscall helper functions 2024-12-04 14:16:15 -05:00
thread.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
timing.c
tls.c
userspace.S xtensa: make arch_user_string_nlen actually work 2024-06-15 04:44:48 -04:00
vector_handlers.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
window_vectors.S
xcc_stubs.c
xtensa_asm2_util.S xtensa: mmu: bail on semantic triple faults 2024-06-15 04:44:48 -04:00
xtensa_backtrace.c soc: xtensa/dc233c: remove xtensa_dc233c_stack_ptr_is_sane 2024-06-21 09:59:36 +02:00
xtensa_hifi.S
xtensa_intgen.py
xtensa_intgen.tmpl