mirror of https://github.com/acidanthera/audk.git
ArmPkg/CpuDxe: Fixed some typo issues in the AArch64 exception code
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15710 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
f3c5066fa6
commit
3ab3d13887
|
@ -90,8 +90,8 @@
|
|||
UINT64 ELR; 0x300 // Exception Link Register
|
||||
UINT64 SPSR; 0x308 // Saved Processor Status Register
|
||||
UINT64 FPSR; 0x310 // Floating Point Status Register
|
||||
UINT64 ESR; 0x318 // EL1 Fault Address Register
|
||||
UINT64 FAR; 0x320 // EL1 Exception syndrome register
|
||||
UINT64 ESR; 0x318 // Exception syndrome register
|
||||
UINT64 FAR; 0x320 // Fault Address Register
|
||||
UINT64 Padding;0x328 // Required for stack alignment
|
||||
*/
|
||||
|
||||
|
@ -127,7 +127,7 @@ GCC_ASM_EXPORT(CommonCExceptionHandler)
|
|||
REG_PAIR (x28, x29, 0x0e0, GP_CONTEXT_SIZE); \
|
||||
REG_ONE (x30, 0x0f0, GP_CONTEXT_SIZE);
|
||||
|
||||
// In order to save the SP we need to put it somwhere else first.
|
||||
// In order to save the SP we need to put it somewhere else first.
|
||||
// STR only works with XZR/WZR directly
|
||||
#define SAVE_SP \
|
||||
add x1, sp, #(FP_CONTEXT_SIZE + SYS_CONTEXT_SIZE); \
|
||||
|
@ -252,7 +252,7 @@ ASM_PFX(SynchronousExceptionEntry):
|
|||
// This does not save r31(SP) as it is special. We do that later.
|
||||
ALL_GP_REGS
|
||||
|
||||
// Record the tipe of exception that occured.
|
||||
// Record the type of exception that occurred.
|
||||
mov x0, #EXCEPT_AARCH64_SYNCHRONOUS_EXCEPTIONS
|
||||
|
||||
// Jump to our general handler to deal with all the common parts and process the exception.
|
||||
|
@ -298,8 +298,8 @@ ASM_PFX(ExceptionHandlersEnd):
|
|||
//
|
||||
ASM_PFX(AsmCommonExceptionEntry):
|
||||
/* NOTE:
|
||||
We have to break up the save code because the immidiate value to be used
|
||||
with the SP is to big to do it all in one step so we need to shuffle the SP
|
||||
We have to break up the save code because the immediate value to be used
|
||||
with the SP is too big to do it all in one step so we need to shuffle the SP
|
||||
along as we go. (we only have 9bits of immediate to work with) */
|
||||
|
||||
// Save the current Stack pointer before we start modifying it.
|
||||
|
@ -317,8 +317,8 @@ ASM_PFX(AsmCommonExceptionEntry):
|
|||
2:mrs x1, elr_el2 // Exception Link Register
|
||||
mrs x2, spsr_el2 // Saved Processor Status Register 32bit
|
||||
mrs x3, fpsr // Floating point Status Register 32bit
|
||||
mrs x4, esr_el2 // EL1 Exception syndrome register 32bit
|
||||
mrs x5, far_el2 // EL1 Fault Address Register
|
||||
mrs x4, esr_el2 // EL2 Exception syndrome register 32bit
|
||||
mrs x5, far_el2 // EL2 Fault Address Register
|
||||
|
||||
// Adjust SP to save next set
|
||||
3:add sp, sp, #FP_CONTEXT_SIZE
|
||||
|
@ -356,7 +356,6 @@ ASM_PFX(AsmCommonExceptionEntry):
|
|||
#undef REG_PAIR
|
||||
#undef REG_ONE
|
||||
#define REG_PAIR(REG1, REG2, OFFSET, CONTEXT_SIZE) ldp REG1, REG2, [sp, #(OFFSET-CONTEXT_SIZE)]
|
||||
|
||||
#define REG_ONE(REG1, OFFSET, CONTEXT_SIZE) ldur REG1, [sp, #(OFFSET-CONTEXT_SIZE)]
|
||||
|
||||
// Adjust SP to pop system registers
|
||||
|
@ -373,8 +372,8 @@ ASM_PFX(AsmCommonExceptionEntry):
|
|||
2:msr elr_el2, x1 // Exception Link Register
|
||||
msr spsr_el2,x2 // Saved Processor Status Register 32bit
|
||||
msr fpsr, x3 // Floating point Status Register 32bit
|
||||
msr esr_el2, x4 // EL1 Exception syndrome register 32bit
|
||||
msr far_el2, x5 // EL1 Fault Address Register
|
||||
msr esr_el2, x4 // EL2 Exception syndrome register 32bit
|
||||
msr far_el2, x5 // EL2 Fault Address Register
|
||||
|
||||
3:// pop all regs and return from exception.
|
||||
sub sp, sp, #(FP_CONTEXT_SIZE + SYS_CONTEXT_SIZE)
|
||||
|
|
Loading…
Reference in New Issue