Recognize i586-dg-dgux and use generic System V config file to nop ranlib
[deliverable/binutils-gdb.git] / sim / v850 / simops.c
CommitLineData
22c1c7dd
JL
1#include <signal.h>
2#include "v850_sim.h"
3#include "simops.h"
4
22c1c7dd
JL
5void
6OP_220 ()
7{
8}
9
10void
11OP_10760 ()
12{
13}
14
15void
16OP_C7C0 ()
17{
18}
19
20void
21OP_760 ()
22{
23}
24
22c1c7dd
JL
25void
26OP_580 ()
27{
28}
29
30void
31OP_700 ()
32{
33}
34
35void
36OP_581 ()
37{
38}
39
22c1c7dd
JL
40void
41OP_582 ()
42{
43}
44
45void
46OP_583 ()
47{
48}
49
50void
51OP_584 ()
52{
53}
54
55void
56OP_585 ()
57{
58}
59
60void
61OP_586 ()
62{
63}
64
65void
66OP_587 ()
67{
68}
69
70void
71OP_588 ()
72{
73}
74
75void
76OP_589 ()
77{
78}
79
80void
81OP_58A ()
82{
83}
84
85void
86OP_58B ()
87{
88}
89
90void
91OP_58C ()
92{
93}
94
95void
96OP_400 ()
97{
98}
99
22c1c7dd
JL
100void
101OP_160 ()
102{
103}
104
105void
106OP_58D ()
107{
108}
109
110void
111OP_58E ()
112{
113}
114
115void
116OP_58F ()
117{
118}
119
120void
121OP_660 ()
122{
123}
124
22c1c7dd 125
1fe983dc
JL
126/* add reg, reg
127
128 XXX condition codes. */
22c1c7dd 129void
1fe983dc 130OP_1C0 ()
22c1c7dd 131{
1fe983dc 132 State.regs[OP[1]] += State.regs[OP[0]];
22c1c7dd
JL
133}
134
1fe983dc
JL
135/* add sign_extend(imm5), reg
136
137 XXX condition codes. */
22c1c7dd 138void
1fe983dc 139OP_240 ()
22c1c7dd 140{
1fe983dc
JL
141 int value = OP[0];
142
143 value = (value << 27) >> 27;
144
145 State.regs[OP[1]] += value;
22c1c7dd
JL
146}
147
1fe983dc
JL
148/* addi sign_extend(imm16), reg, reg
149
150 XXX condition codes. */
22c1c7dd 151void
1fe983dc 152OP_600 ()
22c1c7dd 153{
1fe983dc
JL
154 int value = OP[0];
155
156 value = (value << 16) >> 16;
157
158 State.regs[OP[2]] = State.regs[OP[1]] + value;
22c1c7dd
JL
159}
160
1fe983dc
JL
161/* sub reg1, reg2
162
163 XXX condition codes */
22c1c7dd 164void
1fe983dc 165OP_1A0 ()
22c1c7dd 166{
1fe983dc 167 State.regs[OP[1]] -= State.regs[OP[0]];
22c1c7dd
JL
168}
169
1fe983dc
JL
170/* subr reg1, reg2
171
172 XXX condition codes */
22c1c7dd 173void
1fe983dc 174OP_180 ()
22c1c7dd 175{
1fe983dc 176 State.regs[OP[1]] = State.regs[OP[0]] - State.regs[OP[1]];
22c1c7dd
JL
177}
178
e98e3b2c
JL
179/* mulh reg1, reg2
180
181 XXX condition codes */
22c1c7dd 182void
e98e3b2c 183OP_E0 ()
22c1c7dd 184{
e98e3b2c 185 State.regs[OP[1]] = ((State.regs[OP[1]] & 0xffff)
fb8eb42b 186 * (State.regs[OP[0]] & 0xffff));
22c1c7dd
JL
187}
188
e98e3b2c
JL
189/* mulh sign_extend(imm5), reg2
190
191 Condition codes */
22c1c7dd 192void
e98e3b2c 193OP_2E0 ()
22c1c7dd 194{
e98e3b2c
JL
195 int value = OP[0];
196
197 value = (value << 27) >> 27;
198
199 State.regs[OP[1]] = (State.regs[OP[1]] & 0xffff) * value;
22c1c7dd
JL
200}
201
e98e3b2c
JL
202/* mulhi imm16, reg1, reg2
203
204 XXX condition codes */
22c1c7dd 205void
e98e3b2c
JL
206OP_6E0 ()
207{
208 int value = OP[0];
209
210 value = value & 0xffff;
211
fb8eb42b 212 State.regs[OP[2]] = (State.regs[OP[1]] & 0xffff) * value;
e98e3b2c
JL
213}
214
215/* divh reg1, reg2
216
217 XXX condition codes.
218 XXX Is this signed or unsigned? */
219void
220OP_40 ()
22c1c7dd 221{
fb8eb42b 222 State.regs[OP[1]] /= (State.regs[OP[0]] & 0xffff);
22c1c7dd
JL
223}
224
22c1c7dd 225void
1fe983dc 226OP_10720 ()
22c1c7dd
JL
227{
228}
229
230void
1fe983dc 231OP_780 ()
22c1c7dd
JL
232{
233}
234
235void
236OP_720 ()
237{
238}
239
240void
241OP_60 ()
242{
243}
244
22c1c7dd
JL
245void
246OP_87C0 ()
247{
248}
249
22c1c7dd
JL
250void
251OP_300 ()
252{
253}
254
1fe983dc 255/* mov reg, reg */
22c1c7dd
JL
256void
257OP_0 ()
258{
1fe983dc 259 State.regs[OP[1]] = State.regs[OP[0]];
22c1c7dd
JL
260}
261
1fe983dc 262/* mov sign_extend(imm5), reg */
22c1c7dd 263void
1fe983dc 264OP_200 ()
22c1c7dd 265{
1fe983dc
JL
266 int value = OP[0];
267
268 value = (value << 27) >> 27;
269 State.regs[OP[1]] = value;
22c1c7dd
JL
270}
271
1fe983dc
JL
272/* movea sign_extend(imm16), reg, reg */
273
22c1c7dd 274void
1fe983dc 275OP_620 ()
22c1c7dd 276{
1fe983dc
JL
277 int value = OP[0];
278
279 value = (value << 16) >> 16;
280
281 State.regs[OP[2]] = State.regs[OP[1]] + value;
22c1c7dd
JL
282}
283
1fe983dc 284/* movhi imm16, reg, reg */
22c1c7dd 285void
1fe983dc 286OP_640 ()
22c1c7dd 287{
1fe983dc
JL
288 int value = OP[0];
289
290 value = (value & 0xffff) << 16;
291
292 State.regs[OP[2]] = State.regs[OP[1]] + value;
22c1c7dd
JL
293}
294
295void
1fe983dc 296OP_7C0 ()
22c1c7dd
JL
297{
298}
299
300void
1fe983dc 301OP_1687E0 ()
22c1c7dd
JL
302{
303}
304
305void
306OP_1E0 ()
307{
308}
309
310void
311OP_A0 ()
312{
313}
314
315void
316OP_260 ()
317{
318}
319
22c1c7dd
JL
320void
321OP_740 ()
322{
323}
324
325void
326OP_80 ()
327{
328}
329
1fe983dc
JL
330/* not reg1, reg2
331
332 XXX condition codes */
22c1c7dd
JL
333void
334OP_20 ()
335{
1fe983dc 336 State.regs[OP[1]] = ~State.regs[OP[0]];
22c1c7dd
JL
337}
338
77553374
JL
339/* sar zero_extend(imm5),reg1
340
341 XXX condition codes. */
22c1c7dd 342void
77553374 343OP_2A0 ()
22c1c7dd 344{
77553374
JL
345 int temp = State.regs[OP[1]];
346
347 temp >>= (OP[0] & 0x1f);
348
349 State.regs[OP[1]] = temp;
22c1c7dd
JL
350}
351
77553374
JL
352/* sar reg1, reg2
353
354 XXX condition codes. */
22c1c7dd 355void
77553374 356OP_A007E0 ()
22c1c7dd 357{
77553374
JL
358 int temp = State.regs[OP[1]];
359
360 temp >>= (State.regs[OP[0]] & 0x1f);
361
362 State.regs[OP[1]] = temp;
22c1c7dd
JL
363}
364
77553374
JL
365/* shl zero_extend(imm5),reg1
366
367 XXX condition codes. */
22c1c7dd
JL
368void
369OP_2C0 ()
77553374
JL
370{
371 State.regs[OP[1]] <<= (OP[0] & 0x1f);
372}
373
374/* shl reg1, reg2
375
376 XXX condition codes. */
377void
378OP_C007E0 ()
379{
380 State.regs[OP[1]] <<= (State.regs[OP[0]] & 0x1f);
381}
382
383/* shr zero_extend(imm5),reg1
384
385 XXX condition codes. */
386void
387OP_280 ()
388{
389 State.regs[OP[1]] >>= (OP[0] & 0x1f);
390}
391
392/* shr reg1, reg2
393
394 XXX condition codes. */
395void
396OP_8007E0 ()
397{
398 State.regs[OP[1]] >>= (State.regs[OP[0]] & 0x1f);
399}
400
401void
402OP_500 ()
22c1c7dd
JL
403{
404}
405
22c1c7dd
JL
406void
407OP_47C0 ()
408{
409}
410
22c1c7dd
JL
411void
412OP_7E0 ()
413{
414}
415
1fe983dc
JL
416/* or reg, reg
417
418 XXX condition codes. */
419void
420OP_100 ()
421{
422 State.regs[OP[1]] |= State.regs[OP[0]];
423}
424
425/* ori zero_extend(imm16), reg, reg
426
427 XXX condition codes */
428void
429OP_680 ()
430{
431 int value = OP[0];
432
433 value &= 0xffff;
434
435 State.regs[OP[2]] = State.regs[OP[1]] | value;
436}
437
438/* and reg, reg
439
440 XXX condition codes. */
22c1c7dd
JL
441void
442OP_140 ()
443{
1fe983dc 444 State.regs[OP[1]] &= State.regs[OP[0]];
22c1c7dd
JL
445}
446
1fe983dc
JL
447/* andi zero_extend(imm16), reg, reg
448
449 XXX condition codes. */
22c1c7dd 450void
1fe983dc
JL
451OP_6C0 ()
452{
453 int value = OP[0];
454
455 value &= 0xffff;
456
457 State.regs[OP[2]] = State.regs[OP[1]] & value;
458}
459
460/* xor reg, reg
461
462 XXX condition codes. */
463void
464OP_120 ()
22c1c7dd 465{
1fe983dc
JL
466 State.regs[OP[1]] ^= State.regs[OP[0]];
467}
468
469/* xori zero_extend(imm16), reg, reg
470
471 XXX condition codes. */
472void
473OP_6A0 ()
474{
475 int value = OP[0];
476
477 value &= 0xffff;
478
479 State.regs[OP[2]] = State.regs[OP[1]] ^ value;
22c1c7dd
JL
480}
481
482void
483OP_C0 ()
484{
485}
486
1fe983dc
JL
487void
488OP_480 ()
489{
490}
491
492void
493OP_380 ()
494{
495}
496
497void
498OP_501 ()
499{
500}
e98e3b2c
JL
501
502/* di, not supported */
503void
504OP_16007E0 ()
505{
506 abort ();
507}
508
509/* ei, not supported */
510void
511OP_16087E0 ()
512{
513 abort ();
514}
515
516/* halt, not supported */
517void
518OP_12007E0 ()
519{
520 abort ();
521}
522
523/* reti, not supported */
524void
525OP_14007E0 ()
526{
527 abort ();
528}
529
530/* trap, not supportd */
531void
532OP_10007E0 ()
533{
534 abort ();
535}
536
537/* ldsr, not supported */
538void
539OP_2007E0 ()
540{
541 abort ();
542}
543
544/* stsr, not supported */
545void
546OP_4007E0 ()
547{
548 abort ();
549}
550
This page took 0.04494 seconds and 4 git commands to generate.