Subversion Repositories HelenOS

Rev

Rev 3425 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3425 Rev 4377
Line 44... Line 44...
44
 
44
 
45
.set noat
45
.set noat
46
.set noreorder
46
.set noreorder
47
.set nomacro
47
.set nomacro
48
 
48
 
-
 
49
.global asm_delay_loop
-
 
50
asm_delay_loop:
-
 
51
	j $31
-
 
52
	nop
-
 
53
 
49
.global cpu_halt
54
.global cpu_halt
50
cpu_halt:
55
cpu_halt:
51
	j cpu_halt
56
	j cpu_halt
52
	nop
57
	nop
53
 
58
 
Line 56... Line 61...
56
memsetb:
61
memsetb:
57
	j _memsetb
62
	j _memsetb
58
	nop
63
	nop
59
 
64
 
60
 
65
 
-
 
66
.global memsetw
-
 
67
memsetw:
-
 
68
	j _memsetw
-
 
69
	nop
-
 
70
 
-
 
71
 
61
.global memcpy
72
.global memcpy
62
.global memcpy_from_uspace
73
.global memcpy_from_uspace
63
.global memcpy_to_uspace
74
.global memcpy_to_uspace
64
.global memcpy_from_uspace_failover_address
75
.global memcpy_from_uspace_failover_address
65
.global memcpy_to_uspace_failover_address
76
.global memcpy_to_uspace_failover_address
66
memcpy:
77
memcpy:
67
memcpy_from_uspace:
78
memcpy_from_uspace:
68
memcpy_to_uspace:
79
memcpy_to_uspace:
-
 
80
	move $t2, $a0      # save dst
-
 
81
	
69
	addiu	$v0,$a1,3
82
	addiu $v0, $a1, 3
70
	li	$v1,-4			# 0xfffffffffffffffc
83
	li $v1, -4         # 0xfffffffffffffffc
71
	and	$v0,$v0,$v1
84
	and $v0, $v0, $v1
72
	beq	$a1,$v0,3f
85
	beq $a1, $v0, 3f
73
	move	$t0,$a0
86
	move $t0, $a0
74
	move	$t2,$a0			# save dst
-
 
75
 
87
	
76
0:
88
	0:
77
	beq	$a2,$zero,2f
89
		beq $a2, $zero, 2f
78
	move	$a3,$zero
90
		move $a3, $zero
79
 
91
	
Line 98... Line 110...
98
	beq	$t1,$zero,5f
110
		beq $t1, $zero, 5f
99
	move	$a3,$zero
111
		move $a3, $zero
100
 
112
		
101
	move	$a3,$zero
113
		move $a3, $zero
102
	move	$a0,$zero
114
		move $a0, $zero
-
 
115
	
103
4:
116
	4:
104
	addu	$v0,$a1,$a0
117
		addu $v0, $a1, $a0
105
	lw	$v1,0($v0)
118
		lw $v1, 0($v0)
106
	addiu	$a3,$a3,1
119
		addiu $a3, $a3, 1
107
	addu	$v0,$t0,$a0
120
		addu $v0, $t0, $a0
Line 116... Line 129...
116
 
129
		
117
	sll	$v0,$a3,2
130
		sll $v0, $a3, 2
118
	addu	$t1,$v0,$t0
131
		addu $t1, $v0, $t0
119
	move	$a3,$zero
132
		move $a3, $zero
120
	addu	$t0,$v0,$a1
133
		addu $t0, $v0, $a1
-
 
134
	
121
6:
135
	6:
122
	addu	$v0,$t0,$a3
136
		addu $v0, $t0, $a3
123
	lbu	$a0,0($v0)
137
		lbu $a0, 0($v0)
124
	addu	$v1,$t1,$a3
138
		addu $v1, $t1, $a3
125
	addiu	$a3,$a3,1
139
		addiu $a3, $a3, 1
Line 157... Line 171...
157
.endm
171
.endm
158
 
172
 
159
 
173
 
160
.global fpu_context_save
174
.global fpu_context_save
161
fpu_context_save:
175
fpu_context_save:
162
#ifdef ARCH_HAS_FPU
176
#ifdef CONFIG_FPU
163
	fpu_gp_save 0,$a0
177
	fpu_gp_save 0, $a0
164
	fpu_gp_save 1,$a0
178
	fpu_gp_save 1, $a0
165
	fpu_gp_save 2,$a0
179
	fpu_gp_save 2, $a0
166
	fpu_gp_save 3,$a0
180
	fpu_gp_save 3, $a0
167
	fpu_gp_save 4,$a0
181
	fpu_gp_save 4, $a0
Line 228... Line 242...
228
	j $ra
242
	j $ra
229
	nop
243
	nop
230
 
244
 
231
.global fpu_context_restore
245
.global fpu_context_restore
232
fpu_context_restore:
246
fpu_context_restore:
233
#ifdef ARCH_HAS_FPU
247
#ifdef CONFIG_FPU
234
	fpu_gp_restore 0,$a0
248
	fpu_gp_restore 0, $a0
235
	fpu_gp_restore 1,$a0
249
	fpu_gp_restore 1, $a0
236
	fpu_gp_restore 2,$a0
250
	fpu_gp_restore 2, $a0
237
	fpu_gp_restore 3,$a0
251
	fpu_gp_restore 3, $a0
238
	fpu_gp_restore 4,$a0
252
	fpu_gp_restore 4, $a0