3 /* Originally gcc generated, modified by hand */
5 #include <linux/linkage.h>
6 #include <asm/segment.h>
11 .globl saved_context_eax, saved_context_ebx
12 .globl saved_context_ecx, saved_context_edx
13 .globl saved_context_esp, saved_context_ebp
14 .globl saved_context_esi, saved_context_edi
15 .globl saved_context_eflags
41 call do_magic_suspend_1
42 call save_processor_state
44 movl %esp, saved_context_esp
45 movl %eax, saved_context_eax
46 movl %ebx, saved_context_ebx
47 movl %ecx, saved_context_ecx
48 movl %edx, saved_context_edx
49 movl %ebp, saved_context_ebp
50 movl %esi, saved_context_esi
51 movl %edi, saved_context_edi
52 pushfl ; popl saved_context_eflags
54 call do_magic_suspend_2
58 movl $swapper_pg_dir-__PAGE_OFFSET,%ecx
61 call do_magic_resume_1
70 movl pagedir_nosave,%ecx
74 movl 4(%ecx,%eax),%ebx
79 movl %eax, %cr3; # flush TLB
91 cmpl nr_copy_pages,%eax
99 movl saved_context_esp, %esp
100 movl saved_context_ebp, %ebp
101 movl saved_context_eax, %eax
102 movl saved_context_ebx, %ebx
103 movl saved_context_ecx, %ecx
104 movl saved_context_edx, %edx
105 movl saved_context_esi, %esi
106 movl saved_context_edi, %edi
107 call restore_processor_state
108 pushl saved_context_eflags ; popfl
109 call do_magic_resume_2
114 .section .data.nosave