Subversion Repositories HelenOS

Rev

Rev 49 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 49 Rev 50
Line 28... Line 28...
28
 
28
 
29
.text
29
.text
30
 
30
 
31
.global context_save
31
.global context_save
32
.global context_restore
32
.global context_restore
33
 
-
 
-
 
33
.global fpu_context_save
-
 
34
.global fpu_context_restore
-
 
35
.global fpu_lazy_context_save
-
 
36
.global fpu_lazy_context_restore
34
 
37
 
35
#
38
#
36
# save context of this CPU
39
# save context of this CPU
37
context_save:
40
context_save:
38
	push %ebx
41
	push %ebx
Line 74... Line 77...
74
	movl %eax,(%esp)	# ctx->pc -> saver's return %eip
77
	movl %eax,(%esp)	# ctx->pc -> saver's return %eip
75
        xorl %eax,%eax		# context_restore returns 0
78
        xorl %eax,%eax		# context_restore returns 0
76
	ret
79
	ret
77
 
80
 
78
 
81
 
79
.global fpu_context_save
-
 
80
fpu_context_save:
82
fpu_context_save:
81
        ret
83
        ret
82
.global fpu_context_restore
-
 
-
 
84
 
83
fpu_context_restore:
85
fpu_context_restore:
84
        ret
86
        ret
85
 
87
 
86
.global fpu_lazy_context_save
-
 
87
fpu_lazy_context_save:
88
fpu_lazy_context_save:
-
 
89
	pushl %eax
88
        mov 4(%esp),%eax;
90
        mov 8(%esp),%eax
89
        fxsave (%eax)
91
        fxsave (%eax)
90
        xor %eax,%eax;
92
        popl %eax
91
        ret;
93
        ret
92
.global fpu_lazy_context_restore
-
 
-
 
94
 
93
fpu_lazy_context_restore:
95
fpu_lazy_context_restore:
-
 
96
	pushl %eax
94
        mov 4(%esp),%eax;
97
        mov 8(%esp),%eax
95
        fxrstor (%eax)
98
        fxrstor (%eax)
96
        xor %eax,%eax;
99
        popl %eax
97
       ret;
100
        ret
98
 
101