[rtems commit] PR2041: sparc64: vector number not included in CPU_Interrupt_frame

Joel Sherrill joel at rtems.org
Thu Mar 29 14:14:31 UTC 2012


Module:    rtems
Branch:    master
Commit:    cb06c45b151285f0ff9d62ae9574bb240c5da236
Changeset: http://git.rtems.org/rtems/commit/?id=cb06c45b151285f0ff9d62ae9574bb240c5da236

Author:    Gedare Bloom <gedare at rtems.org>
Date:      Wed Mar 14 13:06:13 2012 -0400

PR2041: sparc64: vector number not included in CPU_Interrupt_frame

Add the trap vector to the interrupt frame. Also rename the assembly
macro that accesses the field to be consistent with similar macros.

---

 c/src/lib/libcpu/sparc64/shared/score/interrupt.S |    4 ++--
 cpukit/score/cpu/sparc64/rtems/score/cpu.h        |    3 ++-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/c/src/lib/libcpu/sparc64/shared/score/interrupt.S b/c/src/lib/libcpu/sparc64/shared/score/interrupt.S
index 1f66611..9e93eff 100644
--- a/c/src/lib/libcpu/sparc64/shared/score/interrupt.S
+++ b/c/src/lib/libcpu/sparc64/shared/score/interrupt.S
@@ -118,7 +118,7 @@ PUBLIC(_ISR_Handler)
     stx   %g3, [%sp + STACK_BIAS + ISF_PIL_OFFSET]
     stx   %g4, [%sp + STACK_BIAS + ISF_TPC_OFFSET]
     stx   %g5, [%sp + STACK_BIAS + ISF_TNPC_OFFSET]
-    stx   %g2, [%sp + STACK_BIAS + ISF_TVEC_NUM]
+    stx   %g2, [%sp + STACK_BIAS + ISF_TVEC_OFFSET]
 
     rd  %y, %g4        ! save y
     stx   %g4, [%sp + STACK_BIAS + ISF_Y_OFFSET]
@@ -522,7 +522,7 @@ dispatchAgain:
   ldx   [%sp + STACK_BIAS + ISF_TPC_OFFSET], %g4
   ldx   [%sp + STACK_BIAS + ISF_TNPC_OFFSET], %g5
   ldx   [%sp + STACK_BIAS + ISF_TSTATE_OFFSET], %g1
-  ldx   [%sp + STACK_BIAS + ISF_TVEC_NUM], %g2
+  ldx   [%sp + STACK_BIAS + ISF_TVEC_OFFSET], %g2
   wrpr  %g0, %g3, %pil
   wrpr  %g0, %g4, %tpc
   wrpr  %g0, %g5, %tnpc
diff --git a/cpukit/score/cpu/sparc64/rtems/score/cpu.h b/cpukit/score/cpu/sparc64/rtems/score/cpu.h
index 105e669..7be274c 100644
--- a/cpukit/score/cpu/sparc64/rtems/score/cpu.h
+++ b/cpukit/score/cpu/sparc64/rtems/score/cpu.h
@@ -519,6 +519,7 @@ typedef struct {
   uint64_t                 o5;
   uint64_t                 o6_sp;
   uint64_t                 o7;
+  uint64_t                 tvec;
 } CPU_Interrupt_frame;
 
 #endif /* ASM */
@@ -548,7 +549,7 @@ typedef struct {
 #define ISF_O5_OFFSET          CPU_MINIMUM_STACK_FRAME_SIZE + 0x88
 #define ISF_O6_SP_OFFSET       CPU_MINIMUM_STACK_FRAME_SIZE + 0x90
 #define ISF_O7_OFFSET          CPU_MINIMUM_STACK_FRAME_SIZE + 0x98
-#define ISF_TVEC_NUM		CPU_MINIMUM_STACK_FRAME_SIZE + 0xA0
+#define ISF_TVEC_OFFSET        CPU_MINIMUM_STACK_FRAME_SIZE + 0xA0
 
 #define CONTEXT_CONTROL_INTERRUPT_FRAME_SIZE CPU_MINIMUM_STACK_FRAME_SIZE + 0xA8 
 #ifndef ASM




More information about the vc mailing list