nuttx/arch/arm64/src/common
hujun5 6c1b900e82 arm64: optimise for arm64_switchcontext
We can save execution time by
       inline arm64_fullcontextrestore and arm64_switchcontext

test:
We can use qemu for testing.

compiling
make distclean -j20; ./tools/configure.sh -l qemu-armv8a:nsh_smp ;make -j20
running
qemu-system-aarch64 -cpu cortex-a53 -smp 4 -nographic -machine virt,virtualization=on,gic-version=3 -net none -chardev stdio,id=con,mux=on -serial chardev:con -mon chardev=con,mode=readline -kernel ./nuttx

Signed-off-by: hujun5 <hujun5@xiaomi.com>
2024-05-14 16:03:08 -03:00
..
addrenv.h
arm64_allocateheap.c
arm64_arch.h arch/arm64: Add atomic modifyregXX 2024-04-15 11:53:13 -03:00
arm64_arch_timer.c arch/arm64: 64 bit platform compile error reported 2023-05-10 09:06:59 +02:00
arm64_arch_timer.h Fix nuttx coding style 2023-07-14 01:16:06 +08:00
arm64_backtrace.c arch: Remove xxx_intstack_top and xxx_intstack_alloc 2024-04-09 16:59:00 -03:00
arm64_boot.c arch/arm64: add ARM64_DCACHE_DISABLE and ARM64_ICACHE_DISABLE config 2023-07-31 05:33:23 -07:00
arm64_cache.c arm64: support up_coherent_dcache function 2023-10-16 16:08:23 +08:00
arm64_checkstack.c stack: update up_get_intstackbase API to support cpu id 2024-04-09 16:59:00 -03:00
arm64_copystate.c arch/arm64/src/common: Remove void * arithmetic 2024-03-22 09:48:31 +08:00
arm64_cpu_idle.S arch: arm64: Remove unnecessary code in arm64_cpu_idle.S 2023-10-18 17:06:29 +08:00
arm64_cpu_psci.c arm64: support reboot / poweroff for qemu virt arm64 2023-09-20 00:40:44 +08:00
arm64_cpu_psci.h arm64: support reboot / poweroff for qemu virt arm64 2023-09-20 00:40:44 +08:00
arm64_cpuidlestack.c
arm64_cpupause.c SMP: fix crash when switch to new task which is still running 2024-03-01 21:05:00 +09:00
arm64_cpustart.c arm64: Add support for FIQ interrupts 2023-10-12 16:56:24 -04:00
arm64_createstack.c
arm64_doirq.c arch: update g_running_tasks when context switch occurred 2023-08-01 09:35:18 -07:00
arm64_exit.c arch/dumponexit: unify dump on exit to common code 2023-11-15 08:28:25 -08:00
arm64_fatal.c assert: Distinguish between assert and exception 2023-05-03 14:49:32 +08:00
arm64_fatal.h Remove @ and % tag from all comments 2023-12-11 17:00:10 -03:00
arm64_fork.c libs/libc/fork: add lib_fork implementation 2023-07-26 10:41:52 +02:00
arm64_fork.h sched/task/fork: add fork implementation 2023-07-12 02:27:37 +08:00
arm64_fork_func.S libs/libc/fork: add lib_fork implementation 2023-07-26 10:41:52 +02:00
arm64_fpu.c arch/arm64/src/common: Remove void * arithmetic 2024-03-22 09:48:31 +08:00
arm64_fpu.h arm64: Support for FPU profiling with procfs 2023-04-22 01:38:21 +08:00
arm64_fpu_func.S
arm64_getintstack.c arch: Remove xxx_intstack_top and xxx_intstack_alloc 2024-04-09 16:59:00 -03:00
arm64_gic.h arch/arm64: move sgi attach and enable to gic init 2023-05-21 09:58:34 -03:00
arm64_gicv2.c armv7-a/gicv2: move IRQ to group1 and group0 as the FIQ 2024-03-19 18:24:42 +09:00
arm64_gicv3.c arch: arm64 support smp function call 2023-10-18 09:57:50 +08:00
arm64_head.S arm64_head.S: Add explicit input section for __start 2024-03-23 00:21:54 +08:00
arm64_hostfs.c hostfs: mask bit fields of not support 2023-09-23 05:28:57 +09:00
arm64_idle.c
arm64_initialize.c arch: Remove xxx_intstack_top and xxx_intstack_alloc 2024-04-09 16:59:00 -03:00
arm64_initialstate.c arch/arm64/src/common: Remove void * arithmetic 2024-03-22 09:48:31 +08:00
arm64_internal.h arm64: optimise for arm64_switchcontext 2024-05-14 16:03:08 -03:00
arm64_macro.inc arch/arm64: get_cpu_id according to the correct affinity level 2023-08-03 03:19:19 -07:00
arm64_mmu.c arm64_mmu: Add data synchronization barrier after page tables are written 2024-03-19 15:46:51 -03:00
arm64_mmu.h arch/arm64: Add declaration for arm64_mmu_set_memregion 2023-10-30 18:20:22 +08:00
arm64_modifyreg8.c arch/arm64: Add atomic modifyregXX 2024-04-15 11:53:13 -03:00
arm64_modifyreg16.c arch/arm64: Add atomic modifyregXX 2024-04-15 11:53:13 -03:00
arm64_modifyreg32.c arch/arm64: Add atomic modifyregXX 2024-04-15 11:53:13 -03:00
arm64_mpu.c Remove @ and % tag from all comments 2023-12-11 17:00:10 -03:00
arm64_mpu.h arch/arm64: add cache enable and disable function 2023-04-22 01:22:04 +08:00
arm64_nputs.c
arm64_perf.c perf: The new configuration supports hardware performance counting 2023-08-12 02:20:44 +08:00
arm64_pmu.h arch/arm64: the arm64 perf interface supports pmu 2023-04-10 16:23:49 -03:00
arm64_registerdump.c assert: show stacks with the sp from regs 2023-05-05 13:40:04 +08:00
arm64_releasestack.c
arm64_schedulesigaction.c arch: move [enter|leave]_critical_section 2023-07-27 11:34:09 +02:00
arm64_sigdeliver.c arch: move [enter|leave]_critical_section 2023-07-27 11:34:09 +02:00
arm64_smccc.S
arm64_smp.h
arm64_stackframe.c
arm64_switchcontext.c nuttx/sched: merge up_block_task and up_unblock_task 2022-11-22 22:59:08 +08:00
arm64_syscall.c arch/arm: update running task when context switch occurred 2023-04-19 10:14:05 +09:00
arm64_systemreset.c arm64: PSCI config support 2023-03-01 13:23:48 +08:00
arm64_tcbinfo.c tcbinfo:remove total_num form tcbinfo. 2023-11-21 21:52:24 -08:00
arm64_testset.S
arm64_usestack.c
arm64_vector_table.S arm64: Add support for FIQ interrupts 2023-10-12 16:56:24 -04:00
arm64_vectors.S arm64_vector: no need to save x0 to sp 2023-11-21 07:56:19 -08:00
barriers.h
CMakeLists.txt arm64: optimise for arm64_switchcontext 2024-05-14 16:03:08 -03:00
crt0.c tools/export: fix names for app linker script and program entry. 2024-04-24 11:40:16 +08:00
Make.defs arm64: optimise for arm64_switchcontext 2024-05-14 16:03:08 -03:00