Kernel: Cleanup 32 bit interrupt stack alignment
This commit is contained in:
parent
15045cc486
commit
0f936fc163
|
@ -40,8 +40,7 @@ isr_stub:
|
||||||
movl 56(%esp), %edx // isr number
|
movl 56(%esp), %edx // isr number
|
||||||
|
|
||||||
movl %esp, %ebp
|
movl %esp, %ebp
|
||||||
subl $15, %esp
|
andl $-16, %esp
|
||||||
andl $0xFFFFFFF0, %esp
|
|
||||||
|
|
||||||
pushl %eax
|
pushl %eax
|
||||||
pushl %ebx
|
pushl %ebx
|
||||||
|
@ -61,14 +60,13 @@ irq_stub:
|
||||||
load_kernel_segments
|
load_kernel_segments
|
||||||
cld
|
cld
|
||||||
|
|
||||||
movl 40(%esp), %eax # interrupt number
|
movl 40(%esp), %edi # interrupt number
|
||||||
|
|
||||||
movl %esp, %ebp
|
movl %esp, %ebp
|
||||||
subl $15, %esp
|
andl $-16, %esp
|
||||||
andl $0xFFFFFFF0, %esp
|
|
||||||
|
|
||||||
subl $12, %esp
|
subl $12, %esp
|
||||||
pushl %eax
|
pushl %edi
|
||||||
call cpp_irq_handler
|
call cpp_irq_handler
|
||||||
|
|
||||||
movl %ebp, %esp
|
movl %ebp, %esp
|
||||||
|
@ -83,16 +81,15 @@ asm_yield_handler:
|
||||||
pushal
|
pushal
|
||||||
cld
|
cld
|
||||||
|
|
||||||
movl %esp, %eax # interrupt registers ptr
|
leal 32(%esp), %edi # interrupt stack ptr
|
||||||
leal 32(%esp), %ebx # interrupt stack ptr
|
movl %esp, %esi # interrupt registers ptr
|
||||||
|
|
||||||
movl %esp, %ebp
|
movl %esp, %ebp
|
||||||
subl $15, %esp
|
andl $-16, %esp
|
||||||
andl $0xFFFFFFF0, %esp
|
|
||||||
|
|
||||||
subl $8, %esp
|
subl $8, %esp
|
||||||
pushl %eax
|
pushl %esi
|
||||||
pushl %ebx
|
pushl %edi
|
||||||
call cpp_yield_handler
|
call cpp_yield_handler
|
||||||
|
|
||||||
movl %ebp, %esp
|
movl %ebp, %esp
|
||||||
|
@ -107,8 +104,7 @@ asm_ipi_handler:
|
||||||
cld
|
cld
|
||||||
|
|
||||||
movl %esp, %ebp
|
movl %esp, %ebp
|
||||||
subl $15, %esp
|
andl $-16, %esp
|
||||||
andl $0xFFFFFFF0, %esp
|
|
||||||
|
|
||||||
call cpp_ipi_handler
|
call cpp_ipi_handler
|
||||||
|
|
||||||
|
@ -117,7 +113,6 @@ asm_ipi_handler:
|
||||||
pop_userspace
|
pop_userspace
|
||||||
iret
|
iret
|
||||||
|
|
||||||
|
|
||||||
.global asm_timer_handler
|
.global asm_timer_handler
|
||||||
asm_timer_handler:
|
asm_timer_handler:
|
||||||
push_userspace
|
push_userspace
|
||||||
|
@ -125,8 +120,7 @@ asm_timer_handler:
|
||||||
cld
|
cld
|
||||||
|
|
||||||
movl %esp, %ebp
|
movl %esp, %ebp
|
||||||
subl $15, %esp
|
andl $-16, %esp
|
||||||
andl $0xFFFFFFF0, %esp
|
|
||||||
|
|
||||||
call cpp_timer_handler
|
call cpp_timer_handler
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue