Subversion Repositories planix.SVN

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include <u.h>
2
#include <libc.h>
3
#include <bio.h>
4
#include <mach.h>
5
#include "arm.h"
6
 
7
void	unimp(ulong);
8
void	Ifcmp(ulong);
9
void	Ifdiv(ulong);
10
void	Ifmul(ulong);
11
void	Ifadd(ulong);
12
void	Ifsub(ulong);
13
void	Ifmov(ulong);
14
void	Icvtd(ulong);
15
void	Icvtw(ulong);
16
void	Icvts(ulong);
17
void	Ifabs(ulong);
18
void	Ifneg(ulong);
19
 
20
Inst cop1[] = {
21
	{ Ifadd,	"add.f", Ifloat },
22
	{ Ifsub,	"sub.f", Ifloat },
23
	{ Ifmul,	"mul.f", Ifloat },
24
	{ Ifdiv,	"div.f", Ifloat },
25
	{ unimp,	"", },
26
	{ Ifabs,	"abs.f", Ifloat },
27
	{ Ifmov,	"mov.f", Ifloat },
28
	{ Ifneg,	"neg.f", Ifloat },
29
	{ unimp,	"", },
30
	{ unimp,	"", },
31
	{ unimp,	"", },
32
	{ unimp,	"", },
33
	{ unimp,	"", },
34
	{ unimp,	"", },
35
	{ unimp,	"", },
36
	{ unimp,	"", },
37
	{ unimp,	"", },
38
	{ unimp,	"", },
39
	{ unimp,	"", },
40
	{ unimp,	"", },
41
	{ unimp,	"", },
42
	{ unimp,	"", },
43
	{ unimp,	"", },
44
	{ unimp,	"", },
45
	{ unimp,	"", },
46
	{ unimp,	"", },
47
	{ unimp,	"", },
48
	{ unimp,	"", },
49
	{ unimp,	"", },
50
	{ unimp,	"", },
51
	{ unimp,	"", },
52
	{ unimp,	"", },
53
	{ Icvts,	"cvt.s", Ifloat },
54
	{ Icvtd,	"cvt.d", Ifloat },
55
	{ unimp,	"", },
56
	{ unimp,	"", },
57
	{ Icvtw,	"cvt.w", Ifloat },
58
	{ unimp,	"", },
59
	{ unimp,	"", },
60
	{ unimp,	"", },
61
	{ unimp,	"", },
62
	{ unimp,	"", },
63
	{ unimp,	"", },
64
	{ unimp,	"", },
65
	{ unimp,	"", },
66
	{ unimp,	"", },
67
	{ unimp,	"", },
68
	{ unimp,	"", },
69
	{ Ifcmp,	"c.f",	 Ifloat },
70
	{ Ifcmp,	"c.un",  Ifloat },
71
	{ Ifcmp,	"c.eq",  Ifloat },
72
	{ Ifcmp,	"c.ueq", Ifloat },
73
	{ Ifcmp,	"c.olt", Ifloat },
74
	{ Ifcmp,	"c.ult", Ifloat },
75
	{ Ifcmp,	"c.ole", Ifloat },
76
	{ Ifcmp,	"c.ule", Ifloat },
77
	{ Ifcmp,	"c,sf",  Ifloat },
78
	{ Ifcmp,	"c.ngle",Ifloat },
79
	{ Ifcmp,	"c.seq", Ifloat },
80
	{ Ifcmp,	"c.ngl", Ifloat },
81
	{ Ifcmp,	"c.lt",  Ifloat },
82
	{ Ifcmp,	"c.nge", Ifloat },
83
	{ Ifcmp,	"c.le",  Ifloat },
84
	{ Ifcmp,	"c.ngt", Ifloat },
85
	{ 0 }
86
};
87
 
88
void
89
unimp(ulong inst)
90
{
91
	print("op %d\n", inst&0x3f);
92
	Bprint(bioout, "Unimplemented floating point Trap IR %.8lux\n", inst);
93
	longjmp(errjmp, 0);
94
}
95
 
96
void
97
inval(ulong inst)
98
{
99
	Bprint(bioout, "Invalid Operation Exception IR %.8lux\n", inst);
100
	longjmp(errjmp, 0);
101
}
102
 
103
void
104
ifmt(int r)
105
{
106
	Bprint(bioout, "Invalid Floating Data Format f%d pc 0x%lux\n", r, reg.r[15]);
107
	longjmp(errjmp, 0);
108
}
109
 
110
void
111
floatop(int dst, int s1, int s2)
112
{
113
}
114
 
115
void
116
doubop(int dst, int s1, int s2)
117
{
118
}
119
 
120
void
121
Iswc1(ulong inst)
122
{
123
}
124
 
125
void
126
Ifsub(ulong ir)
127
{
128
}
129
 
130
void
131
Ifmov(ulong ir)
132
{
133
}
134
 
135
void
136
Ifabs(ulong ir)
137
{
138
}
139
 
140
void
141
Ifneg(ulong ir)
142
{
143
}
144
 
145
void
146
Icvtd(ulong ir)
147
{
148
}
149
 
150
void
151
Icvts(ulong ir)
152
{
153
}
154
 
155
void
156
Icvtw(ulong ir)
157
{
158
}
159
 
160
void
161
Ifadd(ulong ir)
162
{
163
}
164
 
165
void
166
Ifmul(ulong ir)
167
{
168
}
169
 
170
void
171
Ifdiv(ulong ir)
172
{
173
}
174
 
175
void
176
Ilwc1(ulong inst)
177
{
178
}
179
 
180
void
181
Ibcfbct(ulong inst)
182
{
183
}
184
 
185
void
186
Imtct(ulong ir)
187
{
188
}
189
 
190
void
191
Imfcf(ulong ir)
192
{
193
}
194
 
195
void
196
Icop1(ulong ir)
197
{
198
}
199
 
200
void
201
Ifcmp(ulong ir)
202
{
203
}