aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Neuling <mikey@neuling.org>2013-05-29 17:33:19 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2013-06-09 18:36:26 -0400
commitfb0fce3e554e5513aaa1c1c52b2ece11feea3c7d (patch)
treee4cfbf84c5519efd83dbf9cfce5c0e88c5a3a191
parentd7c67fb1cf00b84829ae06fca04ad39408f156ba (diff)
powerpc/power8: Update denormalization handler
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>
-rw-r--r--arch/powerpc/kernel/exceptions-64s.S10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
index 3c9296bcf960..e783453f910d 100644
--- a/arch/powerpc/kernel/exceptions-64s.S
+++ b/arch/powerpc/kernel/exceptions-64s.S
@@ -480,6 +480,16 @@ FTR_SECTION_ELSE
480 XVCPSGNDP32(0) 480 XVCPSGNDP32(0)
481 481
482ALT_FTR_SECTION_END_IFCLR(CPU_FTR_ARCH_206) 482ALT_FTR_SECTION_END_IFCLR(CPU_FTR_ARCH_206)
483
484BEGIN_FTR_SECTION
485 b denorm_done
486END_FTR_SECTION_IFCLR(CPU_FTR_ARCH_207S)
487/*
488 * To denormalise we need to move a copy of the register to itself.
489 * For POWER8 we need to do that for all 64 VSX registers
490 */
491 XVCPSGNDP32(32)
492denorm_done:
483 mtspr SPRN_HSRR0,r11 493 mtspr SPRN_HSRR0,r11
484 mtcrf 0x80,r9 494 mtcrf 0x80,r9
485 ld r9,PACA_EXGEN+EX_R9(r13) 495 ld r9,PACA_EXGEN+EX_R9(r13)