diff options
author | Nicholas Piggin <npiggin@gmail.com> | 2019-01-08 00:04:17 +1000 |
---|---|---|
committer | Stewart Smith <stewart@linux.ibm.com> | 2019-02-12 15:08:17 +1100 |
commit | 9c58bbd720b73b9c9c3bf9e86797077f053a9eb3 (patch) | |
tree | 1b04f4adb8a4dc0b2ea7179624359346fd1b0ab0 /asm | |
parent | 9e075d75274c50da4135c55afccc9f6d24dd2cfe (diff) | |
download | talos-skiboot-9c58bbd720b73b9c9c3bf9e86797077f053a9eb3.tar.gz talos-skiboot-9c58bbd720b73b9c9c3bf9e86797077f053a9eb3.zip |
core/exceptions: save current MSR in exception frame
Save and print the MSR of the interrupt context. This can be derived
from the interrupt type, SRR1, and other system register settings. But
it can be useful to quickly verify what's happening.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
Diffstat (limited to 'asm')
-rw-r--r-- | asm/asm-offsets.c | 1 | ||||
-rw-r--r-- | asm/head.S | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/asm/asm-offsets.c b/asm/asm-offsets.c index 3eac592d..45f42436 100644 --- a/asm/asm-offsets.c +++ b/asm/asm-offsets.c @@ -87,6 +87,7 @@ int main(void) OFFSET(STACK_CTR, stack_frame, ctr); OFFSET(STACK_LR, stack_frame, lr); OFFSET(STACK_PC, stack_frame, pc); + OFFSET(STACK_MSR, stack_frame, msr); OFFSET(STACK_CFAR, stack_frame, cfar); OFFSET(STACK_SRR0, stack_frame, srr0); OFFSET(STACK_SRR1, stack_frame, srr1); @@ -217,8 +217,10 @@ _exception: std %r6,STACK_HSRR1(%r1) mfspr %r3,SPR_DSISR mfspr %r4,SPR_DAR + mfmsr %r5 stw %r3,STACK_DSISR(%r1) std %r4,STACK_DAR(%r1) + std %r5,STACK_MSR(%r1) mr %r3,%r1 LOAD_IMM64(%r4, SKIBOOT_BASE) LOAD_IMM32(%r5, exception_entry_foo - __head) |