]> git.proxmox.com Git - mirror_edk2.git/commit
ArmPkg/ArmExceptionLib: reimplement register stack/unstack routines
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Thu, 17 Mar 2016 13:05:28 +0000 (14:05 +0100)
committerArd Biesheuvel <ard.biesheuvel@linaro.org>
Tue, 22 Mar 2016 13:48:06 +0000 (14:48 +0100)
commit1b02a38329ecd4c396a6ec878ce1be10b1789aa5
tree075f81ce59c0f10edd8ab6c3018de8541a01bae2
parent5d7238cae8061f64a0eaa18cf6e823283c617b66
ArmPkg/ArmExceptionLib: reimplement register stack/unstack routines

This replaces the somewhat opaque preprocessor based stack/unstack macros
with open coded ldp/stp sequences to preserve the interrupted context
before handing over to the exception handler in C.

This removes various arithmetic operations on the stack pointer, and
reduces the exception return critical section to its minimum size (i.e.,
the bare minimum required to populate the ELR and SPSR registers and invoke
the eret).

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Eugene Cohen <eugene@hp.com>
ArmPkg/Library/ArmExceptionLib/AArch64/ExceptionSupport.S