This patch enables alignment handling for the load/store floating point
pair instructions (lfdp, lfdpx, stfdp, stfdpx). The handler routine
is properly coded and only needs to be enabled.
Signed-off-by: Tom Musta <tmusta@gmail.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
* Only POWER6 has these instructions, and it does true little-endian,
* so we don't need the address swizzling.
*/
-#ifdef __BIG_ENDIAN__
static int emulate_fp_pair(unsigned char __user *addr, unsigned int reg,
unsigned int flags)
{
return -EFAULT;
return 1; /* exception handled and fixed up */
}
-#endif
#ifdef CONFIG_SPE
/* Special case for 16-byte FP loads and stores */
if (nb == 16) {
-#ifdef __BIG_ENDIAN__
PPC_WARN_ALIGNMENT(fp_pair, regs);
return emulate_fp_pair(addr, reg, flags);
-#else
- return -EFAULT;
-#endif
}
PPC_WARN_ALIGNMENT(unaligned, regs);