summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2011-02-17 11:19:43 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2011-02-17 11:19:43 +0000
commit2888a652a6ba3bdb50ce76221e1831276634cab3 (patch)
tree1c3ea2765ace9fe267cb6771cd502990ffe61262 /c
parent2011-02-17 Sebastian Huber <Sebastian.Huber@embedded-brains.de> (diff)
downloadrtems-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/ChangeLog6
-rw-r--r--c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/vectors.h149
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;