/[smarc]/smarc/src/vmachine/instr_word.cc
ViewVC logotype

Diff of /smarc/src/vmachine/instr_word.cc

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by misto, Wed Nov 20 20:58:58 2002 UTC revision 1.2 by misto, Tue Nov 26 22:27:33 2002 UTC
# Line 9  void instr_word::recognize_instr( void ) Line 9  void instr_word::recognize_instr( void )
9  {  {
10          if ( format == primary_reg || format == primary_imm){          if ( format == primary_reg || format == primary_imm){
11                  if ( raw.b(30,31) == 2 ) {                  if ( raw.b(30,31) == 2 ) {
                         group = arlog;  
12                                                    
13                          switch( opc ) {                          switch( opc ) {
14                          case 0:                          case 0:
15                                    group = arith;
16                                  instr = add;                                  instr = add;
17                                  break;                                  break;
18                          case 1:                          case 1:
19                                    group = logic;
20                                  instr = and;                                  instr = and;
21                                  break;                                  break;
22                          case 2:                          case 2:
23                                    group = logic;
24                                  instr = or;                                  instr = or;
25                                  break;                                  break;
26                          case 3:                          case 3:
27                                    group = logic;
28                                  instr = xor;                                  instr = xor;
29                                  break;                                  break;
30                          case 4:                          case 4:
31                                    group = arith;
32                                  instr = sub;                                  instr = sub;
33                                  break;                                  break;
34                          case 5:                          case 5:
35                                    group = logic;
36                                  instr = andn;                                  instr = andn;
37                                  break;                                  break;
38                          case 6:                          case 6:
39                                    group = logic;
40                                  instr = orn;                                  instr = orn;
41                                  break;                                  break;
42                          case 7:                          case 7:
43                                    group = logic;
44                                  instr = xnor;                                  instr = xnor;
45                                  break;                                  break;
46                          case 8:                          case 8:
47                                    group = arith;
48                                  instr = addx;                                  instr = addx;
49                                  break;                                  break;
50                          case 12:                          case 12:
51                                    group = arith;
52                                  instr = subx;                                  instr = subx;
53                                  break;                                  break;
54                          case 16:                          case 16:
55                                    group = arith;
56                                  instr = addcc;                                  instr = addcc;
57                                  break;                                  break;
58                          case 17:                          case 17:
59                                    group = logic;
60                                  instr = andcc;                                  instr = andcc;
61                                  break;                                  break;
62                          case 18:                          case 18:
63                                    group = logic;
64                                  instr =  orcc;                                  instr =  orcc;
65                                  break;                                  break;
66                          case 19:                          case 19:
67                                    group = logic;
68                                  instr = xorcc;                                  instr = xorcc;
69                                  break;                                  break;
70                          case 20:                          case 20:
71                                    group = arith;
72                                  instr = subcc;                                  instr = subcc;
73                                  break;                                  break;
74                          case 21:                          case 21:
75                                    group = arith;
76                                  instr = andncc;                                  instr = andncc;
77                                  break;                                  break;
78                          case 22:                          case 22:
79                                    group = arith;
80                                  instr = orncc;                                  instr = orncc;
81                                  break;                                  break;
82                          case 23:                          case 23:
83                                    group = arith;
84                                  instr = xnorcc;                                  instr = xnorcc;
85                                  break;                                  break;
86                          case 24:                          case 24:
87                                    group = arith;
88                                  instr = addxcc;                                  instr = addxcc;
89                                  break;                                  break;
90                          case 28:                          case 28:
91                                    group = arith;
92                                  instr = subxcc;                                  instr = subxcc;
93                                  break;                                  break;
94                          case 37:                          case 37:
95                                    group = shift;
96                                  instr = sll;                                  instr = sll;
97                                  break;                                  break;
98                          case 38:                          case 38:
99                                    group = shift;
100                                  instr = srl;                                  instr = srl;
101                                  break;                                  break;
102                          case 39:                          case 39:
103                                    group = shift;
104                                  instr = sra;                                  instr = sra;
105                                  break;                                  break;
106                          case 56:                          case 56:
107                                    group = control;
108                                  instr = jmpl;                                  instr = jmpl;
109                                  break;                                  break;
110                          case 60:                          case 60:
111                                    group = control;
112                                  instr = save;                                  instr = save;
113                                  break;                                  break;
114                          case 61:                          case 61:
115                                    group = control;
116                                  instr = restore;                                  instr = restore;
117                                  break;                                  break;
118                          default:                          default:
# Line 220  instr_word::instr_word( unsigned long r Line 245  instr_word::instr_word( unsigned long r
245          } else if ( raw.b(30,31) == 0 && raw.b(22,24) == 4 ){          } else if ( raw.b(30,31) == 0 && raw.b(22,24) == 4 ){
246                  format = sethi_format;                  format = sethi_format;
247                  instr = sethi;                  instr = sethi;
248                  group = other;                  group = mem;
249                  dsp30 = raw.b(0, 29);                  dsp30 = raw.b(0, 29);
250          } else if ( raw.b(30, 31) == 1 ) {          } else if ( raw.b(30, 31) == 1 ) {
251                  format = call_format;                  format = call_format;
252                  instr = call;                  instr = call;
253                  group = other;                  group = control;
254                  imm22 = raw.b(0, 21);                  imm22 = raw.b(0, 21);
255          }          }
256    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26