Subversion Repositories HelenOS

Rev

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

Rev 3146 Rev 3274
Line 28... Line 28...
28
#
28
#
29
 
29
 
30
#include <stack.h>
30
#include <stack.h>
31
#include <register.h>
31
#include <register.h>
32
 
32
 
-
 
33
.register       %g2, #scratch
-
 
34
.register       %g3, #scratch
-
 
35
 
33
.text
36
.text
34
 
37
 
35
.global halt
38
.global halt
36
.global memcpy
39
.global memcpy
37
.global jump_to_kernel
40
.global jump_to_kernel
Line 39... Line 42...
39
halt:
42
halt:
40
	b halt
43
	b halt
41
	nop
44
	nop
42
	
45
	
43
memcpy:
46
memcpy:
44
	.register       %g2, #scratch
47
	mov	%o0, %o3		! save dst
45
        .register       %g3, #scratch
-
 
46
	add	%o1, 7, %g1
48
	add	%o1, 7, %g1
47
	and	%g1, -8, %g1
49
	and	%g1, -8, %g1
48
	cmp	%o1, %g1
50
	cmp	%o1, %g1
49
	be,pn	%xcc, 3f
51
	be,pn	%xcc, 3f
50
	add	%o0, 7, %g1
52
	add	%o0, 7, %g1
Line 59... Line 61...
59
	stb	%g1, [%g3 + %o0]
61
	stb	%g1, [%g3 + %o0]
60
	bne,pt	%xcc, 1b
62
	bne,pt	%xcc, 1b
61
	mov	%g2, %g3
63
	mov	%g2, %g3
62
2:
64
2:
63
	jmp	%o7 + 8			! exit point
65
	jmp	%o7 + 8			! exit point
64
	mov	%o1, %o0
66
	mov	%o3, %o0
65
3:
67
3:
66
	and	%g1, -8, %g1
68
	and	%g1, -8, %g1
67
	cmp	%o0, %g1
69
	cmp	%o0, %g1
68
	bne,pt	%xcc, 0b
70
	bne,pt	%xcc, 0b
69
	mov	0, %g3
71
	mov	0, %g3
Line 93... Line 95...
93
	cmp	%o2, %g2
95
	cmp	%o2, %g2
94
	bne,pt	%xcc, 6b
96
	bne,pt	%xcc, 6b
95
	mov	%g2, %g3
97
	mov	%g2, %g3
96
 
98
 
97
	jmp	%o7 + 8			! exit point
99
	jmp	%o7 + 8			! exit point
98
	mov	%o1, %o0
100
	mov	%o3, %o0
99
 
101
 
100
jump_to_kernel:
102
jump_to_kernel:
101
	/*
103
	/*
102
	 * We have copied code and now we need to guarantee cache coherence.
104
	 * We have copied code and now we need to guarantee cache coherence.
103
	 * 1. Make sure that the code we have moved has drained to main memory.
105
	 * 1. Make sure that the code we have moved has drained to main memory.