summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGedare Bloom <gedare@rtems.org>2012-03-14 13:06:13 -0400
committerGedare Bloom <gedare@rtems.org>2012-03-14 13:06:13 -0400
commit67baf6071d6e92d9e2c959aa5531b84f4afe8063 (patch)
treef410beef16f1f9d76aa18a3a6529b69a00980121
parentbsp/lpc24xx: New BSP variant (diff)
downloadrtems-67baf6071d6e92d9e2c959aa5531b84f4afe8063.tar.bz2
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.
-rw-r--r--c/src/lib/libcpu/sparc64/shared/score/interrupt.S4
-rw-r--r--cpukit/score/cpu/sparc64/rtems/score/cpu.h3
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 1f666116bb..9e93eff188 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 105e669285..7be274ca2f 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