powerpc: Fix offset of FPRs in VSX registers in little endian builds
The FPRs overlap the high doublewords of the first 32 VSX registers. Fix TS_FPROFFSET and TS_VSRLOWOFFSET so we access the correct fields in little endian mode. If VSX is disabled the FPRs are only one doubleword in length so TS_FPROFFSET needs adjusting in little endian. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
12f04f2be8
commit
e156bd8ad7
|
@ -14,8 +14,18 @@
|
|||
|
||||
#ifdef CONFIG_VSX
|
||||
#define TS_FPRWIDTH 2
|
||||
|
||||
#ifdef __BIG_ENDIAN__
|
||||
#define TS_FPROFFSET 0
|
||||
#define TS_VSRLOWOFFSET 1
|
||||
#else
|
||||
#define TS_FPROFFSET 1
|
||||
#define TS_VSRLOWOFFSET 0
|
||||
#endif
|
||||
|
||||
#else
|
||||
#define TS_FPRWIDTH 1
|
||||
#define TS_FPROFFSET 0
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PPC64
|
||||
|
@ -142,8 +152,6 @@ typedef struct {
|
|||
unsigned long seg;
|
||||
} mm_segment_t;
|
||||
|
||||
#define TS_FPROFFSET 0
|
||||
#define TS_VSRLOWOFFSET 1
|
||||
#define TS_FPR(i) fpr[i][TS_FPROFFSET]
|
||||
#define TS_TRANS_FPR(i) transact_fpr[i][TS_FPROFFSET]
|
||||
|
||||
|
|
Loading…
Reference in New Issue