Subversion Repositories HelenOS

Rev

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

Rev 3386 Rev 4153
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 64... Line 69...
64
.global memcpy_from_uspace_failover_address
69
.global memcpy_from_uspace_failover_address
65
.global memcpy_to_uspace_failover_address
70
.global memcpy_to_uspace_failover_address
66
memcpy:
71
memcpy:
67
memcpy_from_uspace:
72
memcpy_from_uspace:
68
memcpy_to_uspace:
73
memcpy_to_uspace:
-
 
74
	move $t2, $a0      # save dst
-
 
75
	
69
	addiu	$v0,$a1,3
76
	addiu $v0, $a1, 3
70
	li	$v1,-4			# 0xfffffffffffffffc
77
	li $v1, -4         # 0xfffffffffffffffc
71
	and	$v0,$v0,$v1
78
	and $v0, $v0, $v1
72
	beq	$a1,$v0,3f
79
	beq $a1, $v0, 3f
73
	move	$t0,$a0
80
	move $t0, $a0
74
	move	$t2,$a0			# save dst
-
 
75
 
81
	
76
0:
82
	0:
77
	beq	$a2,$zero,2f
83
		beq $a2, $zero, 2f
78
	move	$a3,$zero
84
		move $a3, $zero
79
 
85
	
Line 98... Line 104...
98
	beq	$t1,$zero,5f
104
		beq $t1, $zero, 5f
99
	move	$a3,$zero
105
		move $a3, $zero
100
 
106
		
101
	move	$a3,$zero
107
		move $a3, $zero
102
	move	$a0,$zero
108
		move $a0, $zero
-
 
109
	
103
4:
110
	4:
104
	addu	$v0,$a1,$a0
111
		addu $v0, $a1, $a0
105
	lw	$v1,0($v0)
112
		lw $v1, 0($v0)
106
	addiu	$a3,$a3,1
113
		addiu $a3, $a3, 1
107
	addu	$v0,$t0,$a0
114
		addu $v0, $t0, $a0
Line 116... Line 123...
116
 
123
		
117
	sll	$v0,$a3,2
124
		sll $v0, $a3, 2
118
	addu	$t1,$v0,$t0
125
		addu $t1, $v0, $t0
119
	move	$a3,$zero
126
		move $a3, $zero
120
	addu	$t0,$v0,$a1
127
		addu $t0, $v0, $a1
-
 
128
	
121
6:
129
	6:
122
	addu	$v0,$t0,$a3
130
		addu $v0, $t0, $a3
123
	lbu	$a0,0($v0)
131
		lbu $a0, 0($v0)
124
	addu	$v1,$t1,$a3
132
		addu $v1, $t1, $a3
125
	addiu	$a3,$a3,1
133
		addiu $a3, $a3, 1
Line 157... Line 165...
157
.endm
165
.endm
158
 
166
 
159
 
167
 
160
.global fpu_context_save
168
.global fpu_context_save
161
fpu_context_save:
169
fpu_context_save:
162
#ifdef ARCH_HAS_FPU
170
#ifdef CONFIG_FPU
163
	fpu_gp_save 0,$a0
171
	fpu_gp_save 0, $a0
164
	fpu_gp_save 1,$a0
172
	fpu_gp_save 1, $a0
165
	fpu_gp_save 2,$a0
173
	fpu_gp_save 2, $a0
166
	fpu_gp_save 3,$a0
174
	fpu_gp_save 3, $a0
167
	fpu_gp_save 4,$a0
175
	fpu_gp_save 4, $a0
Line 228... Line 236...
228
	j $ra
236
	j $ra
229
	nop
237
	nop
230
 
238
 
231
.global fpu_context_restore
239
.global fpu_context_restore
232
fpu_context_restore:
240
fpu_context_restore:
233
#ifdef ARCH_HAS_FPU
241
#ifdef CONFIG_FPU
234
	fpu_gp_restore 0,$a0
242
	fpu_gp_restore 0, $a0
235
	fpu_gp_restore 1,$a0
243
	fpu_gp_restore 1, $a0
236
	fpu_gp_restore 2,$a0
244
	fpu_gp_restore 2, $a0
237
	fpu_gp_restore 3,$a0
245
	fpu_gp_restore 3, $a0
238
	fpu_gp_restore 4,$a0
246
	fpu_gp_restore 4, $a0