3 /* Originally gcc generated, modified by hand */
5 #include <linux/linkage.h>
6 #include <asm/segment.h>
11 ENTRY(swsusp_arch_suspend)
15 call save_processor_state
17 movl %esp, saved_context_esp
18 movl %eax, saved_context_eax
19 movl %ebx, saved_context_ebx
20 movl %ecx, saved_context_ecx
21 movl %edx, saved_context_edx
22 movl %ebp, saved_context_ebp
23 movl %esi, saved_context_esi
24 movl %edi, saved_context_edi
25 pushfl ; popl saved_context_eflags
31 movl $swapper_pg_dir-__PAGE_OFFSET,%ecx
42 movl pagedir_nosave,%ecx
46 movl 4(%ecx,%eax),%ebx
51 movl %eax, %cr3; # flush TLB
63 cmpl nr_copy_pages,%eax
71 movl saved_context_esp, %esp
72 movl saved_context_ebp, %ebp
73 movl saved_context_eax, %eax
74 movl saved_context_ebx, %ebx
75 movl saved_context_ecx, %ecx
76 movl saved_context_edx, %edx
77 movl saved_context_esi, %esi
78 movl saved_context_edi, %edi
79 call restore_processor_state
80 pushl saved_context_eflags ; popfl