git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11130
6f19259b-4bc3-4df7-8a09-
765794883524
.globl ASM_PFX(CommonCExceptionHandler)
.text
.globl ASM_PFX(CommonCExceptionHandler)
.text
+.fpu neon @ makes vpush/vpop assemble
@ R0 is ExceptionType
mov R1,SP @ R1 is SystemContext
@ R0 is ExceptionType
mov R1,SP @ R1 is SystemContext
+ vpush {d0-d15} @ save vstm registers in case they are used in optimizations\r
+
*/
blx ASM_PFX(CommonCExceptionHandler) @ Call exception handler
*/
blx ASM_PFX(CommonCExceptionHandler) @ Call exception handler
ldr R1, [SP, #0x4c] @ Restore EFI_SYSTEM_CONTEXT_ARM.IFSR
mcr p15, 0, R1, c5, c0, 1 @ Write IFSR
ldr R1, [SP, #0x4c] @ Restore EFI_SYSTEM_CONTEXT_ARM.IFSR
mcr p15, 0, R1, c5, c0, 1 @ Write IFSR
; R0 is ExceptionType
mov R1,SP ; R1 is SystemContext
; R0 is ExceptionType
mov R1,SP ; R1 is SystemContext
+ vpush {d0-d15} ; save vstm registers in case they are used in optimizations\r
+
*/
blx CommonCExceptionHandler ; Call exception handler
*/
blx CommonCExceptionHandler ; Call exception handler
ldr R1, [SP, #0x4c] ; Restore EFI_SYSTEM_CONTEXT_ARM.IFSR
mcr p15, 0, R1, c5, c0, 1 ; Write IFSR
ldr R1, [SP, #0x4c] ; Restore EFI_SYSTEM_CONTEXT_ARM.IFSR
mcr p15, 0, R1, c5, c0, 1 ; Write IFSR