summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2015-01-20 14:01:50 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2015-01-20 14:01:50 +0100
commit60d39b66e0660de4849a17885813d26a2bc374e7 (patch)
tree778ce56cc6f87c6a130405e2958a82d0368e78c6 /c/src/lib/libcpu
parentlibnetworking: Fix close of active sockets (diff)
downloadrtems-60d39b66e0660de4849a17885813d26a2bc374e7.tar.bz2
powerpc: Fix AltiVec VSCR save/restore
Diffstat (limited to 'c/src/lib/libcpu')
-rw-r--r--c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/vectors.h10
1 files changed, 6 insertions, 4 deletions
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 86bd0f11f2..f45c8338a2 100644
--- a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/vectors.h
+++ b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/vectors.h
@@ -147,8 +147,8 @@ extern "C" {
#define PPC_EXC_GPR_OFFSET(gpr) ((gpr) * PPC_GPR_SIZE + 36)
#define PPC_EXC_VECTOR_PROLOGUE_OFFSET PPC_EXC_GPR_OFFSET(4)
#if defined(PPC_MULTILIB_ALTIVEC) && defined(PPC_MULTILIB_FPU)
- #define PPC_EXC_VSCR_OFFSET 168
- #define PPC_EXC_VRSAVE_OFFSET 172
+ #define PPC_EXC_VRSAVE_OFFSET 168
+ #define PPC_EXC_VSCR_OFFSET 172
#define PPC_EXC_VR_OFFSET(v) ((v) * 16 + 176)
#define PPC_EXC_FR_OFFSET(f) ((f) * 8 + 688)
#define PPC_EXC_FPSCR_OFFSET 944
@@ -159,8 +159,8 @@ extern "C" {
#define PPC_EXC_MIN_FPSCR_OFFSET 528
#define PPC_EXC_MINIMAL_FRAME_SIZE 544
#elif defined(PPC_MULTILIB_ALTIVEC)
- #define PPC_EXC_VSCR_OFFSET 168
- #define PPC_EXC_VRSAVE_OFFSET 172
+ #define PPC_EXC_VRSAVE_OFFSET 168
+ #define PPC_EXC_VSCR_OFFSET 172
#define PPC_EXC_VR_OFFSET(v) ((v) * 16 + 176)
#define PPC_EXC_FRAME_SIZE 688
#define PPC_EXC_MIN_VSCR_OFFSET 92
@@ -304,7 +304,9 @@ typedef struct {
PPC_GPR_TYPE GPR12;
uint32_t EARLY_INSTANT;
#ifdef PPC_MULTILIB_ALTIVEC
+ /* This field must take stvewx/lvewx requirements into account */
uint32_t VSCR;
+
uint8_t V0[16];
uint8_t V1[16];
uint8_t V2[16];