source: bootcd/isolinux/syslinux-6.03/core/thread/thread_asm.S

Last change on this file was e16e8f2, checked in by Edwin Eefting <edwin@datux.nl>, 3 years ago

bootstuff

  • Property mode set to 100644
File size: 761 bytes
Line 
1        .globl  __switch_to
2        .type   __switch_to, @function
3__switch_to:
4        movl    __current, %edx
5        pushl   %ebx
6        pushl   %ebp
7        pushl   %esi
8        pushl   %edi
9        pushl   RealModeSSSP
10        pushl   errno                   /* Hack! */
11        movl    %esp, (%edx)
12
13        movl    %eax, __current
14        movl    (%eax), %esp
15        popl    errno
16        popl    RealModeSSSP
17        popl    %edi
18        popl    %esi
19        popl    %ebp
20        popl    %ebx
21        ret
22        .size   __switch_to, .-__switch_to
23
24        .globl  __start_thread
25        .type   __start_thread, @function
26__start_thread:
27        movl    %edi, %eax              /* Thread function argument */
28
29        pushl   $0                      /* For gdb's benefit */
30        movl    %esp, %ebp              /* For gdb's benefit */
31
32        pushl   %ebx                    /* Set up the flags/interrupt state */
33        popfl
34
35        call    *%esi                   /* Run the desired function */
36        jmp     __exit_thread           /* If we get here, kill the thread */
37        .size   __start_thread, .-__start_thread
Note: See TracBrowser for help on using the repository browser.