From 43ebaf27dff4db7c389a3f9309d26251f58a8cad Mon Sep 17 00:00:00 2001 From: martin Date: Thu, 5 Jul 2007 20:21:11 +0000 Subject: [PATCH] sparc64_ipi_save_fpstate is not a leaf function - create a full grown stack frame. --- sys/arch/sparc64/sparc64/locore.s | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/sys/arch/sparc64/sparc64/locore.s b/sys/arch/sparc64/sparc64/locore.s index 4848df9b6320..144ddcc5a314 100644 --- a/sys/arch/sparc64/sparc64/locore.s +++ b/sys/arch/sparc64/sparc64/locore.s @@ -1,4 +1,4 @@ -/* $NetBSD: locore.s,v 1.250 2007/05/28 20:09:50 mrg Exp $ */ +/* $NetBSD: locore.s,v 1.251 2007/07/05 20:21:11 martin Exp $ */ /* * Copyright (c) 1996-2002 Eduardo Horvath @@ -9453,25 +9453,15 @@ Lkcerr: #ifdef MULTIPROCESSOR ENTRY(sparc64_ipi_save_fpstate) - mov %o0, %g1 ! save registers used by savefpstate - mov %o1, %g2 ! to alternate globals - mov %o2, %g3 - mov %o3, %g4 - mov %o4, %g5 - mov %o5, %g6 + save %sp, -CC64FSZ, %sp sethi %hi(CPUINFO_VA + CI_FPLWP), %o0 ldx [%o0 + %lo(CPUINFO_VA + CI_FPLWP)], %o0 call savefpstate ldx [%o0 + L_FPSTATE], %o0 sethi %hi(CPUINFO_VA + CI_FPLWP), %o0 stx %g0, [%o0 + %lo(CPUINFO_VA + CI_FPLWP)] ! fplwp = NULL - mov %g6, %o5 ! restore saved registers - mov %g5, %o4 - mov %g4, %o3 - mov %g3, %o2 - mov %g2, %o1 ba ret_from_intr_vector - mov %g1, %o0 + restore ENTRY(sparc64_ipi_drop_fpstate) mov %o0, %g1 ! save registers used here