Subversion Repositories HelenOS

Rev

Rev 105 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 105 Rev 124
1
#
1
#
2
# Copyright (C) 2001-2004 Jakub Jermar
2
# Copyright (C) 2001-2004 Jakub Jermar
3
# All rights reserved.
3
# All rights reserved.
4
#
4
#
5
# Redistribution and use in source and binary forms, with or without
5
# Redistribution and use in source and binary forms, with or without
6
# modification, are permitted provided that the following conditions
6
# modification, are permitted provided that the following conditions
7
# are met:
7
# are met:
8
#
8
#
9
# - Redistributions of source code must retain the above copyright
9
# - Redistributions of source code must retain the above copyright
10
#   notice, this list of conditions and the following disclaimer.
10
#   notice, this list of conditions and the following disclaimer.
11
# - Redistributions in binary form must reproduce the above copyright
11
# - Redistributions in binary form must reproduce the above copyright
12
#   notice, this list of conditions and the following disclaimer in the
12
#   notice, this list of conditions and the following disclaimer in the
13
#   documentation and/or other materials provided with the distribution.
13
#   documentation and/or other materials provided with the distribution.
14
# - The name of the author may not be used to endorse or promote products
14
# - The name of the author may not be used to endorse or promote products
15
#   derived from this software without specific prior written permission.
15
#   derived from this software without specific prior written permission.
16
#
16
#
17
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
#
27
#
28
 
28
 
29
.text
29
.text
30
 
30
 
31
.macro cp0_read reg
31
.macro cp0_read reg
32
	mfc0 $2,\reg
32
	mfc0 $2,\reg
33
	j $31
33
	j $31
34
	nop
34
	nop
35
.endm
35
.endm
36
 
36
 
37
.macro cp0_write reg
37
.macro cp0_write reg
38
	mtc0 $4,\reg
38
	mtc0 $4,\reg
39
	j $31
39
	j $31
40
	nop
40
	nop
41
.endm
41
.endm
42
 
42
 
43
.set noat
43
.set noat
44
.set noreorder
44
.set noreorder
45
.set nomacro
45
.set nomacro
46
 
46
 
47
.global cp0_index_read
47
.global cp0_index_read
48
.global cp0_index_write
48
.global cp0_index_write
49
.global cp0_random_read
49
.global cp0_random_read
50
.global cp0_entry_lo0_read
50
.global cp0_entry_lo0_read
51
.global cp0_entry_lo0_write
51
.global cp0_entry_lo0_write
52
.global cp0_entry_lo1_read
52
.global cp0_entry_lo1_read
53
.global cp0_entry_lo1_write
53
.global cp0_entry_lo1_write
54
.global cp0_context_read
54
.global cp0_context_read
55
.global cp0_context_write
55
.global cp0_context_write
56
.global cp0_pagemask_read
56
.global cp0_pagemask_read
57
.global cp0_pagemask_write
57
.global cp0_pagemask_write
58
.global cp0_wired_read
58
.global cp0_wired_read
59
.global cp0_wired_write
59
.global cp0_wired_write
60
.global cp0_badvaddr_read
60
.global cp0_badvaddr_read
61
.global cp0_count_read
61
.global cp0_count_read
62
.global cp0_count_write
62
.global cp0_count_write
63
.global cp0_hi_read
63
.global cp0_hi_read
64
.global cp0_hi_write
64
.global cp0_hi_write
65
.global cp0_compare_read
65
.global cp0_compare_read
66
.global cp0_compare_write
66
.global cp0_compare_write
67
.global cp0_status_read
67
.global cp0_status_read
68
.global cp0_status_write
68
.global cp0_status_write
69
.global cp0_cause_read
69
.global cp0_cause_read
-
 
70
.global cp0_cause_write
70
.global cp0_epc_read
71
.global cp0_epc_read
71
.global cp0_epc_write
72
.global cp0_epc_write
72
.global cp0_prid_read
73
.global cp0_prid_read
73
 
74
 
74
cp0_index_read:		cp0_read $0
75
cp0_index_read:		cp0_read $0
75
cp0_index_write:	cp0_write $0
76
cp0_index_write:	cp0_write $0
76
 
77
 
77
cp0_random_read:	cp0_read $1
78
cp0_random_read:	cp0_read $1
78
 
79
 
79
cp0_entry_lo0_read:	cp0_read $2
80
cp0_entry_lo0_read:	cp0_read $2
80
cp0_entry_lo0_write:	cp0_write $2
81
cp0_entry_lo0_write:	cp0_write $2
81
 
82
 
82
cp0_entry_lo1_read:	cp0_read $3
83
cp0_entry_lo1_read:	cp0_read $3
83
cp0_entry_lo1_write:	cp0_write $3
84
cp0_entry_lo1_write:	cp0_write $3
84
 
85
 
85
cp0_context_read:	cp0_read $4
86
cp0_context_read:	cp0_read $4
86
cp0_context_write:	cp0_write $4
87
cp0_context_write:	cp0_write $4
87
 
88
 
88
cp0_pagemask_read:	cp0_read $5
89
cp0_pagemask_read:	cp0_read $5
89
cp0_pagemask_write:	cp0_write $5
90
cp0_pagemask_write:	cp0_write $5
90
 
91
 
91
cp0_wired_read:		cp0_read $6
92
cp0_wired_read:		cp0_read $6
92
cp0_wired_write:	cp0_write $6
93
cp0_wired_write:	cp0_write $6
93
 
94
 
94
cp0_badvaddr_read:	cp0_read $8
95
cp0_badvaddr_read:	cp0_read $8
95
 
96
 
96
cp0_count_read:		cp0_read $9
97
cp0_count_read:		cp0_read $9
97
cp0_count_write:	cp0_write $9
98
cp0_count_write:	cp0_write $9
98
 
99
 
99
cp0_entry_hi_read:	cp0_read $10
100
cp0_entry_hi_read:	cp0_read $10
100
cp0_entry_hi_write:	cp0_write $10
101
cp0_entry_hi_write:	cp0_write $10
101
 
102
 
102
cp0_compare_read:	cp0_read $11
103
cp0_compare_read:	cp0_read $11
103
cp0_compare_write:	cp0_write $11
104
cp0_compare_write:	cp0_write $11
104
 
105
 
105
cp0_status_read:	cp0_read $12
106
cp0_status_read:	cp0_read $12
106
cp0_status_write:	cp0_write $12
107
cp0_status_write:	cp0_write $12
107
 
108
 
108
cp0_cause_read:		cp0_read $13
109
cp0_cause_read:		cp0_read $13
-
 
110
cp0_cause_write:	cp0_write $13
109
 
111
 
110
cp0_epc_read:		cp0_read $14
112
cp0_epc_read:		cp0_read $14
111
cp0_epc_write:		cp0_write $14
113
cp0_epc_write:		cp0_write $14
112
 
114
 
113
cp0_prid_read:		cp0_read $15
115
cp0_prid_read:		cp0_read $15
114
 
116
 
115
 
117
 
116
.global tlbp
118
.global tlbp
117
tlbp:
119
tlbp:
118
	tlbp
120
	tlbp
119
	j $31
121
	j $31
120
	nop
122
	nop
121
 
123
 
122
.global tlbr
124
.global tlbr
123
tlbr:
125
tlbr:
124
	tlbr
126
	tlbr
125
	j $31
127
	j $31
126
	nop
128
	nop
127
 
129
 
128
.global tlbwi
130
.global tlbwi
129
tlbwi:
131
tlbwi:
130
	tlbwi
132
	tlbwi
131
	j $31
133
	j $31
132
	nop
134
	nop
133
 
135
 
134
.global tlbwr
136
.global tlbwr
135
tlbwr:
137
tlbwr:
136
	tlbwr
138
	tlbwr
137
	j $31
139
	j $31
138
	nop
140
	nop
139
 
141
 
140
.global cpu_halt
142
.global cpu_halt
141
cpu_halt:
143
cpu_halt:
142
	j cpu_halt
144
	j cpu_halt
143
	nop
145
	nop
144
 
146
 
145
 
147
 
146
.global memsetb
148
.global memsetb
147
memsetb:
149
memsetb:
148
	j _memsetb
150
	j _memsetb
149
	nop
151
	nop
150
 
152
 
151
.global memcopy
153
.global memcopy
152
memcopy:
154
memcopy:
153
	j _memcopy
155
	j _memcopy
154
	nop
156
	nop
155
 
157
 
156
# THIS IS USERSPACE CODE
158
# THIS IS USERSPACE CODE
157
.global utext
159
.global utext
158
utext:
160
utext:
159
	j $31
161
	j $31
160
	nop
162
	nop
161
utext_end:
163
utext_end:
162
 
164
 
163
.data
165
.data
164
.global utext_size
166
.global utext_size
165
utext_size:
167
utext_size:
166
	.long utext_end-utext
168
	.long utext_end-utext
167
 
169
 
168
 
170
 
169

Generated by GNU Enscript 1.6.6.
171

Generated by GNU Enscript 1.6.6.
170
 
172
 
171
 
173
 
172
 
174