From 1d14763d8f3a0f1416a6d5d2a5bc2296da5da098 Mon Sep 17 00:00:00 2001 From: Michael Shalayeff Date: Tue, 9 Mar 2004 04:43:56 +0000 Subject: faster cache flushing for fpu context (after save or emulation) --- sys/arch/hppa/hppa/locore.S | 50 ++++++++++++++++++--------------------------- 1 file changed, 20 insertions(+), 30 deletions(-) (limited to 'sys/arch/hppa') diff --git a/sys/arch/hppa/hppa/locore.S b/sys/arch/hppa/hppa/locore.S index e29f05075e4..bf98f512881 100644 --- a/sys/arch/hppa/hppa/locore.S +++ b/sys/arch/hppa/hppa/locore.S @@ -1,4 +1,4 @@ -/* $OpenBSD: locore.S,v 1.121 2003/12/17 15:35:40 miod Exp $ */ +/* $OpenBSD: locore.S,v 1.122 2004/03/09 04:43:55 mickey Exp $ */ /* * Copyright (c) 1998-2003 Michael Shalayeff @@ -2226,21 +2226,16 @@ LEAF_ENTRY(fpu_save) fstds,ma %fr29, 8(arg0) fstds,ma %fr30, 8(arg0) fstds %fr31, 0(arg0) - fdc r0(arg0) - ldo -56(arg0), arg0 - fdc r0(arg0) - ldo -32(arg0), arg0 - fdc r0(arg0) - ldo -32(arg0), arg0 - fdc r0(arg0) - ldo -32(arg0), arg0 - fdc r0(arg0) - ldo -32(arg0), arg0 - fdc r0(arg0) - ldo -32(arg0), arg0 - fdc r0(arg0) - ldo -32(arg0), arg0 - fdc r0(arg0) + ldo -24(arg0), arg0 + ldi -32, r25 /* gotta be free for all callers */ + fdc,m r25(arg0) + fdc,m r25(arg0) + fdc,m r25(arg0) + fdc,m r25(arg0) + fdc,m r25(arg0) + fdc,m r25(arg0) + fdc,m r25(arg0) + fdc,m r25(arg0) bv r0(rp) sync EXIT(fpu_save) @@ -2311,21 +2306,16 @@ ENTRY($fpu_emulate,320) nop mfctl cr30, arg0 + ldi 32, r1 + fdc,m r1(arg0) + fdc,m r1(arg0) + fdc,m r1(arg0) + fdc,m r1(arg0) + fdc,m r1(arg0) + fdc,m r1(arg0) + fdc,m r1(arg0) fdc r0(arg0) - ldo 32(arg0), arg0 - fdc r0(arg0) - ldo 32(arg0), arg0 - fdc r0(arg0) - ldo 32(arg0), arg0 - fdc r0(arg0) - ldo 32(arg0), arg0 - fdc r0(arg0) - ldo 32(arg0), arg0 - fdc r0(arg0) - ldo 32(arg0), arg0 - fdc r0(arg0) - ldo 32(arg0), arg0 - fdc r0(arg0) + sync ldil L%fpemu_stack, r31 ldw R%fpemu_stack(r31), r31 -- cgit v1.2.3