1 | /* |
---|
2 | * $Id: Types.cpp 101 2009-01-15 17:19:08Z rosiere $ |
---|
3 | * |
---|
4 | * [ Description ] |
---|
5 | * |
---|
6 | */ |
---|
7 | |
---|
8 | #include "Behavioural/include/Types.h" |
---|
9 | #include "Common/include/Translation.h" |
---|
10 | |
---|
11 | namespace morpheo { |
---|
12 | namespace behavioural { |
---|
13 | |
---|
14 | #undef FUNCTION |
---|
15 | #define FUNCTION "instruction_information" |
---|
16 | instruction_t instruction_information (uint32_t instruction) |
---|
17 | { |
---|
18 | switch (instruction) |
---|
19 | { |
---|
20 | case INSTRUCTION_L_ADD : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_ADD ,ORBIS32,1); |
---|
21 | case INSTRUCTION_L_ADDC : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_ADDC ,ORBIS32,1); |
---|
22 | case INSTRUCTION_L_ADDI : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_ADD ,ORBIS32,1); |
---|
23 | case INSTRUCTION_L_ADDIC : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_ADDC ,ORBIS32,1); |
---|
24 | case INSTRUCTION_L_AND : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_AND ,ORBIS32,1); |
---|
25 | case INSTRUCTION_L_ANDI : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_AND ,ORBIS32,1); |
---|
26 | case INSTRUCTION_L_BF : return instruction_t (TYPE_BRANCH ,OPERATION_BRANCH_L_TEST_F ,ORBIS32,1); |
---|
27 | case INSTRUCTION_L_BNF : return instruction_t (TYPE_BRANCH ,OPERATION_BRANCH_L_TEST_NF ,ORBIS32,1); |
---|
28 | case INSTRUCTION_L_CMOV : return instruction_t (TYPE_MOVE ,OPERATION_MOVE_L_CMOV ,ORBIS32,2); |
---|
29 | // case INSTRUCTION_L_CSYNC : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_CSYNC ,ORBIS32,2); |
---|
30 | case INSTRUCTION_L_CSYNC : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_SYNCHRONIZATION,ORBIS32,2); |
---|
31 | case INSTRUCTION_L_CUST1 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_L_1 ,ORBIS32,2); |
---|
32 | case INSTRUCTION_L_CUST2 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_L_2 ,ORBIS32,2); |
---|
33 | case INSTRUCTION_L_CUST3 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_L_3 ,ORBIS32,2); |
---|
34 | case INSTRUCTION_L_CUST4 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_L_4 ,ORBIS32,2); |
---|
35 | case INSTRUCTION_L_CUST5 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_L_5 ,ORBIS32,2); |
---|
36 | case INSTRUCTION_L_CUST6 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_L_6 ,ORBIS32,2); |
---|
37 | case INSTRUCTION_L_CUST7 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_L_7 ,ORBIS32,2); |
---|
38 | case INSTRUCTION_L_CUST8 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_L_8 ,ORBIS32,2); |
---|
39 | case INSTRUCTION_L_DIV : return instruction_t (TYPE_DIV ,OPERATION_DIV_L_DIV ,ORBIS32,2); |
---|
40 | case INSTRUCTION_L_DIVU : return instruction_t (TYPE_DIV ,OPERATION_DIV_L_DIVU ,ORBIS32,2); |
---|
41 | case INSTRUCTION_L_EXTBS : return instruction_t (TYPE_EXTEND ,OPERATION_EXTEND_L_EXTEND_S ,ORBIS32,2); |
---|
42 | case INSTRUCTION_L_EXTBZ : return instruction_t (TYPE_EXTEND ,OPERATION_EXTEND_L_EXTEND_Z ,ORBIS32,2); |
---|
43 | case INSTRUCTION_L_EXTHS : return instruction_t (TYPE_EXTEND ,OPERATION_EXTEND_L_EXTEND_S ,ORBIS32,2); |
---|
44 | case INSTRUCTION_L_EXTHZ : return instruction_t (TYPE_EXTEND ,OPERATION_EXTEND_L_EXTEND_Z ,ORBIS32,2); |
---|
45 | case INSTRUCTION_L_EXTWS : return instruction_t (TYPE_EXTEND ,OPERATION_EXTEND_L_EXTEND_S ,ORBIS64,2); |
---|
46 | case INSTRUCTION_L_EXTWZ : return instruction_t (TYPE_EXTEND ,OPERATION_EXTEND_L_EXTEND_Z ,ORBIS64,2); |
---|
47 | case INSTRUCTION_L_FF1 : return instruction_t (TYPE_FIND ,OPERATION_FIND_L_FF1 ,ORBIS32,2); |
---|
48 | case INSTRUCTION_L_FL1 : return instruction_t (TYPE_FIND ,OPERATION_FIND_L_FL1 ,ORBIS32,2); |
---|
49 | case INSTRUCTION_L_J : return instruction_t (TYPE_BRANCH ,OPERATION_BRANCH_NONE ,ORBIS32,1); |
---|
50 | case INSTRUCTION_L_JAL : return instruction_t (TYPE_BRANCH ,OPERATION_BRANCH_L_JALR ,ORBIS32,1); |
---|
51 | case INSTRUCTION_L_JALR : return instruction_t (TYPE_BRANCH ,OPERATION_BRANCH_L_JALR ,ORBIS32,1); |
---|
52 | case INSTRUCTION_L_JR : return instruction_t (TYPE_BRANCH ,OPERATION_BRANCH_L_JALR ,ORBIS32,1); |
---|
53 | case INSTRUCTION_L_LBS : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_LOAD_8_S ,ORBIS32,1); |
---|
54 | case INSTRUCTION_L_LBZ : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_LOAD_8_Z ,ORBIS32,1); |
---|
55 | case INSTRUCTION_L_LD : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_LOAD_64_S ,ORBIS64,1); |
---|
56 | case INSTRUCTION_L_LHS : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_LOAD_16_S ,ORBIS32,1); |
---|
57 | case INSTRUCTION_L_LHZ : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_LOAD_16_Z ,ORBIS32,1); |
---|
58 | case INSTRUCTION_L_LWS : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_LOAD_32_S ,ORBIS32,1); |
---|
59 | case INSTRUCTION_L_LWZ : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_LOAD_32_Z ,ORBIS32,1); |
---|
60 | case INSTRUCTION_L_MAC : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_MAC ,ORBIS32,2); |
---|
61 | case INSTRUCTION_L_MACI : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_MAC ,ORBIS32,2); |
---|
62 | case INSTRUCTION_L_MACRC : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_MACRC ,ORBIS32,2); |
---|
63 | case INSTRUCTION_L_MFSPR : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_MFSPR ,ORBIS32,1); |
---|
64 | case INSTRUCTION_L_MOVHI : return instruction_t (TYPE_MOVE ,OPERATION_MOVE_L_MOVHI ,ORBIS32,1); |
---|
65 | case INSTRUCTION_L_MSB : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_MSB ,ORBIS32,2); |
---|
66 | // case INSTRUCTION_L_MSYNC : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_MSYNC ,ORBIS32,2); |
---|
67 | case INSTRUCTION_L_MSYNC : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_SYNCHRONIZATION,ORBIS32,2); |
---|
68 | case INSTRUCTION_L_MTSPR : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_MTSPR ,ORBIS32,1); |
---|
69 | case INSTRUCTION_L_MUL : return instruction_t (TYPE_MUL ,OPERATION_MUL_L_MUL ,ORBIS32,1); |
---|
70 | case INSTRUCTION_L_MULI : return instruction_t (TYPE_MUL ,OPERATION_MUL_L_MUL ,ORBIS32,1); |
---|
71 | case INSTRUCTION_L_MULU : return instruction_t (TYPE_MUL ,OPERATION_MUL_L_MULU ,ORBIS32,1); |
---|
72 | case INSTRUCTION_L_NOP : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORBIS32,1); |
---|
73 | case INSTRUCTION_L_OR : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_OR ,ORBIS32,1); |
---|
74 | case INSTRUCTION_L_ORI : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_OR ,ORBIS32,1); |
---|
75 | // case INSTRUCTION_L_PSYNC : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_PSYNC ,ORBIS32,2); |
---|
76 | case INSTRUCTION_L_PSYNC : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_SYNCHRONIZATION,ORBIS32,2); |
---|
77 | case INSTRUCTION_L_RFE : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_RFE ,ORBIS32,1); |
---|
78 | case INSTRUCTION_L_ROR : return instruction_t (TYPE_SHIFT ,OPERATION_SHIFT_L_ROR ,ORBIS32,2); |
---|
79 | case INSTRUCTION_L_RORI : return instruction_t (TYPE_SHIFT ,OPERATION_SHIFT_L_ROR ,ORBIS32,2); |
---|
80 | case INSTRUCTION_L_SB : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_STORE_8 ,ORBIS32,1); |
---|
81 | case INSTRUCTION_L_SD : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_STORE_64 ,ORBIS64,1); |
---|
82 | case INSTRUCTION_L_SFEQ : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFEQ ,ORBIS32,1); |
---|
83 | case INSTRUCTION_L_SFEQI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFEQ ,ORBIS32,1); |
---|
84 | case INSTRUCTION_L_SFGES : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFGES ,ORBIS32,1); |
---|
85 | case INSTRUCTION_L_SFGESI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFGES ,ORBIS32,2); |
---|
86 | case INSTRUCTION_L_SFGEU : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFGEU ,ORBIS32,1); |
---|
87 | case INSTRUCTION_L_SFGEUI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFGEU ,ORBIS32,2); |
---|
88 | case INSTRUCTION_L_SFGTS : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFGTS ,ORBIS32,1); |
---|
89 | case INSTRUCTION_L_SFGTSI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFGTS ,ORBIS32,2); |
---|
90 | case INSTRUCTION_L_SFGTU : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFGTU ,ORBIS32,1); |
---|
91 | case INSTRUCTION_L_SFGTUI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFGTU ,ORBIS32,2); |
---|
92 | case INSTRUCTION_L_SFLES : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFLES ,ORBIS32,1); |
---|
93 | case INSTRUCTION_L_SFLESI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFLES ,ORBIS32,2); |
---|
94 | case INSTRUCTION_L_SFLEU : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFLEU ,ORBIS32,1); |
---|
95 | case INSTRUCTION_L_SFLEUI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFLEU ,ORBIS32,2); |
---|
96 | case INSTRUCTION_L_SFLTS : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFLTS ,ORBIS32,1); |
---|
97 | case INSTRUCTION_L_SFLTSI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFLTS ,ORBIS32,2); |
---|
98 | case INSTRUCTION_L_SFLTU : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFLTU ,ORBIS32,1); |
---|
99 | case INSTRUCTION_L_SFLTUI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFLTU ,ORBIS32,2); |
---|
100 | case INSTRUCTION_L_SFNE : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFNE ,ORBIS32,1); |
---|
101 | case INSTRUCTION_L_SFNEI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFNE ,ORBIS32,2); |
---|
102 | case INSTRUCTION_L_SH : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_STORE_16 ,ORBIS32,1); |
---|
103 | case INSTRUCTION_L_SLL : return instruction_t (TYPE_SHIFT ,OPERATION_SHIFT_L_SLL ,ORBIS32,1); |
---|
104 | case INSTRUCTION_L_SLLI : return instruction_t (TYPE_SHIFT ,OPERATION_SHIFT_L_SLL ,ORBIS32,1); |
---|
105 | case INSTRUCTION_L_SRA : return instruction_t (TYPE_SHIFT ,OPERATION_SHIFT_L_SRA ,ORBIS32,1); |
---|
106 | case INSTRUCTION_L_SRAI : return instruction_t (TYPE_SHIFT ,OPERATION_SHIFT_L_SRA ,ORBIS32,1); |
---|
107 | case INSTRUCTION_L_SRL : return instruction_t (TYPE_SHIFT ,OPERATION_SHIFT_L_SRL ,ORBIS32,1); |
---|
108 | case INSTRUCTION_L_SRLI : return instruction_t (TYPE_SHIFT ,OPERATION_SHIFT_L_SRL ,ORBIS32,1); |
---|
109 | case INSTRUCTION_L_SUB : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_SUB ,ORBIS32,1); |
---|
110 | case INSTRUCTION_L_SW : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_STORE_32 ,ORBIS32,1); |
---|
111 | case INSTRUCTION_L_SYS : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_SYS ,ORBIS32,1); |
---|
112 | case INSTRUCTION_L_TRAP : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_TRAP ,ORBIS32,2); |
---|
113 | case INSTRUCTION_L_XOR : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_XOR ,ORBIS32,1); |
---|
114 | case INSTRUCTION_L_XORI : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_XOR ,ORBIS32,1); |
---|
115 | |
---|
116 | case INSTRUCTION_LF_ADD_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
117 | case INSTRUCTION_LF_ADD_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
118 | case INSTRUCTION_LF_CUST1_D : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_LF_1_D ,ORFPX64,2); |
---|
119 | case INSTRUCTION_LF_CUST1_S : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_LF_1_S ,ORFPX32,2); |
---|
120 | case INSTRUCTION_LF_DIV_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,2); |
---|
121 | case INSTRUCTION_LF_DIV_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,2); |
---|
122 | case INSTRUCTION_LF_FTOI_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
123 | case INSTRUCTION_LF_FTOI_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
124 | case INSTRUCTION_LF_ITOF_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
125 | case INSTRUCTION_LF_ITOF_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
126 | case INSTRUCTION_LF_MADD_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,2); |
---|
127 | case INSTRUCTION_LF_MADD_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,2); |
---|
128 | case INSTRUCTION_LF_MUL_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
129 | case INSTRUCTION_LF_MUL_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
130 | case INSTRUCTION_LF_REM_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,2); |
---|
131 | case INSTRUCTION_LF_REM_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,2); |
---|
132 | case INSTRUCTION_LF_SFEQ_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
133 | case INSTRUCTION_LF_SFEQ_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
134 | case INSTRUCTION_LF_SFGE_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
135 | case INSTRUCTION_LF_SFGE_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
136 | case INSTRUCTION_LF_SFGT_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
137 | case INSTRUCTION_LF_SFGT_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
138 | case INSTRUCTION_LF_SFLE_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
139 | case INSTRUCTION_LF_SFLE_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
140 | case INSTRUCTION_LF_SFLT_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
141 | case INSTRUCTION_LF_SFLT_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
142 | case INSTRUCTION_LF_SFNE_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
143 | case INSTRUCTION_LF_SFNE_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
144 | case INSTRUCTION_LF_SUB_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
145 | case INSTRUCTION_LF_SUB_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
146 | |
---|
147 | case INSTRUCTION_LV_ADD_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
148 | case INSTRUCTION_LV_ADD_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
149 | case INSTRUCTION_LV_ADDS_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
150 | case INSTRUCTION_LV_ADDS_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
151 | case INSTRUCTION_LV_ADDU_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
152 | case INSTRUCTION_LV_ADDU_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
153 | case INSTRUCTION_LV_ADDUS_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
154 | case INSTRUCTION_LV_ADDUS_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
155 | case INSTRUCTION_LV_ALL_EQ_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
156 | case INSTRUCTION_LV_ALL_EQ_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
157 | case INSTRUCTION_LV_ALL_GE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
158 | case INSTRUCTION_LV_ALL_GE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
159 | case INSTRUCTION_LV_ALL_GT_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
160 | case INSTRUCTION_LV_ALL_GT_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
161 | case INSTRUCTION_LV_ALL_LE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
162 | case INSTRUCTION_LV_ALL_LE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
163 | case INSTRUCTION_LV_ALL_LT_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
164 | case INSTRUCTION_LV_ALL_LT_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
165 | case INSTRUCTION_LV_ALL_NE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
166 | case INSTRUCTION_LV_ALL_NE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
167 | case INSTRUCTION_LV_AND : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
168 | case INSTRUCTION_LV_ANY_EQ_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
169 | case INSTRUCTION_LV_ANY_EQ_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
170 | case INSTRUCTION_LV_ANY_GE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
171 | case INSTRUCTION_LV_ANY_GE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
172 | case INSTRUCTION_LV_ANY_GT_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
173 | case INSTRUCTION_LV_ANY_GT_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
174 | case INSTRUCTION_LV_ANY_LE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
175 | case INSTRUCTION_LV_ANY_LE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
176 | case INSTRUCTION_LV_ANY_LT_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
177 | case INSTRUCTION_LV_ANY_LT_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
178 | case INSTRUCTION_LV_ANY_NE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
179 | case INSTRUCTION_LV_ANY_NE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
180 | case INSTRUCTION_LV_AVG_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
181 | case INSTRUCTION_LV_AVG_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
182 | case INSTRUCTION_LV_CMP_EQ_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
183 | case INSTRUCTION_LV_CMP_EQ_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
184 | case INSTRUCTION_LV_CMP_GE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
185 | case INSTRUCTION_LV_CMP_GE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
186 | case INSTRUCTION_LV_CMP_GT_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
187 | case INSTRUCTION_LV_CMP_GT_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
188 | case INSTRUCTION_LV_CMP_LE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
189 | case INSTRUCTION_LV_CMP_LE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
190 | case INSTRUCTION_LV_CMP_LT_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
191 | case INSTRUCTION_LV_CMP_LT_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
192 | case INSTRUCTION_LV_CMP_NE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
193 | case INSTRUCTION_LV_CMP_NE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
194 | case INSTRUCTION_LV_CUST1 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_LV_1 ,ORVDX64,2); |
---|
195 | case INSTRUCTION_LV_CUST2 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_LV_2 ,ORVDX64,2); |
---|
196 | case INSTRUCTION_LV_CUST3 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_LV_3 ,ORVDX64,2); |
---|
197 | case INSTRUCTION_LV_CUST4 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_LV_4 ,ORVDX64,2); |
---|
198 | case INSTRUCTION_LV_MADDS_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
199 | case INSTRUCTION_LV_MAX_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
200 | case INSTRUCTION_LV_MAX_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
201 | case INSTRUCTION_LV_MERGE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
202 | case INSTRUCTION_LV_MERGE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
203 | case INSTRUCTION_LV_MIN_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
204 | case INSTRUCTION_LV_MIN_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
205 | case INSTRUCTION_LV_MSUBS_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
206 | case INSTRUCTION_LV_MULS_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,2); |
---|
207 | case INSTRUCTION_LV_NAND : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
208 | case INSTRUCTION_LV_NOR : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
209 | case INSTRUCTION_LV_OR : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
210 | case INSTRUCTION_LV_PACK_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
211 | case INSTRUCTION_LV_PACK_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
212 | case INSTRUCTION_LV_PACKS_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
213 | case INSTRUCTION_LV_PACKS_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
214 | case INSTRUCTION_LV_PACKUS_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
215 | case INSTRUCTION_LV_PACKUS_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
216 | case INSTRUCTION_LV_PERM_N : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
217 | case INSTRUCTION_LV_RL_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
218 | case INSTRUCTION_LV_RL_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
219 | case INSTRUCTION_LV_SLL : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
220 | case INSTRUCTION_LV_SLL_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
221 | case INSTRUCTION_LV_SLL_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
222 | case INSTRUCTION_LV_SRA_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
223 | case INSTRUCTION_LV_SRA_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
224 | case INSTRUCTION_LV_SRL : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
225 | case INSTRUCTION_LV_SRL_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
226 | case INSTRUCTION_LV_SRL_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
227 | case INSTRUCTION_LV_SUB_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
228 | case INSTRUCTION_LV_SUB_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
229 | case INSTRUCTION_LV_SUBS_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
230 | case INSTRUCTION_LV_SUBS_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
231 | case INSTRUCTION_LV_SUBU_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
232 | case INSTRUCTION_LV_SUBU_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
233 | case INSTRUCTION_LV_SUBUS_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
234 | case INSTRUCTION_LV_SUBUS_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
235 | case INSTRUCTION_LV_UNPACK_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
236 | case INSTRUCTION_LV_UNPACK_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
237 | case INSTRUCTION_LV_XOR : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
238 | |
---|
239 | default : throw (ERRORMORPHEO (FUNCTION,_("Unknow instruction"))); |
---|
240 | } |
---|
241 | }; |
---|
242 | |
---|
243 | #undef FUNCTION |
---|
244 | #define FUNCTION "instruction_size_data" |
---|
245 | uint32_t instruction_size_data (uint32_t instruction) |
---|
246 | { |
---|
247 | ISA subset = instruction_information(instruction)._isa_subset; |
---|
248 | |
---|
249 | switch(subset) |
---|
250 | { |
---|
251 | case ORBIS32 : |
---|
252 | case ORFPX32 : return 32; |
---|
253 | case ORBIS64 : |
---|
254 | case ORFPX64 : |
---|
255 | case ORVDX64 : return 64; |
---|
256 | default : throw (ERRORMORPHEO (FUNCTION,_("Unknow subset"))); |
---|
257 | } |
---|
258 | } |
---|
259 | |
---|
260 | }; // end namespace behavioural |
---|
261 | }; // end namespace morpheo |
---|