- Remove crud.

- Don't use the ci_self150 hack.
This commit is contained in:
ad 2007-08-05 10:50:26 +00:00
parent c00e7b9809
commit 9d841d6e31

View File

@ -1,4 +1,4 @@
/* $NetBSD: spl.S,v 1.16 2007/05/17 14:51:21 yamt Exp $ */ /* $NetBSD: spl.S,v 1.17 2007/08/05 10:50:26 ad Exp $ */
/* /*
* Copyright (c) 1998, 2007 The NetBSD Foundation, Inc. * Copyright (c) 1998, 2007 The NetBSD Foundation, Inc.
@ -38,6 +38,7 @@
#include "opt_vm86.h" #include "opt_vm86.h"
#include "opt_ddb.h" #include "opt_ddb.h"
#include <machine/asm.h> #include <machine/asm.h>
#include <machine/trap.h> #include <machine/trap.h>
#include <machine/segments.h> #include <machine/segments.h>
@ -45,36 +46,11 @@
#include "assym.h" #include "assym.h"
.data
.globl _C_LABEL(netisr)
.text .text
#if 0
#if defined(PROF) || defined(GPROF)
/*
* XXXX TODO
*/
.globl _C_LABEL(splhigh), _C_LABEL(splx)
ALIGN_TEXT
_C_LABEL(splhigh):
movl $IPL_HIGH,%eax
xchgl %eax,CPUVAR(ILEVEL)
ret
ALIGN_TEXT
_C_LABEL(splx):
movl 4(%esp),%ecx
SPLLOWER(_C_LABEL(Xspllower))
/* ret */
#endif /* PROF || GPROF */
#endif
/* /*
* int splraise(int s); * int splraise(int s);
*/ */
.align 32
ENTRY(splraise) ENTRY(splraise)
movl 4(%esp),%edx movl 4(%esp),%edx
movl CPUVAR(ILEVEL),%eax movl CPUVAR(ILEVEL),%eax
@ -89,8 +65,6 @@ ENTRY(splraise)
* *
* Software interrupt registration. * Software interrupt registration.
*/ */
.align 32
ENTRY(softintr) ENTRY(softintr)
movl 4(%esp),%ecx movl 4(%esp),%ecx
movl $1,%eax movl $1,%eax
@ -105,26 +79,23 @@ ENTRY(softintr)
* i686_spllower(). This must use pushf/cli/popf as it is used * i686_spllower(). This must use pushf/cli/popf as it is used
* early in boot where interrupts are disabled via eflags/IE. * early in boot where interrupts are disabled via eflags/IE.
*/ */
.align 64
ENTRY(spllower) ENTRY(spllower)
movl CPUVAR(SELF150), %eax
movl 4(%esp), %ecx movl 4(%esp), %ecx
cmpl (CPU_INFO_ILEVEL-0x150)(%eax), %ecx cmpl CPUVAR(ILEVEL), %ecx
jae 1f jae 1f
movl (CPU_INFO_IUNMASK-0x150)(%eax,%ecx,4), %edx movl CPUVAR(IUNMASK)(,%ecx,4), %edx
pushf pushf
cli cli
testl (CPU_INFO_IPENDING-0x150)(%eax), %edx testl CPUVAR(IPENDING), %edx
jnz 2f jnz 2f
movl %ecx, (CPU_INFO_ILEVEL-0x150)(%eax) movl %ecx, CPUVAR(ILEVEL)
popf popf
1: 1:
ret ret
2: 2:
popf popf
jmp _C_LABEL(Xspllower) jmp _C_LABEL(Xspllower)
.align 64 .align 32
LABEL(spllower_end) LABEL(spllower_end)
/* /*
@ -140,8 +111,6 @@ LABEL(spllower_end)
* edx : eax = old level / old ipending * edx : eax = old level / old ipending
* ecx : ebx = new level / old ipending * ecx : ebx = new level / old ipending
*/ */
.align 64
ENTRY(i686_spllower) ENTRY(i686_spllower)
movl 4(%esp),%ecx movl 4(%esp),%ecx
movl CPUVAR(ILEVEL),%edx movl CPUVAR(ILEVEL),%edx
@ -166,7 +135,7 @@ ENTRY(i686_spllower)
popl %ebx popl %ebx
LABEL(i686_spllower_patch) LABEL(i686_spllower_patch)
jmp _C_LABEL(Xspllower) jmp _C_LABEL(Xspllower)
.align 64 .align 32
LABEL(i686_spllower_end) LABEL(i686_spllower_end)
/* /*
@ -187,8 +156,7 @@ LABEL(i686_spllower_end)
* the sending CPU will never see the that CPU accept the IPI * the sending CPU will never see the that CPU accept the IPI
* (see pmap_tlb_shootnow). * (see pmap_tlb_shootnow).
*/ */
nop nop /* Don't get confused with i686_spllower_end */
.align 4 /* Don't get confused with i686_spllower_end */
IDTVEC(spllower) IDTVEC(spllower)
#if defined(DDB) || defined(GPROF) #if defined(DDB) || defined(GPROF)