nuttx/arch/risc-v/include
Ville Juven e6973c764c riscv/syscall: Optimize user service call performance
This patch changes how user service calls are executed:
Instead of using the common interrupt logic, execute the user service
call directly.

Why? When a user makes a service call request, all of the service call
parameters are already loaded into the correct registers, thus it makes
no sense to first clobber them and then reload them, which is what the
old logic does. It is much more effective to run the system call directly.

During a user system call the interrupts must be re-enabled, which the
new logic does as soon as we know the exception is a user service call
request.

This patch does NOT change the behavior of reserved system calls (like
switch_context), only the user service call request is affected.
2024-06-01 10:40:53 -03:00
..
bl602 arch: Remove the inclusion of arch/irq.h from chip/irq.h 2022-07-04 13:03:47 +03:00
bl808 arch/riscv: Add support for Bouffalo Lab BL808 SoC (T-Head C906) 2023-12-12 08:50:03 -08:00
c906 arch: Remove the inclusion of arch/irq.h from chip/irq.h 2022-07-04 13:03:47 +03:00
esp32c3 risc-v/espressif: Rename espressif/esp32c3 as esp32c3 2024-01-30 08:32:05 +01:00
esp32c3-legacy risc-v/esp32c3: Rename legacy approach esp32c3 as esp32c3-legacy 2024-01-30 08:32:05 +01:00
esp32c6 risc-v/espressif: Rename espressif/esp32c3 as esp32c3 2024-01-30 08:32:05 +01:00
esp32h2 risc-v/espressif: Rename espressif/esp32c3 as esp32c3 2024-01-30 08:32:05 +01:00
fe310 arch: Remove the inclusion of arch/irq.h from chip/irq.h 2022-07-04 13:03:47 +03:00
hpm6000 Add support for hpm6360evk 2024-02-18 09:17:56 -08:00
hpm6750 add hpmicro chip: hpm6750 2023-02-09 14:17:49 +08:00
jh7110 arch/risc-v: Add support for StarFive JH7110 SoC 2023-08-03 22:55:55 -07:00
k210 arch: Remove the inclusion of arch/irq.h from chip/irq.h 2022-07-04 13:03:47 +03:00
k230 risc-v/k230: add IPI support to speed up RPTUN/RPMSG 2024-02-21 04:37:03 -08:00
litex risc-v/litex: fix typo in litex/irq.h 2024-01-06 04:15:52 -08:00
mpfs risc-v/mpfs: add athena irq defines 2023-02-15 00:21:03 +08:00
qemu-rv arch: Remove the inclusion of arch/irq.h from chip/irq.h 2022-07-04 13:03:47 +03:00
rv32m1 arch: Remove the inclusion of arch/irq.h from chip/irq.h 2022-07-04 13:03:47 +03:00
thead arch/riscv: add T-HEAD CSR mapping 2024-04-11 22:20:39 +08:00
.gitignore Remove exra whitespace from files (#189) 2020-01-31 09:24:49 -06:00
arch.h risc-v/arch.h: revising comments 2024-03-25 20:39:24 +08:00
barriers.h riscv/barrier: Define more granular memory barriers 2023-06-14 16:14:57 -03:00
csr.h arch/risc-v: add risc-v SSTC extension support 2024-04-27 22:09:22 -03:00
elf.h riscv/arch_elf.c: Handle PCREL_HI20/LO12_I/S relocations correctly 2023-12-12 17:32:36 -08:00
inttypes.h arch/risc-v: Replace __LP64__ with CONFIG_ARCH_RV64 2022-01-04 23:22:43 +08:00
irq.h riscv/syscall: Optimize user service call performance 2024-06-01 10:40:53 -03:00
limits.h arch: Define WCHAR_[MIN|MAX] in arch/include/limits.h 2022-06-03 22:25:49 +03:00
mode.h arch/risc-v: add risc-v SSTC extension support 2024-04-27 22:09:22 -03:00
setjmp.h arch/risc-v: Save/Load float register in setjmp 2022-03-09 10:15:54 +02:00
spinlock.h arch/risc-v: Replace __LP64__ with CONFIG_ARCH_RV64 2022-01-04 23:22:43 +08:00
stdarg.h arch: risc-V: Author Gregory Nutt: update licenses to Apache 2021-03-31 08:48:51 -07:00
syscall.h riscv/syscall: Optimize user service call performance 2024-06-01 10:40:53 -03:00
types.h arch/risc-v: Replace __LP64__ with CONFIG_ARCH_RV64 2022-01-04 23:22:43 +08:00