Add back x86_32 support #5
|
@ -125,6 +125,7 @@ elseif("${BANAN_ARCH}" STREQUAL "i386")
|
||||||
${KERNEL_SOURCES}
|
${KERNEL_SOURCES}
|
||||||
arch/i386/boot.S
|
arch/i386/boot.S
|
||||||
arch/i386/PageTable.cpp
|
arch/i386/PageTable.cpp
|
||||||
|
arch/i386/Signal.S
|
||||||
arch/i386/Syscall.S
|
arch/i386/Syscall.S
|
||||||
arch/i386/Thread.S
|
arch/i386/Thread.S
|
||||||
)
|
)
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
.section .userspace, "aw"
|
||||||
|
|
||||||
|
// stack contains
|
||||||
|
// return address
|
||||||
|
// signal number
|
||||||
|
// signal handler
|
||||||
|
|
||||||
|
.global signal_trampoline
|
||||||
|
signal_trampoline:
|
||||||
|
pushl %ebp
|
||||||
|
movl %esp, %ebp
|
||||||
|
subl $8, %esp
|
||||||
|
|
||||||
|
pusha
|
||||||
|
|
||||||
|
movl 40(%esp), %edi
|
||||||
|
movl 36(%esp), %eax
|
||||||
|
|
||||||
|
subl $12, %esp
|
||||||
|
pushl %edi
|
||||||
|
call *%eax
|
||||||
|
addl $16, %esp
|
||||||
|
|
||||||
|
popa
|
||||||
|
|
||||||
|
leave
|
||||||
|
addl $8, %esp
|
||||||
|
|
||||||
|
ret
|
Loading…
Reference in New Issue