summaryrefslogtreecommitdiffstats
path: root/c/src/exec/score/cpu/sparc/cpu_asm.S
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1999-01-19 20:09:33 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1999-01-19 20:09:33 +0000
commitba2adf540ec8aa5455d09c729c948f9b6742e42e (patch)
treedfc09609fc663177416156de02181ef4dff21ab9 /c/src/exec/score/cpu/sparc/cpu_asm.S
parentMoved sys/ioctl.h to libc support (diff)
downloadrtems-ba2adf540ec8aa5455d09c729c948f9b6742e42e.tar.bz2
Patch from Jiri Gaisler <jgais@ce.chalmers.se>:
getting the spurious trap handling to work required a couple more fixes - I have attached a patch against rtems-4.0.0 with the necessary changes. I also added functionality so that the address of the trapped instruction is reported and in case of a data access error, the data address is also reported.
Diffstat (limited to '')
-rw-r--r--c/src/exec/score/cpu/sparc/cpu_asm.S2
1 files changed, 2 insertions, 0 deletions
diff --git a/c/src/exec/score/cpu/sparc/cpu_asm.S b/c/src/exec/score/cpu/sparc/cpu_asm.S
index 39962eedeb..d980d4bff7 100644
--- a/c/src/exec/score/cpu/sparc/cpu_asm.S
+++ b/c/src/exec/score/cpu/sparc/cpu_asm.S
@@ -336,6 +336,7 @@ SYM(_ISR_Handler):
! Is this a synchronous trap?
be,a win_ovflow ! No, then skip the adjustment
nop ! DELAY
+ mov %l1, %l6 ! save trapped pc for debug info
mov %l2, %l1 ! do not return to the instruction
add %l2, 4, %l2 ! indicated
@@ -441,6 +442,7 @@ save_isf:
rd %y, %g1
st %g1, [%sp + ISF_Y_OFFSET] ! save y
+ st %l6, [%sp + ISF_TPC_OFFSET] ! save real trapped pc
mov %sp, %o1 ! 2nd arg to ISR Handler