* new-exceptions/bspsupport/vectors.h: Added defines PPC_EXC_GPR_TYPE,
	PPC_EXC_GPR_SIZE, PPC_EXC_GPR_OFFSET, PPC_EXC_MINIMAL_FRAME_SIZE, and
	PPC_EXC_FRAME_SIZE.  Changed layout of BSP_Exception_frame.
This commit is contained in:
Sebastian Huber
2011-02-17 11:19:43 +00:00
parent e226bd64fd
commit 2888a652a6
2 changed files with 84 additions and 69 deletions

View File

@@ -1,3 +1,9 @@
2011-02-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
* new-exceptions/bspsupport/vectors.h: Added defines PPC_EXC_GPR_TYPE,
PPC_EXC_GPR_SIZE, PPC_EXC_GPR_OFFSET, PPC_EXC_MINIMAL_FRAME_SIZE, and
PPC_EXC_FRAME_SIZE. Changed layout of BSP_Exception_frame.
2011-02-17 Ralf Corsépius <ralf.corsepius@rtems.org> 2011-02-17 Ralf Corsépius <ralf.corsepius@rtems.org>
* new-exceptions/bspsupport/vectors.h: Add extern "C" {}. * new-exceptions/bspsupport/vectors.h: Add extern "C" {}.

View File

@@ -143,6 +143,12 @@ extern "C" {
/** @} */ /** @} */
#define PPC_EXC_GPR_TYPE unsigned
#define PPC_EXC_GPR_SIZE 4
#define PPC_EXC_GPR_OFFSET(gpr) ((gpr) * PPC_EXC_GPR_SIZE + 36)
#define PPC_EXC_MINIMAL_FRAME_SIZE 96
#define PPC_EXC_FRAME_SIZE 176
/** /**
* @defgroup ppc_exc_frame PowerPC Exception Frame * @defgroup ppc_exc_frame PowerPC Exception Frame
* *
@@ -157,47 +163,50 @@ extern "C" {
* So let room for it!!!. * So let room for it!!!.
*/ */
#define LINK_REGISTER_CALLEE_UPDATE_ROOM 4 #define LINK_REGISTER_CALLEE_UPDATE_ROOM 4
#define SRR0_FRAME_OFFSET 8 #define SRR0_FRAME_OFFSET 8
#define SRR1_FRAME_OFFSET 12 #define SRR1_FRAME_OFFSET 12
#define EXCEPTION_NUMBER_OFFSET 16 #define EXCEPTION_NUMBER_OFFSET 16
#define GPR0_OFFSET 20 #define EXC_CR_OFFSET 20
#define GPR1_OFFSET 24 #define EXC_CTR_OFFSET 24
#define GPR2_OFFSET 28 #define EXC_XER_OFFSET 28
#define GPR3_OFFSET 32 #define EXC_LR_OFFSET 32
#define GPR4_OFFSET 36 #define GPR0_OFFSET PPC_EXC_GPR_OFFSET(0)
#define GPR5_OFFSET 40 #define GPR1_OFFSET PPC_EXC_GPR_OFFSET(1)
#define GPR6_OFFSET 44 #define GPR2_OFFSET PPC_EXC_GPR_OFFSET(2)
#define GPR7_OFFSET 48 #define GPR3_OFFSET PPC_EXC_GPR_OFFSET(3)
#define GPR8_OFFSET 52 #define GPR4_OFFSET PPC_EXC_GPR_OFFSET(4)
#define GPR9_OFFSET 56 #define GPR5_OFFSET PPC_EXC_GPR_OFFSET(5)
#define GPR10_OFFSET 60 #define GPR6_OFFSET PPC_EXC_GPR_OFFSET(6)
#define GPR11_OFFSET 64 #define GPR7_OFFSET PPC_EXC_GPR_OFFSET(7)
#define GPR12_OFFSET 68 #define GPR8_OFFSET PPC_EXC_GPR_OFFSET(8)
#define GPR13_OFFSET 72 #define GPR9_OFFSET PPC_EXC_GPR_OFFSET(9)
#define GPR14_OFFSET 76 #define GPR10_OFFSET PPC_EXC_GPR_OFFSET(10)
#define GPR15_OFFSET 80 #define GPR11_OFFSET PPC_EXC_GPR_OFFSET(11)
#define GPR16_OFFSET 84 #define GPR12_OFFSET PPC_EXC_GPR_OFFSET(12)
#define GPR17_OFFSET 88 #define GPR13_OFFSET PPC_EXC_GPR_OFFSET(13)
#define GPR18_OFFSET 92 #define GPR14_OFFSET PPC_EXC_GPR_OFFSET(14)
#define GPR19_OFFSET 96 #define GPR15_OFFSET PPC_EXC_GPR_OFFSET(15)
#define GPR20_OFFSET 100 #define GPR16_OFFSET PPC_EXC_GPR_OFFSET(16)
#define GPR21_OFFSET 104 #define GPR17_OFFSET PPC_EXC_GPR_OFFSET(17)
#define GPR22_OFFSET 108 #define GPR18_OFFSET PPC_EXC_GPR_OFFSET(18)
#define GPR23_OFFSET 112 #define GPR19_OFFSET PPC_EXC_GPR_OFFSET(19)
#define GPR24_OFFSET 116 #define GPR20_OFFSET PPC_EXC_GPR_OFFSET(20)
#define GPR25_OFFSET 120 #define GPR21_OFFSET PPC_EXC_GPR_OFFSET(21)
#define GPR26_OFFSET 124 #define GPR22_OFFSET PPC_EXC_GPR_OFFSET(22)
#define GPR27_OFFSET 128 #define GPR23_OFFSET PPC_EXC_GPR_OFFSET(23)
#define GPR28_OFFSET 132 #define GPR24_OFFSET PPC_EXC_GPR_OFFSET(24)
#define GPR29_OFFSET 136 #define GPR25_OFFSET PPC_EXC_GPR_OFFSET(25)
#define GPR30_OFFSET 140 #define GPR26_OFFSET PPC_EXC_GPR_OFFSET(26)
#define GPR31_OFFSET 144 #define GPR27_OFFSET PPC_EXC_GPR_OFFSET(27)
#define EXC_CR_OFFSET 148 #define GPR28_OFFSET PPC_EXC_GPR_OFFSET(28)
#define EXC_CTR_OFFSET 152 #define GPR29_OFFSET PPC_EXC_GPR_OFFSET(29)
#define EXC_XER_OFFSET 156 #define GPR30_OFFSET PPC_EXC_GPR_OFFSET(30)
#define EXC_LR_OFFSET 160 #define GPR31_OFFSET PPC_EXC_GPR_OFFSET(31)
#define EXC_MSR_OFFSET PPC_EXC_GPR_OFFSET(32)
#define EXC_DAR_OFFSET (4 + EXC_MSR_OFFSET)
#define EXC_GENERIC_SIZE 176 #define EXC_GENERIC_SIZE PPC_EXC_FRAME_SIZE
#ifdef __ALTIVEC__ #ifdef __ALTIVEC__
#define EXC_VEC_OFFSET EXC_GENERIC_SIZE #define EXC_VEC_OFFSET EXC_GENERIC_SIZE
@@ -237,42 +246,42 @@ typedef struct {
unsigned EXC_SRR0; unsigned EXC_SRR0;
unsigned EXC_SRR1; unsigned EXC_SRR1;
unsigned _EXC_number; unsigned _EXC_number;
unsigned GPR0;
unsigned GPR1;
unsigned GPR2;
unsigned GPR3;
unsigned GPR4;
unsigned GPR5;
unsigned GPR6;
unsigned GPR7;
unsigned GPR8;
unsigned GPR9;
unsigned GPR10;
unsigned GPR11;
unsigned GPR12;
unsigned GPR13;
unsigned GPR14;
unsigned GPR15;
unsigned GPR16;
unsigned GPR17;
unsigned GPR18;
unsigned GPR19;
unsigned GPR20;
unsigned GPR21;
unsigned GPR22;
unsigned GPR23;
unsigned GPR24;
unsigned GPR25;
unsigned GPR26;
unsigned GPR27;
unsigned GPR28;
unsigned GPR29;
unsigned GPR30;
unsigned GPR31;
unsigned EXC_CR; unsigned EXC_CR;
unsigned EXC_CTR; unsigned EXC_CTR;
unsigned EXC_XER; unsigned EXC_XER;
unsigned EXC_LR; unsigned EXC_LR;
PPC_EXC_GPR_TYPE GPR0;
PPC_EXC_GPR_TYPE GPR1;
PPC_EXC_GPR_TYPE GPR2;
PPC_EXC_GPR_TYPE GPR3;
PPC_EXC_GPR_TYPE GPR4;
PPC_EXC_GPR_TYPE GPR5;
PPC_EXC_GPR_TYPE GPR6;
PPC_EXC_GPR_TYPE GPR7;
PPC_EXC_GPR_TYPE GPR8;
PPC_EXC_GPR_TYPE GPR9;
PPC_EXC_GPR_TYPE GPR10;
PPC_EXC_GPR_TYPE GPR11;
PPC_EXC_GPR_TYPE GPR12;
PPC_EXC_GPR_TYPE GPR13;
PPC_EXC_GPR_TYPE GPR14;
PPC_EXC_GPR_TYPE GPR15;
PPC_EXC_GPR_TYPE GPR16;
PPC_EXC_GPR_TYPE GPR17;
PPC_EXC_GPR_TYPE GPR18;
PPC_EXC_GPR_TYPE GPR19;
PPC_EXC_GPR_TYPE GPR20;
PPC_EXC_GPR_TYPE GPR21;
PPC_EXC_GPR_TYPE GPR22;
PPC_EXC_GPR_TYPE GPR23;
PPC_EXC_GPR_TYPE GPR24;
PPC_EXC_GPR_TYPE GPR25;
PPC_EXC_GPR_TYPE GPR26;
PPC_EXC_GPR_TYPE GPR27;
PPC_EXC_GPR_TYPE GPR28;
PPC_EXC_GPR_TYPE GPR29;
PPC_EXC_GPR_TYPE GPR30;
PPC_EXC_GPR_TYPE GPR31;
unsigned EXC_MSR; unsigned EXC_MSR;
unsigned EXC_DAR; unsigned EXC_DAR;
} BSP_Exception_frame; } BSP_Exception_frame;