diff --git a/components/lwp/arch/arm/cortex-a/lwp_gcc.S b/components/lwp/arch/arm/cortex-a/lwp_gcc.S index 6c89152b0c86bc395cd90cb35593f7790e7e3c25..395974a2b72a266341e8bffa387a040a8a87b932 100644 --- a/components/lwp/arch/arm/cortex-a/lwp_gcc.S +++ b/components/lwp/arch/arm/cortex-a/lwp_gcc.S @@ -45,9 +45,9 @@ lwp_user_entry: /* * void SVC_Handler(void); */ -.global SVC_Handler -.type SVC_Handler, % function -SVC_Handler: +.global vector_swi +.type vector_swi, % function +vector_swi: push {lr} mrs lr, spsr push {r4, r5, lr} diff --git a/components/lwp/arch/arm/cortex-a9/lwp_gcc.S b/components/lwp/arch/arm/cortex-a9/lwp_gcc.S index 6c89152b0c86bc395cd90cb35593f7790e7e3c25..93e88f7c97a2f811f6fbf4f0ac8231c6cdfcf8c7 100644 --- a/components/lwp/arch/arm/cortex-a9/lwp_gcc.S +++ b/components/lwp/arch/arm/cortex-a9/lwp_gcc.S @@ -43,11 +43,11 @@ lwp_user_entry: movs pc, r1 /* - * void SVC_Handler(void); + * void vector_swi(void); */ -.global SVC_Handler -.type SVC_Handler, % function -SVC_Handler: +.global vector_swi +.type vector_swi, % function +vector_swi: push {lr} mrs lr, spsr push {r4, r5, lr} diff --git a/libcpu/arm/cortex-a/start_gcc.S b/libcpu/arm/cortex-a/start_gcc.S index 7464ba616107cce6f145255fc8e9001ddb1243be..51026b7ed52ed182238aeed2e743269b68926de7 100644 --- a/libcpu/arm/cortex-a/start_gcc.S +++ b/libcpu/arm/cortex-a/start_gcc.S @@ -241,9 +241,7 @@ rt_hw_context_switch_interrupt_do: .endm .align 5 - .globl vector_swi -.weak SVC_Handler -SVC_Handler: +.weak vector_swi vector_swi: push_svc_reg bl rt_hw_trap_swi