powerpc/power8: Update denormalization handler
authorMichael Neuling <mikey@neuling.org>
Wed, 29 May 2013 21:33:19 +0000 (21:33 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Sun, 9 Jun 2013 22:36:26 +0000 (08:36 +1000)
POWER8 can take a denormalisation exception on any VSX registers.

This does the extra 32 VSX registers we don't currently handle.

Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/exceptions-64s.S

index 3c9296b..e783453 100644 (file)
@@ -480,6 +480,16 @@ FTR_SECTION_ELSE
        XVCPSGNDP32(0)
 
 ALT_FTR_SECTION_END_IFCLR(CPU_FTR_ARCH_206)
+
+BEGIN_FTR_SECTION
+       b       denorm_done
+END_FTR_SECTION_IFCLR(CPU_FTR_ARCH_207S)
+/*
+ * To denormalise we need to move a copy of the register to itself.
+ * For POWER8 we need to do that for all 64 VSX registers
+ */
+       XVCPSGNDP32(32)
+denorm_done:
        mtspr   SPRN_HSRR0,r11
        mtcrf   0x80,r9
        ld      r9,PACA_EXGEN+EX_R9(r13)