~ubuntu-branches/ubuntu/vivid/gcl/vivid

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
        .globl _SignalManager
_SignalManager:
	pushl	%ebp
	movl	%esp,%ebp
        /*-------------------------------------------------------------------
        ** Save all registers
        **-----------------------------------------------------------------*/
        pushl   %eax
        pushl   %ebx
        pushl   %ecx
        pushl   %edx
        pushl   %esi
        pushl   %edi
        pushf
        pushl   %es
        pushl   %ds
/*        pushl   %ss*/
        pushl   %fs
        pushl   %gs
        /*-----------------------------------------------------------------*/

        movl    4(%ebp), %eax
        shl     $2, %eax
        movl    _SignalTable(%eax), %ebx
        call    %ebx

        /*-------------------------------------------------------------------
        ** Restore registers
        **-----------------------------------------------------------------*/
        popl    %gs
        popl    %fs
/*        popl    %ss*/
        popl    %ds
        popl    %es
        popf
        popl    %edi
        popl    %esi
        popl    %edx
        popl    %ecx
        popl    %ebx
        popl    %eax
        /*------------------------------------------------------------------*/

        popl    %ebp
        add     $4, %esp

        ret     /* resume program */