diff options
author | tegge <tegge@FreeBSD.org> | 1997-12-15 02:18:35 +0000 |
---|---|---|
committer | tegge <tegge@FreeBSD.org> | 1997-12-15 02:18:35 +0000 |
commit | ba494eff3a511b2f5c5d9bbc02686772b9ed4de7 (patch) | |
tree | 6d2e4d72fd7140f16dc511d497a2d2acfcae6f26 /sys/i386/isa/apic_ipl.s | |
parent | da6ab2349a36aff5f17c3d322976dace8fa64ac7 (diff) | |
download | FreeBSD-src-ba494eff3a511b2f5c5d9bbc02686772b9ed4de7.zip FreeBSD-src-ba494eff3a511b2f5c5d9bbc02686772b9ed4de7.tar.gz |
Add support for low resolution SMP kernel profiling.
- A nonprofiling version of s_lock (called s_lock_np) is used
by mcount.
- When profiling is active, more registers are clobbered in
seemingly simple assembly routines. This means that some
callers needed to save/restore extra registers.
- The stack pointer must have space for a 'fake' return address
in idle, to avoid stack underflow.
Diffstat (limited to 'sys/i386/isa/apic_ipl.s')
-rw-r--r-- | sys/i386/isa/apic_ipl.s | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/i386/isa/apic_ipl.s b/sys/i386/isa/apic_ipl.s index e0c6027..7635445 100644 --- a/sys/i386/isa/apic_ipl.s +++ b/sys/i386/isa/apic_ipl.s @@ -22,7 +22,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: apic_ipl.s,v 1.35 1997/09/07 19:23:45 smp Exp smp $ + * $Id: apic_ipl.s,v 1.16 1997/09/07 22:02:28 fsmp Exp $ */ @@ -137,7 +137,9 @@ splz_unpend: je splz_next /* "can't happen" */ cmpl $NHWI,%ecx jae splz_swi + pushl %ecx AICPL_UNLOCK + popl %ecx /* * We would prefer to call the intr handler directly here but that @@ -158,7 +160,9 @@ splz_swi: pushl %eax orl imasks(,%ecx,4),%eax movl %eax,_cpl + pushl %edx AICPL_UNLOCK + popl %edx call %edx AICPL_LOCK popl %eax |