summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authorjake <jake@FreeBSD.org>2000-12-01 02:09:45 +0000
committerjake <jake@FreeBSD.org>2000-12-01 02:09:45 +0000
commit198c36b485e44b0ed782f2fbc1109622dec8a13c (patch)
treebf900fac75d504c9a33119300798441fd1278c70 /sys/amd64
parent4b5687e270a11b427d9638ec4ec24e6b00c42807 (diff)
downloadFreeBSD-src-198c36b485e44b0ed782f2fbc1109622dec8a13c.zip
FreeBSD-src-198c36b485e44b0ed782f2fbc1109622dec8a13c.tar.gz
Change doreti to take a trapframe instead of an intrframe.
Remove associated pushes of dummy units to convert frame. Reviewed by: jhb
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/amd64/apic_vector.S6
-rw-r--r--sys/amd64/amd64/exception.S8
-rw-r--r--sys/amd64/amd64/exception.s8
-rw-r--r--sys/amd64/isa/atpic_vector.S4
-rw-r--r--sys/amd64/isa/icu_vector.S4
-rw-r--r--sys/amd64/isa/icu_vector.s4
6 files changed, 13 insertions, 21 deletions
diff --git a/sys/amd64/amd64/apic_vector.S b/sys/amd64/amd64/apic_vector.S
index 1f80224..adf4c36 100644
--- a/sys/amd64/amd64/apic_vector.S
+++ b/sys/amd64/amd64/apic_vector.S
@@ -59,7 +59,7 @@ IDTVEC(vec_name) ; \
lock ; \
incl (%eax) ; \
MEXITCOUNT ; \
- jmp doreti_next
+ jmp _doreti
#define IOAPICADDR(irq_num) CNAME(int_to_apicintpin) + 16 * (irq_num) + 8
#define REDIRIDX(irq_num) CNAME(int_to_apicintpin) + 16 * (irq_num) + 12
@@ -231,7 +231,7 @@ __CONCAT(Xresume,irq_num): ; \
APIC_ITRACE(apic_itrace_leave, irq_num, APIC_ITRACE_LEAVE) ; \
; \
MEXITCOUNT ; \
- jmp doreti_next
+ jmp _doreti
/*
* Handle "spurious INTerrupts".
@@ -386,7 +386,7 @@ _Xcpuast:
lock
incl CNAME(cpuast_cnt)
MEXITCOUNT
- jmp doreti_next
+ jmp _doreti
1:
/* We are already in the process of delivering an ast for this CPU */
POP_FRAME
diff --git a/sys/amd64/amd64/exception.S b/sys/amd64/amd64/exception.S
index b891c33..99584a6 100644
--- a/sys/amd64/amd64/exception.S
+++ b/sys/amd64/amd64/exception.S
@@ -183,6 +183,7 @@ IDTVEC(fpu)
call _npx_intr
call __mtx_exit_giant_def
+ addl $4,%esp
incb _intr_nesting_level
MEXITCOUNT
jmp _doreti
@@ -220,10 +221,8 @@ calltrap:
call _trap
/*
- * Return via _doreti to handle ASTs. Have to change trap frame
- * to interrupt frame.
+ * Return via _doreti to handle ASTs.
*/
- subl $4,%esp /* dummy unit to finish intr frame */
incb _intr_nesting_level
MEXITCOUNT
jmp _doreti
@@ -265,7 +264,6 @@ IDTVEC(syscall)
cli /* atomic astpending access */
cmpl $0,_astpending /* AST pending? */
je doreti_syscall_ret /* no, get out of here */
- subl $4,%esp /* dummy unit for interrupt frame */
movb $1,_intr_nesting_level
jmp _doreti
@@ -298,7 +296,6 @@ IDTVEC(int0x80_syscall)
cli /* atomic astpending access */
cmpl $0,_astpending /* AST pending? */
je doreti_syscall_ret /* no, get out of here */
- subl $4,%esp /* dummy unit for interrupt frame */
movb $1,_intr_nesting_level
jmp _doreti
@@ -334,7 +331,6 @@ ENTRY(fork_trampoline)
/*
* Return via _doreti to handle ASTs.
*/
- subl $4,%esp /* dummy unit to finish intr frame */
movb $1,_intr_nesting_level
MEXITCOUNT
jmp _doreti
diff --git a/sys/amd64/amd64/exception.s b/sys/amd64/amd64/exception.s
index b891c33..99584a6 100644
--- a/sys/amd64/amd64/exception.s
+++ b/sys/amd64/amd64/exception.s
@@ -183,6 +183,7 @@ IDTVEC(fpu)
call _npx_intr
call __mtx_exit_giant_def
+ addl $4,%esp
incb _intr_nesting_level
MEXITCOUNT
jmp _doreti
@@ -220,10 +221,8 @@ calltrap:
call _trap
/*
- * Return via _doreti to handle ASTs. Have to change trap frame
- * to interrupt frame.
+ * Return via _doreti to handle ASTs.
*/
- subl $4,%esp /* dummy unit to finish intr frame */
incb _intr_nesting_level
MEXITCOUNT
jmp _doreti
@@ -265,7 +264,6 @@ IDTVEC(syscall)
cli /* atomic astpending access */
cmpl $0,_astpending /* AST pending? */
je doreti_syscall_ret /* no, get out of here */
- subl $4,%esp /* dummy unit for interrupt frame */
movb $1,_intr_nesting_level
jmp _doreti
@@ -298,7 +296,6 @@ IDTVEC(int0x80_syscall)
cli /* atomic astpending access */
cmpl $0,_astpending /* AST pending? */
je doreti_syscall_ret /* no, get out of here */
- subl $4,%esp /* dummy unit for interrupt frame */
movb $1,_intr_nesting_level
jmp _doreti
@@ -334,7 +331,6 @@ ENTRY(fork_trampoline)
/*
* Return via _doreti to handle ASTs.
*/
- subl $4,%esp /* dummy unit to finish intr frame */
movb $1,_intr_nesting_level
MEXITCOUNT
jmp _doreti
diff --git a/sys/amd64/isa/atpic_vector.S b/sys/amd64/isa/atpic_vector.S
index 7644c03..51b9493 100644
--- a/sys/amd64/isa/atpic_vector.S
+++ b/sys/amd64/isa/atpic_vector.S
@@ -69,7 +69,7 @@ IDTVEC(vec_name) ; \
movl _intr_countp + (irq_num) * 4,%eax ; \
incl (%eax) ; \
MEXITCOUNT ; \
- jmp doreti_next
+ jmp _doreti
#if 0
; \
@@ -141,7 +141,7 @@ __CONCAT(Xresume,irq_num): ; \
MEXITCOUNT ; \
/* We could usually avoid the following jmp by inlining some of */ \
/* _doreti, but it's probably better to use less cache. */ \
- jmp doreti_next /* and catch up inside doreti */
+ jmp _doreti /* and catch up inside doreti */
MCOUNT_LABEL(bintr)
FAST_INTR(0,fastintr0, ENABLE_ICU1)
diff --git a/sys/amd64/isa/icu_vector.S b/sys/amd64/isa/icu_vector.S
index 7644c03..51b9493 100644
--- a/sys/amd64/isa/icu_vector.S
+++ b/sys/amd64/isa/icu_vector.S
@@ -69,7 +69,7 @@ IDTVEC(vec_name) ; \
movl _intr_countp + (irq_num) * 4,%eax ; \
incl (%eax) ; \
MEXITCOUNT ; \
- jmp doreti_next
+ jmp _doreti
#if 0
; \
@@ -141,7 +141,7 @@ __CONCAT(Xresume,irq_num): ; \
MEXITCOUNT ; \
/* We could usually avoid the following jmp by inlining some of */ \
/* _doreti, but it's probably better to use less cache. */ \
- jmp doreti_next /* and catch up inside doreti */
+ jmp _doreti /* and catch up inside doreti */
MCOUNT_LABEL(bintr)
FAST_INTR(0,fastintr0, ENABLE_ICU1)
diff --git a/sys/amd64/isa/icu_vector.s b/sys/amd64/isa/icu_vector.s
index 7644c03..51b9493 100644
--- a/sys/amd64/isa/icu_vector.s
+++ b/sys/amd64/isa/icu_vector.s
@@ -69,7 +69,7 @@ IDTVEC(vec_name) ; \
movl _intr_countp + (irq_num) * 4,%eax ; \
incl (%eax) ; \
MEXITCOUNT ; \
- jmp doreti_next
+ jmp _doreti
#if 0
; \
@@ -141,7 +141,7 @@ __CONCAT(Xresume,irq_num): ; \
MEXITCOUNT ; \
/* We could usually avoid the following jmp by inlining some of */ \
/* _doreti, but it's probably better to use less cache. */ \
- jmp doreti_next /* and catch up inside doreti */
+ jmp _doreti /* and catch up inside doreti */
MCOUNT_LABEL(bintr)
FAST_INTR(0,fastintr0, ENABLE_ICU1)
OpenPOWER on IntegriCloud