diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-02-17 11:19:43 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-02-17 11:19:43 +0000 |
commit | 2888a652a6ba3bdb50ce76221e1831276634cab3 (patch) | |
tree | 1c3ea2765ace9fe267cb6771cd502990ffe61262 /c | |
parent | 2011-02-17 Sebastian Huber <Sebastian.Huber@embedded-brains.de> (diff) | |
download | rtems-2888a652a6ba3bdb50ce76221e1831276634cab3.tar.bz2 |
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.
Diffstat (limited to 'c')
-rw-r--r-- | c/src/lib/libcpu/powerpc/ChangeLog | 6 | ||||
-rw-r--r-- | c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/vectors.h | 149 |
2 files changed, 85 insertions, 70 deletions
diff --git a/c/src/lib/libcpu/powerpc/ChangeLog b/c/src/lib/libcpu/powerpc/ChangeLog index f41af2658d..4811adc6ba 100644 --- a/c/src/lib/libcpu/powerpc/ChangeLog +++ b/c/src/lib/libcpu/powerpc/ChangeLog @@ -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> * new-exceptions/bspsupport/vectors.h: Add extern "C" {}. diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/vectors.h b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/vectors.h index 278d5af5ec..7eace74ed5 100644 --- a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/vectors.h +++ b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/vectors.h @@ -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 * @@ -157,47 +163,50 @@ extern "C" { * So let room for it!!!. */ #define LINK_REGISTER_CALLEE_UPDATE_ROOM 4 + #define SRR0_FRAME_OFFSET 8 #define SRR1_FRAME_OFFSET 12 #define EXCEPTION_NUMBER_OFFSET 16 -#define GPR0_OFFSET 20 -#define GPR1_OFFSET 24 -#define GPR2_OFFSET 28 -#define GPR3_OFFSET 32 -#define GPR4_OFFSET 36 -#define GPR5_OFFSET 40 -#define GPR6_OFFSET 44 -#define GPR7_OFFSET 48 -#define GPR8_OFFSET 52 -#define GPR9_OFFSET 56 -#define GPR10_OFFSET 60 -#define GPR11_OFFSET 64 -#define GPR12_OFFSET 68 -#define GPR13_OFFSET 72 -#define GPR14_OFFSET 76 -#define GPR15_OFFSET 80 -#define GPR16_OFFSET 84 -#define GPR17_OFFSET 88 -#define GPR18_OFFSET 92 -#define GPR19_OFFSET 96 -#define GPR20_OFFSET 100 -#define GPR21_OFFSET 104 -#define GPR22_OFFSET 108 -#define GPR23_OFFSET 112 -#define GPR24_OFFSET 116 -#define GPR25_OFFSET 120 -#define GPR26_OFFSET 124 -#define GPR27_OFFSET 128 -#define GPR28_OFFSET 132 -#define GPR29_OFFSET 136 -#define GPR30_OFFSET 140 -#define GPR31_OFFSET 144 -#define EXC_CR_OFFSET 148 -#define EXC_CTR_OFFSET 152 -#define EXC_XER_OFFSET 156 -#define EXC_LR_OFFSET 160 - -#define EXC_GENERIC_SIZE 176 +#define EXC_CR_OFFSET 20 +#define EXC_CTR_OFFSET 24 +#define EXC_XER_OFFSET 28 +#define EXC_LR_OFFSET 32 +#define GPR0_OFFSET PPC_EXC_GPR_OFFSET(0) +#define GPR1_OFFSET PPC_EXC_GPR_OFFSET(1) +#define GPR2_OFFSET PPC_EXC_GPR_OFFSET(2) +#define GPR3_OFFSET PPC_EXC_GPR_OFFSET(3) +#define GPR4_OFFSET PPC_EXC_GPR_OFFSET(4) +#define GPR5_OFFSET PPC_EXC_GPR_OFFSET(5) +#define GPR6_OFFSET PPC_EXC_GPR_OFFSET(6) +#define GPR7_OFFSET PPC_EXC_GPR_OFFSET(7) +#define GPR8_OFFSET PPC_EXC_GPR_OFFSET(8) +#define GPR9_OFFSET PPC_EXC_GPR_OFFSET(9) +#define GPR10_OFFSET PPC_EXC_GPR_OFFSET(10) +#define GPR11_OFFSET PPC_EXC_GPR_OFFSET(11) +#define GPR12_OFFSET PPC_EXC_GPR_OFFSET(12) +#define GPR13_OFFSET PPC_EXC_GPR_OFFSET(13) +#define GPR14_OFFSET PPC_EXC_GPR_OFFSET(14) +#define GPR15_OFFSET PPC_EXC_GPR_OFFSET(15) +#define GPR16_OFFSET PPC_EXC_GPR_OFFSET(16) +#define GPR17_OFFSET PPC_EXC_GPR_OFFSET(17) +#define GPR18_OFFSET PPC_EXC_GPR_OFFSET(18) +#define GPR19_OFFSET PPC_EXC_GPR_OFFSET(19) +#define GPR20_OFFSET PPC_EXC_GPR_OFFSET(20) +#define GPR21_OFFSET PPC_EXC_GPR_OFFSET(21) +#define GPR22_OFFSET PPC_EXC_GPR_OFFSET(22) +#define GPR23_OFFSET PPC_EXC_GPR_OFFSET(23) +#define GPR24_OFFSET PPC_EXC_GPR_OFFSET(24) +#define GPR25_OFFSET PPC_EXC_GPR_OFFSET(25) +#define GPR26_OFFSET PPC_EXC_GPR_OFFSET(26) +#define GPR27_OFFSET PPC_EXC_GPR_OFFSET(27) +#define GPR28_OFFSET PPC_EXC_GPR_OFFSET(28) +#define GPR29_OFFSET PPC_EXC_GPR_OFFSET(29) +#define GPR30_OFFSET PPC_EXC_GPR_OFFSET(30) +#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 PPC_EXC_FRAME_SIZE #ifdef __ALTIVEC__ #define EXC_VEC_OFFSET EXC_GENERIC_SIZE @@ -237,42 +246,42 @@ typedef struct { unsigned EXC_SRR0; unsigned EXC_SRR1; 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_CTR; unsigned EXC_XER; 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_DAR; } BSP_Exception_frame; |