Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/sparc64/sparc64 Fixup calculating where fpstate sho...
details: https://anonhg.NetBSD.org/src/rev/38367b3f7c7e
branches: trunk
changeset: 500154:38367b3f7c7e
user: eeh <eeh%NetBSD.org@localhost>
date: Thu Dec 07 00:59:42 2000 +0000
description:
Fixup calculating where fpstate should be saved in the signal trampoline
code so it doesn't overwrite something important like the registers.
diffstat:
sys/arch/sparc64/sparc64/locore.s | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diffs (53 lines):
diff -r 0957932c5017 -r 38367b3f7c7e sys/arch/sparc64/sparc64/locore.s
--- a/sys/arch/sparc64/sparc64/locore.s Thu Dec 07 00:53:29 2000 +0000
+++ b/sys/arch/sparc64/sparc64/locore.s Thu Dec 07 00:59:42 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.106 2000/11/09 00:35:02 eeh Exp $ */
+/* $NetBSD: locore.s,v 1.107 2000/12/07 00:59:42 eeh Exp $ */
/*
* Copyright (c) 1996-2000 Eduardo Horvath
* Copyright (c) 1996 Paul Kranenburg
@@ -6482,15 +6482,14 @@
! fpu is enabled, oh well
stx %fsr, [%sp + CC64FSZ + BIAS + 0]
- add %sp, BIAS, %l0 ! Generate a pointer so we can
+ add %sp, BIAS+CC64FSZ+BLOCK_SIZE, %l0 ! Generate a pointer so we can
andn %l0, BLOCK_ALIGN, %l0 ! do a block store
stda %f0, [%l0] ASI_BLK_P
inc BLOCK_SIZE, %l0
stda %f16, [%l0] ASI_BLK_P
1:
bz,pt %icc, 2f
- rd %y, %l1 ! in any case, save %y
- add %sp, BIAS, %l0 ! Generate a pointer so we can
+ add %sp, BIAS+CC64FSZ+BLOCK_SIZE, %l0 ! Generate a pointer so we can
andn %l0, BLOCK_ALIGN, %l0 ! do a block store
add %l0, 2*BLOCK_SIZE, %l0 ! and skip what we already stored
stda %f32, [%l0] ASI_BLK_P
@@ -6498,6 +6497,7 @@
stda %f48, [%l0] ASI_BLK_P
2:
membar #StoreLoad
+ rd %y, %l1 ! in any case, save %y
lduw [%fp + BIAS + 128], %o0 ! sig
lduw [%fp + BIAS + 128 + 4], %o1 ! code
call %g1 ! (*sa->sa_handler)(sig,code,scp)
@@ -6514,7 +6514,7 @@
btst 2, %l0 ! test du
ldx [%sp + CC64FSZ + BIAS + 0], %fsr
- add %sp, BIAS, %l0 ! Generate a pointer so we can
+ add %sp, BIAS+CC64FSZ+BLOCK_SIZE, %l0 ! Generate a pointer so we can
andn %l0, BLOCK_ALIGN, %l0 ! do a block load
ldda [%l0] ASI_BLK_P, %f0
inc BLOCK_SIZE, %o0
@@ -6522,7 +6522,7 @@
1:
bz,pt %icc, 2f
wr %l1, %g0, %y ! in any case, restore %y
- add %sp, BIAS, %l0 ! Generate a pointer so we can
+ add %sp, BIAS+CC64FSZ+BLOCK_SIZE, %l0 ! Generate a pointer so we can
andn %l0, BLOCK_ALIGN, %l0 ! do a block load
inc 2*BLOCK_SIZE, %o0 ! and skip what we already loaded
ldda [%l0] ASI_BLK_P, %f32
Home |
Main Index |
Thread Index |
Old Index