Subversion Repositories HelenOS

Rev

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

Rev 3022 Rev 4055
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
Line 84... Line 91...
84
	bne	$a3,$a2,1b
91
		bne $a3, $a2, 1b
85
	sb	$a0,0($v1)
92
		sb $a0, 0($v1)
86
 
93
	
87
2:
94
	2:
88
	jr	$ra
95
		jr $ra
89
	move	$v0,$a1
96
		move $v0, $t2
90
 
97
	
91
3:
98
	3:
92
	addiu	$v0,$a0,3
99
		addiu $v0, $a0, 3
93
	and	$v0,$v0,$v1
100
		and $v0, $v0, $v1
94
	bne	$a0,$v0,0b
101
		bne $a0, $v0, 0b
Line 97... Line 104...
97
	beq	$t1,$zero,5f
104
		beq $t1, $zero, 5f
98
	move	$a3,$zero
105
		move $a3, $zero
99
 
106
		
100
	move	$a3,$zero
107
		move $a3, $zero
101
	move	$a0,$zero
108
		move $a0, $zero
-
 
109
	
102
4:
110
	4:
103
	addu	$v0,$a1,$a0
111
		addu $v0, $a1, $a0
104
	lw	$v1,0($v0)
112
		lw $v1, 0($v0)
105
	addiu	$a3,$a3,1
113
		addiu $a3, $a3, 1
106
	addu	$v0,$t0,$a0
114
		addu $v0, $t0, $a0
Line 115... Line 123...
115
 
123
		
116
	sll	$v0,$a3,2
124
		sll $v0, $a3, 2
117
	addu	$t1,$v0,$t0
125
		addu $t1, $v0, $t0
118
	move	$a3,$zero
126
		move $a3, $zero
119
	addu	$t0,$v0,$a1
127
		addu $t0, $v0, $a1
-
 
128
	
120
6:
129
	6:
121
	addu	$v0,$t0,$a3
130
		addu $v0, $t0, $a3
122
	lbu	$a0,0($v0)
131
		lbu $a0, 0($v0)
123
	addu	$v1,$t1,$a3
132
		addu $v1, $t1, $a3
124
	addiu	$a3,$a3,1
133
		addiu $a3, $a3, 1
125
	bne	$a3,$a2,6b
134
		bne $a3, $a2, 6b
126
	sb	$a0,0($v1)
135
		sb $a0, 0($v1)
127
 
136
		
128
	jr	$ra
137
		jr $ra
129
	move	$v0,$a1
138
		move $v0, $t2
130
 
139
 
131
memcpy_from_uspace_failover_address:
140
memcpy_from_uspace_failover_address:
132
memcpy_to_uspace_failover_address:
141
memcpy_to_uspace_failover_address:
133
	jr	$ra
142
	jr $ra
134
	move	$v0, $zero
143
	move $v0, $zero
Line 156... Line 165...
156
.endm
165
.endm
157
 
166
 
158
 
167
 
159
.global fpu_context_save
168
.global fpu_context_save
160
fpu_context_save:
169
fpu_context_save:
161
#ifdef ARCH_HAS_FPU
170
#ifdef CONFIG_FPU
162
	fpu_gp_save 0,$a0
171
	fpu_gp_save 0, $a0
163
	fpu_gp_save 1,$a0
172
	fpu_gp_save 1, $a0
164
	fpu_gp_save 2,$a0
173
	fpu_gp_save 2, $a0
165
	fpu_gp_save 3,$a0
174
	fpu_gp_save 3, $a0
166
	fpu_gp_save 4,$a0
175
	fpu_gp_save 4, $a0
Line 227... Line 236...
227
	j $ra
236
	j $ra
228
	nop
237
	nop
229
 
238
 
230
.global fpu_context_restore
239
.global fpu_context_restore
231
fpu_context_restore:
240
fpu_context_restore:
232
#ifdef ARCH_HAS_FPU
241
#ifdef CONFIG_FPU
233
	fpu_gp_restore 0,$a0
242
	fpu_gp_restore 0, $a0
234
	fpu_gp_restore 1,$a0
243
	fpu_gp_restore 1, $a0
235
	fpu_gp_restore 2,$a0
244
	fpu_gp_restore 2, $a0
236
	fpu_gp_restore 3,$a0
245
	fpu_gp_restore 3, $a0
237
	fpu_gp_restore 4,$a0
246
	fpu_gp_restore 4, $a0