diff options
author | Gedare Bloom <gedare@rtems.org> | 2012-03-14 13:06:13 -0400 |
---|---|---|
committer | Gedare Bloom <gedare@rtems.org> | 2012-03-14 13:06:13 -0400 |
commit | 67baf6071d6e92d9e2c959aa5531b84f4afe8063 (patch) | |
tree | f410beef16f1f9d76aa18a3a6529b69a00980121 | |
parent | bsp/lpc24xx: New BSP variant (diff) | |
download | rtems-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.S | 4 | ||||
-rw-r--r-- | 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 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 |