Index: linux-2.6-ozlabs/include/asm-powerpc/processor.h
===================================================================
--- linux-2.6-ozlabs.orig/include/asm-powerpc/processor.h
+++ linux-2.6-ozlabs/include/asm-powerpc/processor.h
@@ -78,6 +78,7 @@ extern long kernel_thread(int (*fn)(void
/* Lazy FPU handling on uni-processor */
extern struct task_struct *last_task_used_math;
extern struct task_struct *last_task_used_altivec;
+extern struct task_struct *last_task_used_vsx;
extern struct task_struct *last_task_used_spe;
#ifdef CONFIG_PPC32
@@ -136,8 +137,13 @@ typedef struct {
unsigned long seg;
} mm_segment_t;
+#ifdef CONFIG_VSX
+#define TS_FPR(i) fpvsr[i].fpr.fp
+#define TS_FPRSTART fpvsr
+#else
#define TS_FPR(i) fpr[i]
#define TS_FPRSTART fpr
+#endif
struct thread_struct {
unsigned long ksp; /* Kernel stack pointer */
@@ -155,8 +161,19 @@ struct thread_struct {
unsigned long dbcr0; /* debug control register values */
unsigned long dbcr1;
#endif
+#ifdef CONFIG_VSX
+ /* First 32 VSX registers (overlap with fpr[32]) */
+ union {
+ struct {
+ double fp;
s/fp/fpr
+ double vsrlow;
+ } fpr;
+ vector128 vsr;
+ } fpvsr[32];
+#else
double fpr[32]; /* Complete floating point set */
- struct { /* fpr ... fpscr must be contiguous */
+#endif
+ struct {
unsigned int pad;
unsigned int val; /* Floating point status */
So if I search correctly I count 2 uses of .vsr. Seems like we could
easily make those two cases use .fp and drop the union.
- k
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev