summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/arm/dyncom/arm_dyncom_interpreter.cpp14
-rw-r--r--src/core/arm/dyncom/arm_dyncom_trans.inc250
-rw-r--r--src/core/arm/dyncom/arm_dyncom_trans_struct.inc2
-rw-r--r--src/core/arm/skyeye_common/vfp/vfpinstr.cpp64
4 files changed, 164 insertions, 166 deletions
diff --git a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
index b45a6cd64..0e38bef22 100644
--- a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
+++ b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
@@ -24,7 +24,7 @@
24 24
25#include "core/gdbstub/gdbstub.h" 25#include "core/gdbstub/gdbstub.h"
26 26
27enum { 27enum class TransExtData {
28 COND = (1 << 0), 28 COND = (1 << 0),
29 NON_BRANCH = (1 << 1), 29 NON_BRANCH = (1 << 1),
30 DIRECT_BRANCH = (1 << 2), 30 DIRECT_BRANCH = (1 << 2),
@@ -853,14 +853,14 @@ static int InterpreterTranslateBlock(ARMul_State* cpu, int& bb_start, u32 addr)
853 // Go on next, until terminal instruction 853 // Go on next, until terminal instruction
854 // Save start addr of basicblock in CreamCache 854 // Save start addr of basicblock in CreamCache
855 ARM_INST_PTR inst_base = nullptr; 855 ARM_INST_PTR inst_base = nullptr;
856 int ret = NON_BRANCH; 856 TransExtData ret = TransExtData::NON_BRANCH;
857 int size = 0; // instruction size of basic block 857 int size = 0; // instruction size of basic block
858 bb_start = top; 858 bb_start = top;
859 859
860 u32 phys_addr = addr; 860 u32 phys_addr = addr;
861 u32 pc_start = cpu->Reg[15]; 861 u32 pc_start = cpu->Reg[15];
862 862
863 while (ret == NON_BRANCH) { 863 while (ret == TransExtData::NON_BRANCH) {
864 unsigned int inst_size = InterpreterTranslateInstruction(cpu, phys_addr, inst_base); 864 unsigned int inst_size = InterpreterTranslateInstruction(cpu, phys_addr, inst_base);
865 865
866 size++; 866 size++;
@@ -868,7 +868,7 @@ static int InterpreterTranslateBlock(ARMul_State* cpu, int& bb_start, u32 addr)
868 phys_addr += inst_size; 868 phys_addr += inst_size;
869 869
870 if ((phys_addr & 0xfff) == 0) { 870 if ((phys_addr & 0xfff) == 0) {
871 inst_base->br = END_OF_PAGE; 871 inst_base->br = TransExtData::END_OF_PAGE;
872 } 872 }
873 ret = inst_base->br; 873 ret = inst_base->br;
874 }; 874 };
@@ -889,8 +889,8 @@ static int InterpreterTranslateSingle(ARMul_State* cpu, int& bb_start, u32 addr)
889 889
890 InterpreterTranslateInstruction(cpu, phys_addr, inst_base); 890 InterpreterTranslateInstruction(cpu, phys_addr, inst_base);
891 891
892 if (inst_base->br == NON_BRANCH) { 892 if (inst_base->br == TransExtData::NON_BRANCH) {
893 inst_base->br = SINGLE_STEP; 893 inst_base->br = TransExtData::SINGLE_STEP;
894 } 894 }
895 895
896 cpu->instruction_cache[pc_start] = bb_start; 896 cpu->instruction_cache[pc_start] = bb_start;
@@ -935,7 +935,7 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) {
935 #define SET_PC (cpu->Reg[15] = cpu->Reg[15] + 8 + inst_cream->signed_immed_24) 935 #define SET_PC (cpu->Reg[15] = cpu->Reg[15] + 8 + inst_cream->signed_immed_24)
936 #define SHIFTER_OPERAND inst_cream->shtop_func(cpu, inst_cream->shifter_operand) 936 #define SHIFTER_OPERAND inst_cream->shtop_func(cpu, inst_cream->shifter_operand)
937 937
938 #define FETCH_INST if (inst_base->br != NON_BRANCH) goto DISPATCH; \ 938 #define FETCH_INST if (inst_base->br != TransExtData::NON_BRANCH) goto DISPATCH; \
939 inst_base = (arm_inst *)&inst_buf[ptr] 939 inst_base = (arm_inst *)&inst_buf[ptr]
940 940
941 #define INC_PC(l) ptr += sizeof(arm_inst) + l 941 #define INC_PC(l) ptr += sizeof(arm_inst) + l
diff --git a/src/core/arm/dyncom/arm_dyncom_trans.inc b/src/core/arm/dyncom/arm_dyncom_trans.inc
index b4bf79240..8cc5a4df8 100644
--- a/src/core/arm/dyncom/arm_dyncom_trans.inc
+++ b/src/core/arm/dyncom/arm_dyncom_trans.inc
@@ -7,7 +7,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(adc)(unsigned int inst, int index)
7 7
8 inst_base->cond = BITS(inst, 28, 31); 8 inst_base->cond = BITS(inst, 28, 31);
9 inst_base->idx = index; 9 inst_base->idx = index;
10 inst_base->br = NON_BRANCH; 10 inst_base->br = TransExtData::NON_BRANCH;
11 11
12 inst_cream->I = BIT(inst, 25); 12 inst_cream->I = BIT(inst, 25);
13 inst_cream->S = BIT(inst, 20); 13 inst_cream->S = BIT(inst, 20);
@@ -17,7 +17,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(adc)(unsigned int inst, int index)
17 inst_cream->shtop_func = get_shtop(inst); 17 inst_cream->shtop_func = get_shtop(inst);
18 18
19 if (inst_cream->Rd == 15) 19 if (inst_cream->Rd == 15)
20 inst_base->br = INDIRECT_BRANCH; 20 inst_base->br = TransExtData::INDIRECT_BRANCH;
21 21
22 return inst_base; 22 return inst_base;
23} 23}
@@ -28,7 +28,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(add)(unsigned int inst, int index)
28 28
29 inst_base->cond = BITS(inst, 28, 31); 29 inst_base->cond = BITS(inst, 28, 31);
30 inst_base->idx = index; 30 inst_base->idx = index;
31 inst_base->br = NON_BRANCH; 31 inst_base->br = TransExtData::NON_BRANCH;
32 32
33 inst_cream->I = BIT(inst, 25); 33 inst_cream->I = BIT(inst, 25);
34 inst_cream->S = BIT(inst, 20); 34 inst_cream->S = BIT(inst, 20);
@@ -38,7 +38,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(add)(unsigned int inst, int index)
38 inst_cream->shtop_func = get_shtop(inst); 38 inst_cream->shtop_func = get_shtop(inst);
39 39
40 if (inst_cream->Rd == 15) 40 if (inst_cream->Rd == 15)
41 inst_base->br = INDIRECT_BRANCH; 41 inst_base->br = TransExtData::INDIRECT_BRANCH;
42 42
43 return inst_base; 43 return inst_base;
44} 44}
@@ -49,7 +49,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(and)(unsigned int inst, int index)
49 49
50 inst_base->cond = BITS(inst, 28, 31); 50 inst_base->cond = BITS(inst, 28, 31);
51 inst_base->idx = index; 51 inst_base->idx = index;
52 inst_base->br = NON_BRANCH; 52 inst_base->br = TransExtData::NON_BRANCH;
53 53
54 inst_cream->I = BIT(inst, 25); 54 inst_cream->I = BIT(inst, 25);
55 inst_cream->S = BIT(inst, 20); 55 inst_cream->S = BIT(inst, 20);
@@ -59,7 +59,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(and)(unsigned int inst, int index)
59 inst_cream->shtop_func = get_shtop(inst); 59 inst_cream->shtop_func = get_shtop(inst);
60 60
61 if (inst_cream->Rd == 15) 61 if (inst_cream->Rd == 15)
62 inst_base->br = INDIRECT_BRANCH; 62 inst_base->br = TransExtData::INDIRECT_BRANCH;
63 63
64 return inst_base; 64 return inst_base;
65} 65}
@@ -73,12 +73,10 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(bbl)(unsigned int inst, int index)
73 73
74 inst_base->cond = BITS(inst, 28, 31); 74 inst_base->cond = BITS(inst, 28, 31);
75 inst_base->idx = index; 75 inst_base->idx = index;
76 inst_base->br = DIRECT_BRANCH; 76 inst_base->br = TransExtData::DIRECT_BRANCH;
77 77
78 if (BIT(inst, 24)) 78 if (BIT(inst, 24))
79 inst_base->br = CALL; 79 inst_base->br = TransExtData::CALL;
80 if (BITS(inst, 28, 31) <= 0xe)
81 inst_base->br |= COND;
82 80
83 inst_cream->L = BIT(inst, 24); 81 inst_cream->L = BIT(inst, 24);
84 inst_cream->signed_immed_24 = BIT(inst, 23) ? NEGBRANCH : POSBRANCH; 82 inst_cream->signed_immed_24 = BIT(inst, 23) ? NEGBRANCH : POSBRANCH;
@@ -92,7 +90,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(bic)(unsigned int inst, int index)
92 90
93 inst_base->cond = BITS(inst, 28, 31); 91 inst_base->cond = BITS(inst, 28, 31);
94 inst_base->idx = index; 92 inst_base->idx = index;
95 inst_base->br = NON_BRANCH; 93 inst_base->br = TransExtData::NON_BRANCH;
96 94
97 inst_cream->I = BIT(inst, 25); 95 inst_cream->I = BIT(inst, 25);
98 inst_cream->S = BIT(inst, 20); 96 inst_cream->S = BIT(inst, 20);
@@ -102,7 +100,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(bic)(unsigned int inst, int index)
102 inst_cream->shtop_func = get_shtop(inst); 100 inst_cream->shtop_func = get_shtop(inst);
103 101
104 if (inst_cream->Rd == 15) 102 if (inst_cream->Rd == 15)
105 inst_base->br = INDIRECT_BRANCH; 103 inst_base->br = TransExtData::INDIRECT_BRANCH;
106 return inst_base; 104 return inst_base;
107} 105}
108 106
@@ -113,7 +111,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(bkpt)(unsigned int inst, int index)
113 111
114 inst_base->cond = BITS(inst, 28, 31); 112 inst_base->cond = BITS(inst, 28, 31);
115 inst_base->idx = index; 113 inst_base->idx = index;
116 inst_base->br = NON_BRANCH; 114 inst_base->br = TransExtData::NON_BRANCH;
117 115
118 inst_cream->imm = (BITS(inst, 8, 19) << 4) | BITS(inst, 0, 3); 116 inst_cream->imm = (BITS(inst, 8, 19) << 4) | BITS(inst, 0, 3);
119 117
@@ -127,7 +125,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(blx)(unsigned int inst, int index)
127 125
128 inst_base->cond = BITS(inst, 28, 31); 126 inst_base->cond = BITS(inst, 28, 31);
129 inst_base->idx = index; 127 inst_base->idx = index;
130 inst_base->br = INDIRECT_BRANCH; 128 inst_base->br = TransExtData::INDIRECT_BRANCH;
131 129
132 inst_cream->inst = inst; 130 inst_cream->inst = inst;
133 if (BITS(inst, 20, 27) == 0x12 && BITS(inst, 4, 7) == 0x3) { 131 if (BITS(inst, 20, 27) == 0x12 && BITS(inst, 4, 7) == 0x3) {
@@ -145,7 +143,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(bx)(unsigned int inst, int index)
145 143
146 inst_base->cond = BITS(inst, 28, 31); 144 inst_base->cond = BITS(inst, 28, 31);
147 inst_base->idx = index; 145 inst_base->idx = index;
148 inst_base->br = INDIRECT_BRANCH; 146 inst_base->br = TransExtData::INDIRECT_BRANCH;
149 147
150 inst_cream->Rm = BITS(inst, 0, 3); 148 inst_cream->Rm = BITS(inst, 0, 3);
151 149
@@ -162,7 +160,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(cdp)(unsigned int inst, int index) {
162 160
163 inst_base->cond = BITS(inst, 28, 31); 161 inst_base->cond = BITS(inst, 28, 31);
164 inst_base->idx = index; 162 inst_base->idx = index;
165 inst_base->br = NON_BRANCH; 163 inst_base->br = TransExtData::NON_BRANCH;
166 164
167 inst_cream->CRm = BITS(inst, 0, 3); 165 inst_cream->CRm = BITS(inst, 0, 3);
168 inst_cream->CRd = BITS(inst, 12, 15); 166 inst_cream->CRd = BITS(inst, 12, 15);
@@ -180,7 +178,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(clrex)(unsigned int inst, int index)
180 arm_inst *inst_base = (arm_inst *)AllocBuffer(sizeof(arm_inst) + sizeof(clrex_inst)); 178 arm_inst *inst_base = (arm_inst *)AllocBuffer(sizeof(arm_inst) + sizeof(clrex_inst));
181 inst_base->cond = BITS(inst, 28, 31); 179 inst_base->cond = BITS(inst, 28, 31);
182 inst_base->idx = index; 180 inst_base->idx = index;
183 inst_base->br = NON_BRANCH; 181 inst_base->br = TransExtData::NON_BRANCH;
184 182
185 return inst_base; 183 return inst_base;
186} 184}
@@ -191,7 +189,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(clz)(unsigned int inst, int index)
191 189
192 inst_base->cond = BITS(inst, 28, 31); 190 inst_base->cond = BITS(inst, 28, 31);
193 inst_base->idx = index; 191 inst_base->idx = index;
194 inst_base->br = NON_BRANCH; 192 inst_base->br = TransExtData::NON_BRANCH;
195 193
196 inst_cream->Rm = BITS(inst, 0, 3); 194 inst_cream->Rm = BITS(inst, 0, 3);
197 inst_cream->Rd = BITS(inst, 12, 15); 195 inst_cream->Rd = BITS(inst, 12, 15);
@@ -205,7 +203,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(cmn)(unsigned int inst, int index)
205 203
206 inst_base->cond = BITS(inst, 28, 31); 204 inst_base->cond = BITS(inst, 28, 31);
207 inst_base->idx = index; 205 inst_base->idx = index;
208 inst_base->br = NON_BRANCH; 206 inst_base->br = TransExtData::NON_BRANCH;
209 207
210 inst_cream->I = BIT(inst, 25); 208 inst_cream->I = BIT(inst, 25);
211 inst_cream->Rn = BITS(inst, 16, 19); 209 inst_cream->Rn = BITS(inst, 16, 19);
@@ -221,7 +219,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(cmp)(unsigned int inst, int index)
221 219
222 inst_base->cond = BITS(inst, 28, 31); 220 inst_base->cond = BITS(inst, 28, 31);
223 inst_base->idx = index; 221 inst_base->idx = index;
224 inst_base->br = NON_BRANCH; 222 inst_base->br = TransExtData::NON_BRANCH;
225 223
226 inst_cream->I = BIT(inst, 25); 224 inst_cream->I = BIT(inst, 25);
227 inst_cream->Rn = BITS(inst, 16, 19); 225 inst_cream->Rn = BITS(inst, 16, 19);
@@ -237,7 +235,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(cps)(unsigned int inst, int index)
237 235
238 inst_base->cond = BITS(inst, 28, 31); 236 inst_base->cond = BITS(inst, 28, 31);
239 inst_base->idx = index; 237 inst_base->idx = index;
240 inst_base->br = NON_BRANCH; 238 inst_base->br = TransExtData::NON_BRANCH;
241 239
242 inst_cream->imod0 = BIT(inst, 18); 240 inst_cream->imod0 = BIT(inst, 18);
243 inst_cream->imod1 = BIT(inst, 19); 241 inst_cream->imod1 = BIT(inst, 19);
@@ -256,7 +254,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(cpy)(unsigned int inst, int index)
256 254
257 inst_base->cond = BITS(inst, 28, 31); 255 inst_base->cond = BITS(inst, 28, 31);
258 inst_base->idx = index; 256 inst_base->idx = index;
259 inst_base->br = NON_BRANCH; 257 inst_base->br = TransExtData::NON_BRANCH;
260 258
261 inst_cream->I = BIT(inst, 25); 259 inst_cream->I = BIT(inst, 25);
262 inst_cream->S = BIT(inst, 20); 260 inst_cream->S = BIT(inst, 20);
@@ -265,7 +263,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(cpy)(unsigned int inst, int index)
265 inst_cream->shtop_func = get_shtop(inst); 263 inst_cream->shtop_func = get_shtop(inst);
266 264
267 if (inst_cream->Rd == 15) { 265 if (inst_cream->Rd == 15) {
268 inst_base->br = INDIRECT_BRANCH; 266 inst_base->br = TransExtData::INDIRECT_BRANCH;
269 } 267 }
270 return inst_base; 268 return inst_base;
271} 269}
@@ -276,7 +274,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(eor)(unsigned int inst, int index)
276 274
277 inst_base->cond = BITS(inst, 28, 31); 275 inst_base->cond = BITS(inst, 28, 31);
278 inst_base->idx = index; 276 inst_base->idx = index;
279 inst_base->br = NON_BRANCH; 277 inst_base->br = TransExtData::NON_BRANCH;
280 278
281 inst_cream->I = BIT(inst, 25); 279 inst_cream->I = BIT(inst, 25);
282 inst_cream->S = BIT(inst, 20); 280 inst_cream->S = BIT(inst, 20);
@@ -286,7 +284,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(eor)(unsigned int inst, int index)
286 inst_cream->shtop_func = get_shtop(inst); 284 inst_cream->shtop_func = get_shtop(inst);
287 285
288 if (inst_cream->Rd == 15) 286 if (inst_cream->Rd == 15)
289 inst_base->br = INDIRECT_BRANCH; 287 inst_base->br = TransExtData::INDIRECT_BRANCH;
290 288
291 return inst_base; 289 return inst_base;
292} 290}
@@ -295,7 +293,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldc)(unsigned int inst, int index)
295 arm_inst *inst_base = (arm_inst *)AllocBuffer(sizeof(arm_inst) + sizeof(ldc_inst)); 293 arm_inst *inst_base = (arm_inst *)AllocBuffer(sizeof(arm_inst) + sizeof(ldc_inst));
296 inst_base->cond = BITS(inst, 28, 31); 294 inst_base->cond = BITS(inst, 28, 31);
297 inst_base->idx = index; 295 inst_base->idx = index;
298 inst_base->br = NON_BRANCH; 296 inst_base->br = TransExtData::NON_BRANCH;
299 297
300 return inst_base; 298 return inst_base;
301} 299}
@@ -306,13 +304,13 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldm)(unsigned int inst, int index)
306 304
307 inst_base->cond = BITS(inst, 28, 31); 305 inst_base->cond = BITS(inst, 28, 31);
308 inst_base->idx = index; 306 inst_base->idx = index;
309 inst_base->br = NON_BRANCH; 307 inst_base->br = TransExtData::NON_BRANCH;
310 308
311 inst_cream->inst = inst; 309 inst_cream->inst = inst;
312 inst_cream->get_addr = get_calc_addr_op(inst); 310 inst_cream->get_addr = get_calc_addr_op(inst);
313 311
314 if (BIT(inst, 15)) { 312 if (BIT(inst, 15)) {
315 inst_base->br = INDIRECT_BRANCH; 313 inst_base->br = TransExtData::INDIRECT_BRANCH;
316 } 314 }
317 return inst_base; 315 return inst_base;
318} 316}
@@ -323,7 +321,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(sxth)(unsigned int inst, int index)
323 321
324 inst_base->cond = BITS(inst, 28, 31); 322 inst_base->cond = BITS(inst, 28, 31);
325 inst_base->idx = index; 323 inst_base->idx = index;
326 inst_base->br = NON_BRANCH; 324 inst_base->br = TransExtData::NON_BRANCH;
327 325
328 inst_cream->Rd = BITS(inst, 12, 15); 326 inst_cream->Rd = BITS(inst, 12, 15);
329 inst_cream->Rm = BITS(inst, 0, 3); 327 inst_cream->Rm = BITS(inst, 0, 3);
@@ -338,13 +336,13 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldr)(unsigned int inst, int index)
338 336
339 inst_base->cond = BITS(inst, 28, 31); 337 inst_base->cond = BITS(inst, 28, 31);
340 inst_base->idx = index; 338 inst_base->idx = index;
341 inst_base->br = NON_BRANCH; 339 inst_base->br = TransExtData::NON_BRANCH;
342 340
343 inst_cream->inst = inst; 341 inst_cream->inst = inst;
344 inst_cream->get_addr = get_calc_addr_op(inst); 342 inst_cream->get_addr = get_calc_addr_op(inst);
345 343
346 if (BITS(inst, 12, 15) == 15) 344 if (BITS(inst, 12, 15) == 15)
347 inst_base->br = INDIRECT_BRANCH; 345 inst_base->br = TransExtData::INDIRECT_BRANCH;
348 346
349 return inst_base; 347 return inst_base;
350} 348}
@@ -356,13 +354,13 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldrcond)(unsigned int inst, int index)
356 354
357 inst_base->cond = BITS(inst, 28, 31); 355 inst_base->cond = BITS(inst, 28, 31);
358 inst_base->idx = index; 356 inst_base->idx = index;
359 inst_base->br = NON_BRANCH; 357 inst_base->br = TransExtData::NON_BRANCH;
360 358
361 inst_cream->inst = inst; 359 inst_cream->inst = inst;
362 inst_cream->get_addr = get_calc_addr_op(inst); 360 inst_cream->get_addr = get_calc_addr_op(inst);
363 361
364 if (BITS(inst, 12, 15) == 15) 362 if (BITS(inst, 12, 15) == 15)
365 inst_base->br = INDIRECT_BRANCH; 363 inst_base->br = TransExtData::INDIRECT_BRANCH;
366 364
367 return inst_base; 365 return inst_base;
368} 366}
@@ -374,7 +372,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(uxth)(unsigned int inst, int index)
374 372
375 inst_base->cond = BITS(inst, 28, 31); 373 inst_base->cond = BITS(inst, 28, 31);
376 inst_base->idx = index; 374 inst_base->idx = index;
377 inst_base->br = NON_BRANCH; 375 inst_base->br = TransExtData::NON_BRANCH;
378 376
379 inst_cream->Rd = BITS(inst, 12, 15); 377 inst_cream->Rd = BITS(inst, 12, 15);
380 inst_cream->rotate = BITS(inst, 10, 11); 378 inst_cream->rotate = BITS(inst, 10, 11);
@@ -389,7 +387,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(uxtah)(unsigned int inst, int index)
389 387
390 inst_base->cond = BITS(inst, 28, 31); 388 inst_base->cond = BITS(inst, 28, 31);
391 inst_base->idx = index; 389 inst_base->idx = index;
392 inst_base->br = NON_BRANCH; 390 inst_base->br = TransExtData::NON_BRANCH;
393 391
394 inst_cream->Rn = BITS(inst, 16, 19); 392 inst_cream->Rn = BITS(inst, 16, 19);
395 inst_cream->Rd = BITS(inst, 12, 15); 393 inst_cream->Rd = BITS(inst, 12, 15);
@@ -405,7 +403,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldrb)(unsigned int inst, int index)
405 403
406 inst_base->cond = BITS(inst, 28, 31); 404 inst_base->cond = BITS(inst, 28, 31);
407 inst_base->idx = index; 405 inst_base->idx = index;
408 inst_base->br = NON_BRANCH; 406 inst_base->br = TransExtData::NON_BRANCH;
409 407
410 inst_cream->inst = inst; 408 inst_cream->inst = inst;
411 inst_cream->get_addr = get_calc_addr_op(inst); 409 inst_cream->get_addr = get_calc_addr_op(inst);
@@ -419,7 +417,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldrbt)(unsigned int inst, int index)
419 417
420 inst_base->cond = BITS(inst, 28, 31); 418 inst_base->cond = BITS(inst, 28, 31);
421 inst_base->idx = index; 419 inst_base->idx = index;
422 inst_base->br = NON_BRANCH; 420 inst_base->br = TransExtData::NON_BRANCH;
423 421
424 inst_cream->inst = inst; 422 inst_cream->inst = inst;
425 if (BITS(inst, 25, 27) == 2) { 423 if (BITS(inst, 25, 27) == 2) {
@@ -439,7 +437,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldrd)(unsigned int inst, int index)
439 437
440 inst_base->cond = BITS(inst, 28, 31); 438 inst_base->cond = BITS(inst, 28, 31);
441 inst_base->idx = index; 439 inst_base->idx = index;
442 inst_base->br = NON_BRANCH; 440 inst_base->br = TransExtData::NON_BRANCH;
443 441
444 inst_cream->inst = inst; 442 inst_cream->inst = inst;
445 inst_cream->get_addr = get_calc_addr_op(inst); 443 inst_cream->get_addr = get_calc_addr_op(inst);
@@ -453,7 +451,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldrex)(unsigned int inst, int index)
453 451
454 inst_base->cond = BITS(inst, 28, 31); 452 inst_base->cond = BITS(inst, 28, 31);
455 inst_base->idx = index; 453 inst_base->idx = index;
456 inst_base->br = (BITS(inst, 12, 15) == 15) ? INDIRECT_BRANCH : NON_BRANCH; // Branch if dest is R15 454 inst_base->br = (BITS(inst, 12, 15) == 15) ? TransExtData::INDIRECT_BRANCH : TransExtData::NON_BRANCH; // Branch if dest is R15
457 455
458 inst_cream->Rn = BITS(inst, 16, 19); 456 inst_cream->Rn = BITS(inst, 16, 19);
459 inst_cream->Rd = BITS(inst, 12, 15); 457 inst_cream->Rd = BITS(inst, 12, 15);
@@ -479,7 +477,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldrh)(unsigned int inst, int index)
479 477
480 inst_base->cond = BITS(inst, 28, 31); 478 inst_base->cond = BITS(inst, 28, 31);
481 inst_base->idx = index; 479 inst_base->idx = index;
482 inst_base->br = NON_BRANCH; 480 inst_base->br = TransExtData::NON_BRANCH;
483 481
484 inst_cream->inst = inst; 482 inst_cream->inst = inst;
485 inst_cream->get_addr = get_calc_addr_op(inst); 483 inst_cream->get_addr = get_calc_addr_op(inst);
@@ -493,7 +491,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldrsb)(unsigned int inst, int index)
493 491
494 inst_base->cond = BITS(inst, 28, 31); 492 inst_base->cond = BITS(inst, 28, 31);
495 inst_base->idx = index; 493 inst_base->idx = index;
496 inst_base->br = NON_BRANCH; 494 inst_base->br = TransExtData::NON_BRANCH;
497 495
498 inst_cream->inst = inst; 496 inst_cream->inst = inst;
499 inst_cream->get_addr = get_calc_addr_op(inst); 497 inst_cream->get_addr = get_calc_addr_op(inst);
@@ -507,7 +505,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldrsh)(unsigned int inst, int index)
507 505
508 inst_base->cond = BITS(inst, 28, 31); 506 inst_base->cond = BITS(inst, 28, 31);
509 inst_base->idx = index; 507 inst_base->idx = index;
510 inst_base->br = NON_BRANCH; 508 inst_base->br = TransExtData::NON_BRANCH;
511 509
512 inst_cream->inst = inst; 510 inst_cream->inst = inst;
513 inst_cream->get_addr = get_calc_addr_op(inst); 511 inst_cream->get_addr = get_calc_addr_op(inst);
@@ -521,7 +519,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldrt)(unsigned int inst, int index)
521 519
522 inst_base->cond = BITS(inst, 28, 31); 520 inst_base->cond = BITS(inst, 28, 31);
523 inst_base->idx = index; 521 inst_base->idx = index;
524 inst_base->br = NON_BRANCH; 522 inst_base->br = TransExtData::NON_BRANCH;
525 523
526 inst_cream->inst = inst; 524 inst_cream->inst = inst;
527 if (BITS(inst, 25, 27) == 2) { 525 if (BITS(inst, 25, 27) == 2) {
@@ -538,7 +536,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldrt)(unsigned int inst, int index)
538 } 536 }
539 537
540 if (BITS(inst, 12, 15) == 15) { 538 if (BITS(inst, 12, 15) == 15) {
541 inst_base->br = INDIRECT_BRANCH; 539 inst_base->br = TransExtData::INDIRECT_BRANCH;
542 } 540 }
543 return inst_base; 541 return inst_base;
544} 542}
@@ -548,7 +546,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(mcr)(unsigned int inst, int index)
548 mcr_inst *inst_cream = (mcr_inst *)inst_base->component; 546 mcr_inst *inst_cream = (mcr_inst *)inst_base->component;
549 inst_base->cond = BITS(inst, 28, 31); 547 inst_base->cond = BITS(inst, 28, 31);
550 inst_base->idx = index; 548 inst_base->idx = index;
551 inst_base->br = NON_BRANCH; 549 inst_base->br = TransExtData::NON_BRANCH;
552 550
553 inst_cream->crn = BITS(inst, 16, 19); 551 inst_cream->crn = BITS(inst, 16, 19);
554 inst_cream->crm = BITS(inst, 0, 3); 552 inst_cream->crm = BITS(inst, 0, 3);
@@ -567,7 +565,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(mcrr)(unsigned int inst, int index)
567 565
568 inst_base->cond = BITS(inst, 28, 31); 566 inst_base->cond = BITS(inst, 28, 31);
569 inst_base->idx = index; 567 inst_base->idx = index;
570 inst_base->br = NON_BRANCH; 568 inst_base->br = TransExtData::NON_BRANCH;
571 569
572 inst_cream->crm = BITS(inst, 0, 3); 570 inst_cream->crm = BITS(inst, 0, 3);
573 inst_cream->opcode_1 = BITS(inst, 4, 7); 571 inst_cream->opcode_1 = BITS(inst, 4, 7);
@@ -585,7 +583,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(mla)(unsigned int inst, int index)
585 583
586 inst_base->cond = BITS(inst, 28, 31); 584 inst_base->cond = BITS(inst, 28, 31);
587 inst_base->idx = index; 585 inst_base->idx = index;
588 inst_base->br = NON_BRANCH; 586 inst_base->br = TransExtData::NON_BRANCH;
589 587
590 inst_cream->S = BIT(inst, 20); 588 inst_cream->S = BIT(inst, 20);
591 inst_cream->Rn = BITS(inst, 12, 15); 589 inst_cream->Rn = BITS(inst, 12, 15);
@@ -602,7 +600,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(mov)(unsigned int inst, int index)
602 600
603 inst_base->cond = BITS(inst, 28, 31); 601 inst_base->cond = BITS(inst, 28, 31);
604 inst_base->idx = index; 602 inst_base->idx = index;
605 inst_base->br = NON_BRANCH; 603 inst_base->br = TransExtData::NON_BRANCH;
606 604
607 inst_cream->I = BIT(inst, 25); 605 inst_cream->I = BIT(inst, 25);
608 inst_cream->S = BIT(inst, 20); 606 inst_cream->S = BIT(inst, 20);
@@ -611,7 +609,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(mov)(unsigned int inst, int index)
611 inst_cream->shtop_func = get_shtop(inst); 609 inst_cream->shtop_func = get_shtop(inst);
612 610
613 if (inst_cream->Rd == 15) { 611 if (inst_cream->Rd == 15) {
614 inst_base->br = INDIRECT_BRANCH; 612 inst_base->br = TransExtData::INDIRECT_BRANCH;
615 } 613 }
616 return inst_base; 614 return inst_base;
617} 615}
@@ -621,7 +619,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(mrc)(unsigned int inst, int index)
621 mrc_inst *inst_cream = (mrc_inst *)inst_base->component; 619 mrc_inst *inst_cream = (mrc_inst *)inst_base->component;
622 inst_base->cond = BITS(inst, 28, 31); 620 inst_base->cond = BITS(inst, 28, 31);
623 inst_base->idx = index; 621 inst_base->idx = index;
624 inst_base->br = NON_BRANCH; 622 inst_base->br = TransExtData::NON_BRANCH;
625 623
626 inst_cream->crn = BITS(inst, 16, 19); 624 inst_cream->crn = BITS(inst, 16, 19);
627 inst_cream->crm = BITS(inst, 0, 3); 625 inst_cream->crm = BITS(inst, 0, 3);
@@ -645,7 +643,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(mrs)(unsigned int inst, int index)
645 643
646 inst_base->cond = BITS(inst, 28, 31); 644 inst_base->cond = BITS(inst, 28, 31);
647 inst_base->idx = index; 645 inst_base->idx = index;
648 inst_base->br = NON_BRANCH; 646 inst_base->br = TransExtData::NON_BRANCH;
649 647
650 inst_cream->Rd = BITS(inst, 12, 15); 648 inst_cream->Rd = BITS(inst, 12, 15);
651 inst_cream->R = BIT(inst, 22); 649 inst_cream->R = BIT(inst, 22);
@@ -659,7 +657,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(msr)(unsigned int inst, int index)
659 657
660 inst_base->cond = BITS(inst, 28, 31); 658 inst_base->cond = BITS(inst, 28, 31);
661 inst_base->idx = index; 659 inst_base->idx = index;
662 inst_base->br = NON_BRANCH; 660 inst_base->br = TransExtData::NON_BRANCH;
663 661
664 inst_cream->field_mask = BITS(inst, 16, 19); 662 inst_cream->field_mask = BITS(inst, 16, 19);
665 inst_cream->R = BIT(inst, 22); 663 inst_cream->R = BIT(inst, 22);
@@ -674,7 +672,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(mul)(unsigned int inst, int index)
674 672
675 inst_base->cond = BITS(inst, 28, 31); 673 inst_base->cond = BITS(inst, 28, 31);
676 inst_base->idx = index; 674 inst_base->idx = index;
677 inst_base->br = NON_BRANCH; 675 inst_base->br = TransExtData::NON_BRANCH;
678 676
679 inst_cream->S = BIT(inst, 20); 677 inst_cream->S = BIT(inst, 20);
680 inst_cream->Rm = BITS(inst, 0, 3); 678 inst_cream->Rm = BITS(inst, 0, 3);
@@ -690,7 +688,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(mvn)(unsigned int inst, int index)
690 688
691 inst_base->cond = BITS(inst, 28, 31); 689 inst_base->cond = BITS(inst, 28, 31);
692 inst_base->idx = index; 690 inst_base->idx = index;
693 inst_base->br = NON_BRANCH; 691 inst_base->br = TransExtData::NON_BRANCH;
694 692
695 inst_cream->I = BIT(inst, 25); 693 inst_cream->I = BIT(inst, 25);
696 inst_cream->S = BIT(inst, 20); 694 inst_cream->S = BIT(inst, 20);
@@ -699,7 +697,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(mvn)(unsigned int inst, int index)
699 inst_cream->shtop_func = get_shtop(inst); 697 inst_cream->shtop_func = get_shtop(inst);
700 698
701 if (inst_cream->Rd == 15) { 699 if (inst_cream->Rd == 15) {
702 inst_base->br = INDIRECT_BRANCH; 700 inst_base->br = TransExtData::INDIRECT_BRANCH;
703 } 701 }
704 return inst_base; 702 return inst_base;
705 703
@@ -711,7 +709,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(orr)(unsigned int inst, int index)
711 709
712 inst_base->cond = BITS(inst, 28, 31); 710 inst_base->cond = BITS(inst, 28, 31);
713 inst_base->idx = index; 711 inst_base->idx = index;
714 inst_base->br = NON_BRANCH; 712 inst_base->br = TransExtData::NON_BRANCH;
715 713
716 inst_cream->I = BIT(inst, 25); 714 inst_cream->I = BIT(inst, 25);
717 inst_cream->S = BIT(inst, 20); 715 inst_cream->S = BIT(inst, 20);
@@ -721,7 +719,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(orr)(unsigned int inst, int index)
721 inst_cream->shtop_func = get_shtop(inst); 719 inst_cream->shtop_func = get_shtop(inst);
722 720
723 if (inst_cream->Rd == 15) 721 if (inst_cream->Rd == 15)
724 inst_base->br = INDIRECT_BRANCH; 722 inst_base->br = TransExtData::INDIRECT_BRANCH;
725 723
726 return inst_base; 724 return inst_base;
727} 725}
@@ -733,7 +731,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(nop)(unsigned int inst, int index)
733 731
734 inst_base->cond = BITS(inst, 28, 31); 732 inst_base->cond = BITS(inst, 28, 31);
735 inst_base->idx = index; 733 inst_base->idx = index;
736 inst_base->br = NON_BRANCH; 734 inst_base->br = TransExtData::NON_BRANCH;
737 735
738 return inst_base; 736 return inst_base;
739} 737}
@@ -745,7 +743,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(pkhbt)(unsigned int inst, int index)
745 743
746 inst_base->cond = BITS(inst, 28, 31); 744 inst_base->cond = BITS(inst, 28, 31);
747 inst_base->idx = index; 745 inst_base->idx = index;
748 inst_base->br = NON_BRANCH; 746 inst_base->br = TransExtData::NON_BRANCH;
749 747
750 inst_cream->Rd = BITS(inst, 12, 15); 748 inst_cream->Rd = BITS(inst, 12, 15);
751 inst_cream->Rn = BITS(inst, 16, 19); 749 inst_cream->Rn = BITS(inst, 16, 19);
@@ -766,7 +764,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(pld)(unsigned int inst, int index)
766 764
767 inst_base->cond = BITS(inst, 28, 31); 765 inst_base->cond = BITS(inst, 28, 31);
768 inst_base->idx = index; 766 inst_base->idx = index;
769 inst_base->br = NON_BRANCH; 767 inst_base->br = TransExtData::NON_BRANCH;
770 768
771 return inst_base; 769 return inst_base;
772} 770}
@@ -778,7 +776,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(qadd)(unsigned int inst, int index)
778 776
779 inst_base->cond = BITS(inst, 28, 31); 777 inst_base->cond = BITS(inst, 28, 31);
780 inst_base->idx = index; 778 inst_base->idx = index;
781 inst_base->br = NON_BRANCH; 779 inst_base->br = TransExtData::NON_BRANCH;
782 780
783 inst_cream->op1 = BITS(inst, 21, 22); 781 inst_cream->op1 = BITS(inst, 21, 22);
784 inst_cream->Rm = BITS(inst, 0, 3); 782 inst_cream->Rm = BITS(inst, 0, 3);
@@ -807,7 +805,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(qadd8)(unsigned int inst, int index)
807 805
808 inst_base->cond = BITS(inst, 28, 31); 806 inst_base->cond = BITS(inst, 28, 31);
809 inst_base->idx = index; 807 inst_base->idx = index;
810 inst_base->br = NON_BRANCH; 808 inst_base->br = TransExtData::NON_BRANCH;
811 809
812 inst_cream->Rm = BITS(inst, 0, 3); 810 inst_cream->Rm = BITS(inst, 0, 3);
813 inst_cream->Rn = BITS(inst, 16, 19); 811 inst_cream->Rn = BITS(inst, 16, 19);
@@ -845,7 +843,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(rev)(unsigned int inst, int index)
845 843
846 inst_base->cond = BITS(inst, 28, 31); 844 inst_base->cond = BITS(inst, 28, 31);
847 inst_base->idx = index; 845 inst_base->idx = index;
848 inst_base->br = NON_BRANCH; 846 inst_base->br = TransExtData::NON_BRANCH;
849 847
850 inst_cream->Rm = BITS(inst, 0, 3); 848 inst_cream->Rm = BITS(inst, 0, 3);
851 inst_cream->Rd = BITS(inst, 12, 15); 849 inst_cream->Rd = BITS(inst, 12, 15);
@@ -870,7 +868,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(rfe)(unsigned int inst, int index)
870 868
871 inst_base->cond = AL; 869 inst_base->cond = AL;
872 inst_base->idx = index; 870 inst_base->idx = index;
873 inst_base->br = INDIRECT_BRANCH; 871 inst_base->br = TransExtData::INDIRECT_BRANCH;
874 872
875 inst_cream->inst = inst; 873 inst_cream->inst = inst;
876 inst_cream->get_addr = get_calc_addr_op(inst); 874 inst_cream->get_addr = get_calc_addr_op(inst);
@@ -885,7 +883,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(rsb)(unsigned int inst, int index)
885 883
886 inst_base->cond = BITS(inst, 28, 31); 884 inst_base->cond = BITS(inst, 28, 31);
887 inst_base->idx = index; 885 inst_base->idx = index;
888 inst_base->br = NON_BRANCH; 886 inst_base->br = TransExtData::NON_BRANCH;
889 887
890 inst_cream->I = BIT(inst, 25); 888 inst_cream->I = BIT(inst, 25);
891 inst_cream->S = BIT(inst, 20); 889 inst_cream->S = BIT(inst, 20);
@@ -895,7 +893,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(rsb)(unsigned int inst, int index)
895 inst_cream->shtop_func = get_shtop(inst); 893 inst_cream->shtop_func = get_shtop(inst);
896 894
897 if (inst_cream->Rd == 15) 895 if (inst_cream->Rd == 15)
898 inst_base->br = INDIRECT_BRANCH; 896 inst_base->br = TransExtData::INDIRECT_BRANCH;
899 897
900 return inst_base; 898 return inst_base;
901} 899}
@@ -906,7 +904,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(rsc)(unsigned int inst, int index)
906 904
907 inst_base->cond = BITS(inst, 28, 31); 905 inst_base->cond = BITS(inst, 28, 31);
908 inst_base->idx = index; 906 inst_base->idx = index;
909 inst_base->br = NON_BRANCH; 907 inst_base->br = TransExtData::NON_BRANCH;
910 908
911 inst_cream->I = BIT(inst, 25); 909 inst_cream->I = BIT(inst, 25);
912 inst_cream->S = BIT(inst, 20); 910 inst_cream->S = BIT(inst, 20);
@@ -916,7 +914,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(rsc)(unsigned int inst, int index)
916 inst_cream->shtop_func = get_shtop(inst); 914 inst_cream->shtop_func = get_shtop(inst);
917 915
918 if (inst_cream->Rd == 15) 916 if (inst_cream->Rd == 15)
919 inst_base->br = INDIRECT_BRANCH; 917 inst_base->br = TransExtData::INDIRECT_BRANCH;
920 918
921 return inst_base; 919 return inst_base;
922} 920}
@@ -927,7 +925,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(sadd8)(unsigned int inst, int index)
927 925
928 inst_base->cond = BITS(inst, 28, 31); 926 inst_base->cond = BITS(inst, 28, 31);
929 inst_base->idx = index; 927 inst_base->idx = index;
930 inst_base->br = NON_BRANCH; 928 inst_base->br = TransExtData::NON_BRANCH;
931 929
932 inst_cream->Rm = BITS(inst, 0, 3); 930 inst_cream->Rm = BITS(inst, 0, 3);
933 inst_cream->Rn = BITS(inst, 16, 19); 931 inst_cream->Rn = BITS(inst, 16, 19);
@@ -965,7 +963,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(sbc)(unsigned int inst, int index)
965 963
966 inst_base->cond = BITS(inst, 28, 31); 964 inst_base->cond = BITS(inst, 28, 31);
967 inst_base->idx = index; 965 inst_base->idx = index;
968 inst_base->br = NON_BRANCH; 966 inst_base->br = TransExtData::NON_BRANCH;
969 967
970 inst_cream->I = BIT(inst, 25); 968 inst_cream->I = BIT(inst, 25);
971 inst_cream->S = BIT(inst, 20); 969 inst_cream->S = BIT(inst, 20);
@@ -975,7 +973,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(sbc)(unsigned int inst, int index)
975 inst_cream->shtop_func = get_shtop(inst); 973 inst_cream->shtop_func = get_shtop(inst);
976 974
977 if (inst_cream->Rd == 15) 975 if (inst_cream->Rd == 15)
978 inst_base->br = INDIRECT_BRANCH; 976 inst_base->br = TransExtData::INDIRECT_BRANCH;
979 977
980 return inst_base; 978 return inst_base;
981} 979}
@@ -986,7 +984,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(sel)(unsigned int inst, int index)
986 984
987 inst_base->cond = BITS(inst, 28, 31); 985 inst_base->cond = BITS(inst, 28, 31);
988 inst_base->idx = index; 986 inst_base->idx = index;
989 inst_base->br = NON_BRANCH; 987 inst_base->br = TransExtData::NON_BRANCH;
990 988
991 inst_cream->Rm = BITS(inst, 0, 3); 989 inst_cream->Rm = BITS(inst, 0, 3);
992 inst_cream->Rn = BITS(inst, 16, 19); 990 inst_cream->Rn = BITS(inst, 16, 19);
@@ -1004,7 +1002,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(setend)(unsigned int inst, int index)
1004 1002
1005 inst_base->cond = AL; 1003 inst_base->cond = AL;
1006 inst_base->idx = index; 1004 inst_base->idx = index;
1007 inst_base->br = NON_BRANCH; 1005 inst_base->br = TransExtData::NON_BRANCH;
1008 1006
1009 inst_cream->set_bigend = BIT(inst, 9); 1007 inst_cream->set_bigend = BIT(inst, 9);
1010 1008
@@ -1017,7 +1015,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(sev)(unsigned int inst, int index)
1017 1015
1018 inst_base->cond = BITS(inst, 28, 31); 1016 inst_base->cond = BITS(inst, 28, 31);
1019 inst_base->idx = index; 1017 inst_base->idx = index;
1020 inst_base->br = NON_BRANCH; 1018 inst_base->br = TransExtData::NON_BRANCH;
1021 1019
1022 return inst_base; 1020 return inst_base;
1023} 1021}
@@ -1029,7 +1027,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(shadd8)(unsigned int inst, int index)
1029 1027
1030 inst_base->cond = BITS(inst, 28, 31); 1028 inst_base->cond = BITS(inst, 28, 31);
1031 inst_base->idx = index; 1029 inst_base->idx = index;
1032 inst_base->br = NON_BRANCH; 1030 inst_base->br = TransExtData::NON_BRANCH;
1033 1031
1034 inst_cream->op1 = BITS(inst, 20, 21); 1032 inst_cream->op1 = BITS(inst, 20, 21);
1035 inst_cream->op2 = BITS(inst, 5, 7); 1033 inst_cream->op2 = BITS(inst, 5, 7);
@@ -1067,7 +1065,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(smla)(unsigned int inst, int index)
1067 1065
1068 inst_base->cond = BITS(inst, 28, 31); 1066 inst_base->cond = BITS(inst, 28, 31);
1069 inst_base->idx = index; 1067 inst_base->idx = index;
1070 inst_base->br = NON_BRANCH; 1068 inst_base->br = TransExtData::NON_BRANCH;
1071 1069
1072 inst_cream->x = BIT(inst, 5); 1070 inst_cream->x = BIT(inst, 5);
1073 inst_cream->y = BIT(inst, 6); 1071 inst_cream->y = BIT(inst, 6);
@@ -1086,7 +1084,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(smlad)(unsigned int inst, int index)
1086 1084
1087 inst_base->cond = BITS(inst, 28, 31); 1085 inst_base->cond = BITS(inst, 28, 31);
1088 inst_base->idx = index; 1086 inst_base->idx = index;
1089 inst_base->br = NON_BRANCH; 1087 inst_base->br = TransExtData::NON_BRANCH;
1090 1088
1091 inst_cream->m = BIT(inst, 5); 1089 inst_cream->m = BIT(inst, 5);
1092 inst_cream->Rn = BITS(inst, 0, 3); 1090 inst_cream->Rn = BITS(inst, 0, 3);
@@ -1118,7 +1116,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(smlal)(unsigned int inst, int index)
1118 1116
1119 inst_base->cond = BITS(inst, 28, 31); 1117 inst_base->cond = BITS(inst, 28, 31);
1120 inst_base->idx = index; 1118 inst_base->idx = index;
1121 inst_base->br = NON_BRANCH; 1119 inst_base->br = TransExtData::NON_BRANCH;
1122 1120
1123 inst_cream->S = BIT(inst, 20); 1121 inst_cream->S = BIT(inst, 20);
1124 inst_cream->Rm = BITS(inst, 0, 3); 1122 inst_cream->Rm = BITS(inst, 0, 3);
@@ -1136,7 +1134,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(smlalxy)(unsigned int inst, int index)
1136 1134
1137 inst_base->cond = BITS(inst, 28, 31); 1135 inst_base->cond = BITS(inst, 28, 31);
1138 inst_base->idx = index; 1136 inst_base->idx = index;
1139 inst_base->br = NON_BRANCH; 1137 inst_base->br = TransExtData::NON_BRANCH;
1140 1138
1141 inst_cream->x = BIT(inst, 5); 1139 inst_cream->x = BIT(inst, 5);
1142 inst_cream->y = BIT(inst, 6); 1140 inst_cream->y = BIT(inst, 6);
@@ -1155,7 +1153,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(smlaw)(unsigned int inst, int index)
1155 1153
1156 inst_base->cond = BITS(inst, 28, 31); 1154 inst_base->cond = BITS(inst, 28, 31);
1157 inst_base->idx = index; 1155 inst_base->idx = index;
1158 inst_base->br = NON_BRANCH; 1156 inst_base->br = TransExtData::NON_BRANCH;
1159 1157
1160 inst_cream->Ra = BITS(inst, 12, 15); 1158 inst_cream->Ra = BITS(inst, 12, 15);
1161 inst_cream->Rm = BITS(inst, 8, 11); 1159 inst_cream->Rm = BITS(inst, 8, 11);
@@ -1173,7 +1171,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(smlald)(unsigned int inst, int index)
1173 1171
1174 inst_base->cond = BITS(inst, 28, 31); 1172 inst_base->cond = BITS(inst, 28, 31);
1175 inst_base->idx = index; 1173 inst_base->idx = index;
1176 inst_base->br = NON_BRANCH; 1174 inst_base->br = TransExtData::NON_BRANCH;
1177 1175
1178 inst_cream->Rm = BITS(inst, 8, 11); 1176 inst_cream->Rm = BITS(inst, 8, 11);
1179 inst_cream->Rn = BITS(inst, 0, 3); 1177 inst_cream->Rn = BITS(inst, 0, 3);
@@ -1197,7 +1195,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(smmla)(unsigned int inst, int index)
1197 1195
1198 inst_base->cond = BITS(inst, 28, 31); 1196 inst_base->cond = BITS(inst, 28, 31);
1199 inst_base->idx = index; 1197 inst_base->idx = index;
1200 inst_base->br = NON_BRANCH; 1198 inst_base->br = TransExtData::NON_BRANCH;
1201 1199
1202 inst_cream->m = BIT(inst, 5); 1200 inst_cream->m = BIT(inst, 5);
1203 inst_cream->Ra = BITS(inst, 12, 15); 1201 inst_cream->Ra = BITS(inst, 12, 15);
@@ -1225,7 +1223,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(smul)(unsigned int inst, int index)
1225 1223
1226 inst_base->cond = BITS(inst, 28, 31); 1224 inst_base->cond = BITS(inst, 28, 31);
1227 inst_base->idx = index; 1225 inst_base->idx = index;
1228 inst_base->br = NON_BRANCH; 1226 inst_base->br = TransExtData::NON_BRANCH;
1229 1227
1230 inst_cream->Rd = BITS(inst, 16, 19); 1228 inst_cream->Rd = BITS(inst, 16, 19);
1231 inst_cream->Rs = BITS(inst, 8, 11); 1229 inst_cream->Rs = BITS(inst, 8, 11);
@@ -1244,7 +1242,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(smull)(unsigned int inst, int index)
1244 1242
1245 inst_base->cond = BITS(inst, 28, 31); 1243 inst_base->cond = BITS(inst, 28, 31);
1246 inst_base->idx = index; 1244 inst_base->idx = index;
1247 inst_base->br = NON_BRANCH; 1245 inst_base->br = TransExtData::NON_BRANCH;
1248 1246
1249 inst_cream->S = BIT(inst, 20); 1247 inst_cream->S = BIT(inst, 20);
1250 inst_cream->Rm = BITS(inst, 0, 3); 1248 inst_cream->Rm = BITS(inst, 0, 3);
@@ -1262,7 +1260,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(smulw)(unsigned int inst, int index)
1262 1260
1263 inst_base->cond = BITS(inst, 28, 31); 1261 inst_base->cond = BITS(inst, 28, 31);
1264 inst_base->idx = index; 1262 inst_base->idx = index;
1265 inst_base->br = NON_BRANCH; 1263 inst_base->br = TransExtData::NON_BRANCH;
1266 1264
1267 inst_cream->m = BIT(inst, 6); 1265 inst_cream->m = BIT(inst, 6);
1268 inst_cream->Rm = BITS(inst, 8, 11); 1266 inst_cream->Rm = BITS(inst, 8, 11);
@@ -1279,7 +1277,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(srs)(unsigned int inst, int index)
1279 1277
1280 inst_base->cond = AL; 1278 inst_base->cond = AL;
1281 inst_base->idx = index; 1279 inst_base->idx = index;
1282 inst_base->br = NON_BRANCH; 1280 inst_base->br = TransExtData::NON_BRANCH;
1283 1281
1284 inst_cream->inst = inst; 1282 inst_cream->inst = inst;
1285 inst_cream->get_addr = get_calc_addr_op(inst); 1283 inst_cream->get_addr = get_calc_addr_op(inst);
@@ -1294,7 +1292,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ssat)(unsigned int inst, int index)
1294 1292
1295 inst_base->cond = BITS(inst, 28, 31); 1293 inst_base->cond = BITS(inst, 28, 31);
1296 inst_base->idx = index; 1294 inst_base->idx = index;
1297 inst_base->br = NON_BRANCH; 1295 inst_base->br = TransExtData::NON_BRANCH;
1298 1296
1299 inst_cream->Rn = BITS(inst, 0, 3); 1297 inst_cream->Rn = BITS(inst, 0, 3);
1300 inst_cream->Rd = BITS(inst, 12, 15); 1298 inst_cream->Rd = BITS(inst, 12, 15);
@@ -1311,7 +1309,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ssat16)(unsigned int inst, int index)
1311 1309
1312 inst_base->cond = BITS(inst, 28, 31); 1310 inst_base->cond = BITS(inst, 28, 31);
1313 inst_base->idx = index; 1311 inst_base->idx = index;
1314 inst_base->br = NON_BRANCH; 1312 inst_base->br = TransExtData::NON_BRANCH;
1315 1313
1316 inst_cream->Rn = BITS(inst, 0, 3); 1314 inst_cream->Rn = BITS(inst, 0, 3);
1317 inst_cream->Rd = BITS(inst, 12, 15); 1315 inst_cream->Rd = BITS(inst, 12, 15);
@@ -1325,7 +1323,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(stc)(unsigned int inst, int index)
1325 arm_inst *inst_base = (arm_inst *)AllocBuffer(sizeof(arm_inst) + sizeof(stc_inst)); 1323 arm_inst *inst_base = (arm_inst *)AllocBuffer(sizeof(arm_inst) + sizeof(stc_inst));
1326 inst_base->cond = BITS(inst, 28, 31); 1324 inst_base->cond = BITS(inst, 28, 31);
1327 inst_base->idx = index; 1325 inst_base->idx = index;
1328 inst_base->br = NON_BRANCH; 1326 inst_base->br = TransExtData::NON_BRANCH;
1329 1327
1330 return inst_base; 1328 return inst_base;
1331} 1329}
@@ -1336,7 +1334,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(stm)(unsigned int inst, int index)
1336 1334
1337 inst_base->cond = BITS(inst, 28, 31); 1335 inst_base->cond = BITS(inst, 28, 31);
1338 inst_base->idx = index; 1336 inst_base->idx = index;
1339 inst_base->br = NON_BRANCH; 1337 inst_base->br = TransExtData::NON_BRANCH;
1340 1338
1341 inst_cream->inst = inst; 1339 inst_cream->inst = inst;
1342 inst_cream->get_addr = get_calc_addr_op(inst); 1340 inst_cream->get_addr = get_calc_addr_op(inst);
@@ -1349,7 +1347,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(sxtb)(unsigned int inst, int index)
1349 1347
1350 inst_base->cond = BITS(inst, 28, 31); 1348 inst_base->cond = BITS(inst, 28, 31);
1351 inst_base->idx = index; 1349 inst_base->idx = index;
1352 inst_base->br = NON_BRANCH; 1350 inst_base->br = TransExtData::NON_BRANCH;
1353 1351
1354 inst_cream->Rd = BITS(inst, 12, 15); 1352 inst_cream->Rd = BITS(inst, 12, 15);
1355 inst_cream->Rm = BITS(inst, 0, 3); 1353 inst_cream->Rm = BITS(inst, 0, 3);
@@ -1364,7 +1362,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(str)(unsigned int inst, int index)
1364 1362
1365 inst_base->cond = BITS(inst, 28, 31); 1363 inst_base->cond = BITS(inst, 28, 31);
1366 inst_base->idx = index; 1364 inst_base->idx = index;
1367 inst_base->br = NON_BRANCH; 1365 inst_base->br = TransExtData::NON_BRANCH;
1368 1366
1369 inst_cream->inst = inst; 1367 inst_cream->inst = inst;
1370 inst_cream->get_addr = get_calc_addr_op(inst); 1368 inst_cream->get_addr = get_calc_addr_op(inst);
@@ -1378,7 +1376,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(uxtb)(unsigned int inst, int index)
1378 1376
1379 inst_base->cond = BITS(inst, 28, 31); 1377 inst_base->cond = BITS(inst, 28, 31);
1380 inst_base->idx = index; 1378 inst_base->idx = index;
1381 inst_base->br = NON_BRANCH; 1379 inst_base->br = TransExtData::NON_BRANCH;
1382 1380
1383 inst_cream->Rd = BITS(inst, 12, 15); 1381 inst_cream->Rd = BITS(inst, 12, 15);
1384 inst_cream->rotate = BITS(inst, 10, 11); 1382 inst_cream->rotate = BITS(inst, 10, 11);
@@ -1393,7 +1391,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(uxtab)(unsigned int inst, int index)
1393 1391
1394 inst_base->cond = BITS(inst, 28, 31); 1392 inst_base->cond = BITS(inst, 28, 31);
1395 inst_base->idx = index; 1393 inst_base->idx = index;
1396 inst_base->br = NON_BRANCH; 1394 inst_base->br = TransExtData::NON_BRANCH;
1397 1395
1398 inst_cream->Rd = BITS(inst, 12, 15); 1396 inst_cream->Rd = BITS(inst, 12, 15);
1399 inst_cream->rotate = BITS(inst, 10, 11); 1397 inst_cream->rotate = BITS(inst, 10, 11);
@@ -1409,7 +1407,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(strb)(unsigned int inst, int index)
1409 1407
1410 inst_base->cond = BITS(inst, 28, 31); 1408 inst_base->cond = BITS(inst, 28, 31);
1411 inst_base->idx = index; 1409 inst_base->idx = index;
1412 inst_base->br = NON_BRANCH; 1410 inst_base->br = TransExtData::NON_BRANCH;
1413 1411
1414 inst_cream->inst = inst; 1412 inst_cream->inst = inst;
1415 inst_cream->get_addr = get_calc_addr_op(inst); 1413 inst_cream->get_addr = get_calc_addr_op(inst);
@@ -1423,7 +1421,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(strbt)(unsigned int inst, int index)
1423 1421
1424 inst_base->cond = BITS(inst, 28, 31); 1422 inst_base->cond = BITS(inst, 28, 31);
1425 inst_base->idx = index; 1423 inst_base->idx = index;
1426 inst_base->br = NON_BRANCH; 1424 inst_base->br = TransExtData::NON_BRANCH;
1427 1425
1428 inst_cream->inst = inst; 1426 inst_cream->inst = inst;
1429 1427
@@ -1443,7 +1441,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(strd)(unsigned int inst, int index){
1443 1441
1444 inst_base->cond = BITS(inst, 28, 31); 1442 inst_base->cond = BITS(inst, 28, 31);
1445 inst_base->idx = index; 1443 inst_base->idx = index;
1446 inst_base->br = NON_BRANCH; 1444 inst_base->br = TransExtData::NON_BRANCH;
1447 1445
1448 inst_cream->inst = inst; 1446 inst_cream->inst = inst;
1449 inst_cream->get_addr = get_calc_addr_op(inst); 1447 inst_cream->get_addr = get_calc_addr_op(inst);
@@ -1457,7 +1455,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(strex)(unsigned int inst, int index)
1457 1455
1458 inst_base->cond = BITS(inst, 28, 31); 1456 inst_base->cond = BITS(inst, 28, 31);
1459 inst_base->idx = index; 1457 inst_base->idx = index;
1460 inst_base->br = NON_BRANCH; 1458 inst_base->br = TransExtData::NON_BRANCH;
1461 1459
1462 inst_cream->Rn = BITS(inst, 16, 19); 1460 inst_cream->Rn = BITS(inst, 16, 19);
1463 inst_cream->Rd = BITS(inst, 12, 15); 1461 inst_cream->Rd = BITS(inst, 12, 15);
@@ -1484,7 +1482,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(strh)(unsigned int inst, int index)
1484 1482
1485 inst_base->cond = BITS(inst, 28, 31); 1483 inst_base->cond = BITS(inst, 28, 31);
1486 inst_base->idx = index; 1484 inst_base->idx = index;
1487 inst_base->br = NON_BRANCH; 1485 inst_base->br = TransExtData::NON_BRANCH;
1488 1486
1489 inst_cream->inst = inst; 1487 inst_cream->inst = inst;
1490 inst_cream->get_addr = get_calc_addr_op(inst); 1488 inst_cream->get_addr = get_calc_addr_op(inst);
@@ -1498,7 +1496,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(strt)(unsigned int inst, int index)
1498 1496
1499 inst_base->cond = BITS(inst, 28, 31); 1497 inst_base->cond = BITS(inst, 28, 31);
1500 inst_base->idx = index; 1498 inst_base->idx = index;
1501 inst_base->br = NON_BRANCH; 1499 inst_base->br = TransExtData::NON_BRANCH;
1502 1500
1503 inst_cream->inst = inst; 1501 inst_cream->inst = inst;
1504 if (BITS(inst, 25, 27) == 2) { 1502 if (BITS(inst, 25, 27) == 2) {
@@ -1523,7 +1521,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(sub)(unsigned int inst, int index)
1523 1521
1524 inst_base->cond = BITS(inst, 28, 31); 1522 inst_base->cond = BITS(inst, 28, 31);
1525 inst_base->idx = index; 1523 inst_base->idx = index;
1526 inst_base->br = NON_BRANCH; 1524 inst_base->br = TransExtData::NON_BRANCH;
1527 1525
1528 inst_cream->I = BIT(inst, 25); 1526 inst_cream->I = BIT(inst, 25);
1529 inst_cream->S = BIT(inst, 20); 1527 inst_cream->S = BIT(inst, 20);
@@ -1533,7 +1531,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(sub)(unsigned int inst, int index)
1533 inst_cream->shtop_func = get_shtop(inst); 1531 inst_cream->shtop_func = get_shtop(inst);
1534 1532
1535 if (inst_cream->Rd == 15) 1533 if (inst_cream->Rd == 15)
1536 inst_base->br = INDIRECT_BRANCH; 1534 inst_base->br = TransExtData::INDIRECT_BRANCH;
1537 1535
1538 return inst_base; 1536 return inst_base;
1539} 1537}
@@ -1544,7 +1542,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(swi)(unsigned int inst, int index)
1544 1542
1545 inst_base->cond = BITS(inst, 28, 31); 1543 inst_base->cond = BITS(inst, 28, 31);
1546 inst_base->idx = index; 1544 inst_base->idx = index;
1547 inst_base->br = NON_BRANCH; 1545 inst_base->br = TransExtData::NON_BRANCH;
1548 1546
1549 inst_cream->num = BITS(inst, 0, 23); 1547 inst_cream->num = BITS(inst, 0, 23);
1550 return inst_base; 1548 return inst_base;
@@ -1556,7 +1554,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(swp)(unsigned int inst, int index)
1556 1554
1557 inst_base->cond = BITS(inst, 28, 31); 1555 inst_base->cond = BITS(inst, 28, 31);
1558 inst_base->idx = index; 1556 inst_base->idx = index;
1559 inst_base->br = NON_BRANCH; 1557 inst_base->br = TransExtData::NON_BRANCH;
1560 1558
1561 inst_cream->Rn = BITS(inst, 16, 19); 1559 inst_cream->Rn = BITS(inst, 16, 19);
1562 inst_cream->Rd = BITS(inst, 12, 15); 1560 inst_cream->Rd = BITS(inst, 12, 15);
@@ -1570,7 +1568,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(swpb)(unsigned int inst, int index){
1570 1568
1571 inst_base->cond = BITS(inst, 28, 31); 1569 inst_base->cond = BITS(inst, 28, 31);
1572 inst_base->idx = index; 1570 inst_base->idx = index;
1573 inst_base->br = NON_BRANCH; 1571 inst_base->br = TransExtData::NON_BRANCH;
1574 1572
1575 inst_cream->Rn = BITS(inst, 16, 19); 1573 inst_cream->Rn = BITS(inst, 16, 19);
1576 inst_cream->Rd = BITS(inst, 12, 15); 1574 inst_cream->Rd = BITS(inst, 12, 15);
@@ -1584,7 +1582,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(sxtab)(unsigned int inst, int index){
1584 1582
1585 inst_base->cond = BITS(inst, 28, 31); 1583 inst_base->cond = BITS(inst, 28, 31);
1586 inst_base->idx = index; 1584 inst_base->idx = index;
1587 inst_base->br = NON_BRANCH; 1585 inst_base->br = TransExtData::NON_BRANCH;
1588 1586
1589 inst_cream->Rd = BITS(inst, 12, 15); 1587 inst_cream->Rd = BITS(inst, 12, 15);
1590 inst_cream->rotate = BITS(inst, 10, 11); 1588 inst_cream->rotate = BITS(inst, 10, 11);
@@ -1601,7 +1599,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(sxtab16)(unsigned int inst, int index)
1601 1599
1602 inst_base->cond = BITS(inst, 28, 31); 1600 inst_base->cond = BITS(inst, 28, 31);
1603 inst_base->idx = index; 1601 inst_base->idx = index;
1604 inst_base->br = NON_BRANCH; 1602 inst_base->br = TransExtData::NON_BRANCH;
1605 1603
1606 inst_cream->Rm = BITS(inst, 0, 3); 1604 inst_cream->Rm = BITS(inst, 0, 3);
1607 inst_cream->Rn = BITS(inst, 16, 19); 1605 inst_cream->Rn = BITS(inst, 16, 19);
@@ -1621,7 +1619,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(sxtah)(unsigned int inst, int index) {
1621 1619
1622 inst_base->cond = BITS(inst, 28, 31); 1620 inst_base->cond = BITS(inst, 28, 31);
1623 inst_base->idx = index; 1621 inst_base->idx = index;
1624 inst_base->br = NON_BRANCH; 1622 inst_base->br = TransExtData::NON_BRANCH;
1625 1623
1626 inst_cream->Rd = BITS(inst, 12, 15); 1624 inst_cream->Rd = BITS(inst, 12, 15);
1627 inst_cream->rotate = BITS(inst, 10, 11); 1625 inst_cream->rotate = BITS(inst, 10, 11);
@@ -1638,7 +1636,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(teq)(unsigned int inst, int index)
1638 1636
1639 inst_base->cond = BITS(inst, 28, 31); 1637 inst_base->cond = BITS(inst, 28, 31);
1640 inst_base->idx = index; 1638 inst_base->idx = index;
1641 inst_base->br = NON_BRANCH; 1639 inst_base->br = TransExtData::NON_BRANCH;
1642 1640
1643 inst_cream->I = BIT(inst, 25); 1641 inst_cream->I = BIT(inst, 25);
1644 inst_cream->Rn = BITS(inst, 16, 19); 1642 inst_cream->Rn = BITS(inst, 16, 19);
@@ -1654,7 +1652,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(tst)(unsigned int inst, int index)
1654 1652
1655 inst_base->cond = BITS(inst, 28, 31); 1653 inst_base->cond = BITS(inst, 28, 31);
1656 inst_base->idx = index; 1654 inst_base->idx = index;
1657 inst_base->br = NON_BRANCH; 1655 inst_base->br = TransExtData::NON_BRANCH;
1658 1656
1659 inst_cream->I = BIT(inst, 25); 1657 inst_cream->I = BIT(inst, 25);
1660 inst_cream->S = BIT(inst, 20); 1658 inst_cream->S = BIT(inst, 20);
@@ -1673,7 +1671,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(uadd8)(unsigned int inst, int index)
1673 1671
1674 inst_base->cond = BITS(inst, 28, 31); 1672 inst_base->cond = BITS(inst, 28, 31);
1675 inst_base->idx = index; 1673 inst_base->idx = index;
1676 inst_base->br = NON_BRANCH; 1674 inst_base->br = TransExtData::NON_BRANCH;
1677 1675
1678 inst_cream->op1 = BITS(inst, 20, 21); 1676 inst_cream->op1 = BITS(inst, 20, 21);
1679 inst_cream->op2 = BITS(inst, 5, 7); 1677 inst_cream->op2 = BITS(inst, 5, 7);
@@ -1711,7 +1709,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(uhadd8)(unsigned int inst, int index)
1711 1709
1712 inst_base->cond = BITS(inst, 28, 31); 1710 inst_base->cond = BITS(inst, 28, 31);
1713 inst_base->idx = index; 1711 inst_base->idx = index;
1714 inst_base->br = NON_BRANCH; 1712 inst_base->br = TransExtData::NON_BRANCH;
1715 1713
1716 inst_cream->op1 = BITS(inst, 20, 21); 1714 inst_cream->op1 = BITS(inst, 20, 21);
1717 inst_cream->op2 = BITS(inst, 5, 7); 1715 inst_cream->op2 = BITS(inst, 5, 7);
@@ -1748,7 +1746,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(umaal)(unsigned int inst, int index)
1748 1746
1749 inst_base->cond = BITS(inst, 28, 31); 1747 inst_base->cond = BITS(inst, 28, 31);
1750 inst_base->idx = index; 1748 inst_base->idx = index;
1751 inst_base->br = NON_BRANCH; 1749 inst_base->br = TransExtData::NON_BRANCH;
1752 1750
1753 inst_cream->Rm = BITS(inst, 8, 11); 1751 inst_cream->Rm = BITS(inst, 8, 11);
1754 inst_cream->Rn = BITS(inst, 0, 3); 1752 inst_cream->Rn = BITS(inst, 0, 3);
@@ -1764,7 +1762,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(umlal)(unsigned int inst, int index)
1764 1762
1765 inst_base->cond = BITS(inst, 28, 31); 1763 inst_base->cond = BITS(inst, 28, 31);
1766 inst_base->idx = index; 1764 inst_base->idx = index;
1767 inst_base->br = NON_BRANCH; 1765 inst_base->br = TransExtData::NON_BRANCH;
1768 1766
1769 inst_cream->S = BIT(inst, 20); 1767 inst_cream->S = BIT(inst, 20);
1770 inst_cream->Rm = BITS(inst, 0, 3); 1768 inst_cream->Rm = BITS(inst, 0, 3);
@@ -1781,7 +1779,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(umull)(unsigned int inst, int index)
1781 1779
1782 inst_base->cond = BITS(inst, 28, 31); 1780 inst_base->cond = BITS(inst, 28, 31);
1783 inst_base->idx = index; 1781 inst_base->idx = index;
1784 inst_base->br = NON_BRANCH; 1782 inst_base->br = TransExtData::NON_BRANCH;
1785 1783
1786 inst_cream->S = BIT(inst, 20); 1784 inst_cream->S = BIT(inst, 20);
1787 inst_cream->Rm = BITS(inst, 0, 3); 1785 inst_cream->Rm = BITS(inst, 0, 3);
@@ -1800,7 +1798,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(b_2_thumb)(unsigned int tinst, int ind
1800 inst_cream->imm = ((tinst & 0x3FF) << 1) | ((tinst & (1 << 10)) ? 0xFFFFF800 : 0); 1798 inst_cream->imm = ((tinst & 0x3FF) << 1) | ((tinst & (1 << 10)) ? 0xFFFFF800 : 0);
1801 1799
1802 inst_base->idx = index; 1800 inst_base->idx = index;
1803 inst_base->br = DIRECT_BRANCH; 1801 inst_base->br = TransExtData::DIRECT_BRANCH;
1804 1802
1805 return inst_base; 1803 return inst_base;
1806} 1804}
@@ -1813,7 +1811,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(b_cond_thumb)(unsigned int tinst, int
1813 inst_cream->imm = (((tinst & 0x7F) << 1) | ((tinst & (1 << 7)) ? 0xFFFFFF00 : 0)); 1811 inst_cream->imm = (((tinst & 0x7F) << 1) | ((tinst & (1 << 7)) ? 0xFFFFFF00 : 0));
1814 inst_cream->cond = ((tinst >> 8) & 0xf); 1812 inst_cream->cond = ((tinst >> 8) & 0xf);
1815 inst_base->idx = index; 1813 inst_base->idx = index;
1816 inst_base->br = DIRECT_BRANCH; 1814 inst_base->br = TransExtData::DIRECT_BRANCH;
1817 1815
1818 return inst_base; 1816 return inst_base;
1819} 1817}
@@ -1826,7 +1824,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(bl_1_thumb)(unsigned int tinst, int in
1826 inst_cream->imm = (((tinst & 0x07FF) << 12) | ((tinst & (1 << 10)) ? 0xFF800000 : 0)); 1824 inst_cream->imm = (((tinst & 0x07FF) << 12) | ((tinst & (1 << 10)) ? 0xFF800000 : 0));
1827 1825
1828 inst_base->idx = index; 1826 inst_base->idx = index;
1829 inst_base->br = NON_BRANCH; 1827 inst_base->br = TransExtData::NON_BRANCH;
1830 return inst_base; 1828 return inst_base;
1831} 1829}
1832static ARM_INST_PTR INTERPRETER_TRANSLATE(bl_2_thumb)(unsigned int tinst, int index) 1830static ARM_INST_PTR INTERPRETER_TRANSLATE(bl_2_thumb)(unsigned int tinst, int index)
@@ -1837,7 +1835,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(bl_2_thumb)(unsigned int tinst, int in
1837 inst_cream->imm = (tinst & 0x07FF) << 1; 1835 inst_cream->imm = (tinst & 0x07FF) << 1;
1838 1836
1839 inst_base->idx = index; 1837 inst_base->idx = index;
1840 inst_base->br = DIRECT_BRANCH; 1838 inst_base->br = TransExtData::DIRECT_BRANCH;
1841 return inst_base; 1839 return inst_base;
1842} 1840}
1843static ARM_INST_PTR INTERPRETER_TRANSLATE(blx_1_thumb)(unsigned int tinst, int index) 1841static ARM_INST_PTR INTERPRETER_TRANSLATE(blx_1_thumb)(unsigned int tinst, int index)
@@ -1849,7 +1847,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(blx_1_thumb)(unsigned int tinst, int i
1849 inst_cream->instr = tinst; 1847 inst_cream->instr = tinst;
1850 1848
1851 inst_base->idx = index; 1849 inst_base->idx = index;
1852 inst_base->br = DIRECT_BRANCH; 1850 inst_base->br = TransExtData::DIRECT_BRANCH;
1853 return inst_base; 1851 return inst_base;
1854} 1852}
1855 1853
@@ -1860,7 +1858,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(uqadd8)(unsigned int inst, int index)
1860 1858
1861 inst_base->cond = BITS(inst, 28, 31); 1859 inst_base->cond = BITS(inst, 28, 31);
1862 inst_base->idx = index; 1860 inst_base->idx = index;
1863 inst_base->br = NON_BRANCH; 1861 inst_base->br = TransExtData::NON_BRANCH;
1864 1862
1865 inst_cream->Rm = BITS(inst, 0, 3); 1863 inst_cream->Rm = BITS(inst, 0, 3);
1866 inst_cream->Rn = BITS(inst, 16, 19); 1864 inst_cream->Rn = BITS(inst, 16, 19);
@@ -1897,7 +1895,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(usada8)(unsigned int inst, int index)
1897 1895
1898 inst_base->cond = BITS(inst, 28, 31); 1896 inst_base->cond = BITS(inst, 28, 31);
1899 inst_base->idx = index; 1897 inst_base->idx = index;
1900 inst_base->br = NON_BRANCH; 1898 inst_base->br = TransExtData::NON_BRANCH;
1901 1899
1902 inst_cream->op1 = BITS(inst, 20, 24); 1900 inst_cream->op1 = BITS(inst, 20, 24);
1903 inst_cream->op2 = BITS(inst, 5, 7); 1901 inst_cream->op2 = BITS(inst, 5, 7);
@@ -1928,7 +1926,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(uxtab16)(unsigned int inst, int index)
1928 1926
1929 inst_base->cond = BITS(inst, 28, 31); 1927 inst_base->cond = BITS(inst, 28, 31);
1930 inst_base->idx = index; 1928 inst_base->idx = index;
1931 inst_base->br = NON_BRANCH; 1929 inst_base->br = TransExtData::NON_BRANCH;
1932 1930
1933 inst_cream->Rm = BITS(inst, 0, 3); 1931 inst_cream->Rm = BITS(inst, 0, 3);
1934 inst_cream->Rn = BITS(inst, 16, 19); 1932 inst_cream->Rn = BITS(inst, 16, 19);
@@ -1948,7 +1946,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(wfe)(unsigned int inst, int index)
1948 1946
1949 inst_base->cond = BITS(inst, 28, 31); 1947 inst_base->cond = BITS(inst, 28, 31);
1950 inst_base->idx = index; 1948 inst_base->idx = index;
1951 inst_base->br = NON_BRANCH; 1949 inst_base->br = TransExtData::NON_BRANCH;
1952 1950
1953 return inst_base; 1951 return inst_base;
1954} 1952}
@@ -1958,7 +1956,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(wfi)(unsigned int inst, int index)
1958 1956
1959 inst_base->cond = BITS(inst, 28, 31); 1957 inst_base->cond = BITS(inst, 28, 31);
1960 inst_base->idx = index; 1958 inst_base->idx = index;
1961 inst_base->br = NON_BRANCH; 1959 inst_base->br = TransExtData::NON_BRANCH;
1962 1960
1963 return inst_base; 1961 return inst_base;
1964} 1962}
@@ -1968,7 +1966,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(yield)(unsigned int inst, int index)
1968 1966
1969 inst_base->cond = BITS(inst, 28, 31); 1967 inst_base->cond = BITS(inst, 28, 31);
1970 inst_base->idx = index; 1968 inst_base->idx = index;
1971 inst_base->br = NON_BRANCH; 1969 inst_base->br = TransExtData::NON_BRANCH;
1972 1970
1973 return inst_base; 1971 return inst_base;
1974} 1972}
diff --git a/src/core/arm/dyncom/arm_dyncom_trans_struct.inc b/src/core/arm/dyncom/arm_dyncom_trans_struct.inc
index 0a7f3ab6e..05139f00f 100644
--- a/src/core/arm/dyncom/arm_dyncom_trans_struct.inc
+++ b/src/core/arm/dyncom/arm_dyncom_trans_struct.inc
@@ -1,7 +1,7 @@
1struct arm_inst { 1struct arm_inst {
2 unsigned int idx; 2 unsigned int idx;
3 unsigned int cond; 3 unsigned int cond;
4 int br; 4 TransExtData br;
5 char component[0]; 5 char component[0];
6}; 6};
7 7
diff --git a/src/core/arm/skyeye_common/vfp/vfpinstr.cpp b/src/core/arm/skyeye_common/vfp/vfpinstr.cpp
index 4f9083515..1a98d0114 100644
--- a/src/core/arm/skyeye_common/vfp/vfpinstr.cpp
+++ b/src/core/arm/skyeye_common/vfp/vfpinstr.cpp
@@ -26,7 +26,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmla)(unsigned int inst, int index)
26 26
27 inst_base->cond = BITS(inst, 28, 31); 27 inst_base->cond = BITS(inst, 28, 31);
28 inst_base->idx = index; 28 inst_base->idx = index;
29 inst_base->br = NON_BRANCH; 29 inst_base->br = TransExtData::NON_BRANCH;
30 30
31 inst_cream->dp_operation = BIT(inst, 8); 31 inst_cream->dp_operation = BIT(inst, 8);
32 inst_cream->instr = inst; 32 inst_cream->instr = inst;
@@ -75,7 +75,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmls)(unsigned int inst, int index)
75 75
76 inst_base->cond = BITS(inst, 28, 31); 76 inst_base->cond = BITS(inst, 28, 31);
77 inst_base->idx = index; 77 inst_base->idx = index;
78 inst_base->br = NON_BRANCH; 78 inst_base->br = TransExtData::NON_BRANCH;
79 79
80 inst_cream->dp_operation = BIT(inst, 8); 80 inst_cream->dp_operation = BIT(inst, 8);
81 inst_cream->instr = inst; 81 inst_cream->instr = inst;
@@ -124,7 +124,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vnmla)(unsigned int inst, int index)
124 124
125 inst_base->cond = BITS(inst, 28, 31); 125 inst_base->cond = BITS(inst, 28, 31);
126 inst_base->idx = index; 126 inst_base->idx = index;
127 inst_base->br = NON_BRANCH; 127 inst_base->br = TransExtData::NON_BRANCH;
128 128
129 inst_cream->dp_operation = BIT(inst, 8); 129 inst_cream->dp_operation = BIT(inst, 8);
130 inst_cream->instr = inst; 130 inst_cream->instr = inst;
@@ -174,7 +174,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vnmls)(unsigned int inst, int index)
174 174
175 inst_base->cond = BITS(inst, 28, 31); 175 inst_base->cond = BITS(inst, 28, 31);
176 inst_base->idx = index; 176 inst_base->idx = index;
177 inst_base->br = NON_BRANCH; 177 inst_base->br = TransExtData::NON_BRANCH;
178 178
179 inst_cream->dp_operation = BIT(inst, 8); 179 inst_cream->dp_operation = BIT(inst, 8);
180 inst_cream->instr = inst; 180 inst_cream->instr = inst;
@@ -223,7 +223,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vnmul)(unsigned int inst, int index)
223 223
224 inst_base->cond = BITS(inst, 28, 31); 224 inst_base->cond = BITS(inst, 28, 31);
225 inst_base->idx = index; 225 inst_base->idx = index;
226 inst_base->br = NON_BRANCH; 226 inst_base->br = TransExtData::NON_BRANCH;
227 227
228 inst_cream->dp_operation = BIT(inst, 8); 228 inst_cream->dp_operation = BIT(inst, 8);
229 inst_cream->instr = inst; 229 inst_cream->instr = inst;
@@ -272,7 +272,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmul)(unsigned int inst, int index)
272 272
273 inst_base->cond = BITS(inst, 28, 31); 273 inst_base->cond = BITS(inst, 28, 31);
274 inst_base->idx = index; 274 inst_base->idx = index;
275 inst_base->br = NON_BRANCH; 275 inst_base->br = TransExtData::NON_BRANCH;
276 276
277 inst_cream->dp_operation = BIT(inst, 8); 277 inst_cream->dp_operation = BIT(inst, 8);
278 inst_cream->instr = inst; 278 inst_cream->instr = inst;
@@ -321,7 +321,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vadd)(unsigned int inst, int index)
321 321
322 inst_base->cond = BITS(inst, 28, 31); 322 inst_base->cond = BITS(inst, 28, 31);
323 inst_base->idx = index; 323 inst_base->idx = index;
324 inst_base->br = NON_BRANCH; 324 inst_base->br = TransExtData::NON_BRANCH;
325 325
326 inst_cream->dp_operation = BIT(inst, 8); 326 inst_cream->dp_operation = BIT(inst, 8);
327 inst_cream->instr = inst; 327 inst_cream->instr = inst;
@@ -370,7 +370,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vsub)(unsigned int inst, int index)
370 370
371 inst_base->cond = BITS(inst, 28, 31); 371 inst_base->cond = BITS(inst, 28, 31);
372 inst_base->idx = index; 372 inst_base->idx = index;
373 inst_base->br = NON_BRANCH; 373 inst_base->br = TransExtData::NON_BRANCH;
374 374
375 inst_cream->dp_operation = BIT(inst, 8); 375 inst_cream->dp_operation = BIT(inst, 8);
376 inst_cream->instr = inst; 376 inst_cream->instr = inst;
@@ -419,7 +419,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vdiv)(unsigned int inst, int index)
419 419
420 inst_base->cond = BITS(inst, 28, 31); 420 inst_base->cond = BITS(inst, 28, 31);
421 inst_base->idx = index; 421 inst_base->idx = index;
422 inst_base->br = NON_BRANCH; 422 inst_base->br = TransExtData::NON_BRANCH;
423 423
424 inst_cream->dp_operation = BIT(inst, 8); 424 inst_cream->dp_operation = BIT(inst, 8);
425 inst_cream->instr = inst; 425 inst_cream->instr = inst;
@@ -470,7 +470,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovi)(unsigned int inst, int index)
470 470
471 inst_base->cond = BITS(inst, 28, 31); 471 inst_base->cond = BITS(inst, 28, 31);
472 inst_base->idx = index; 472 inst_base->idx = index;
473 inst_base->br = NON_BRANCH; 473 inst_base->br = TransExtData::NON_BRANCH;
474 474
475 inst_cream->single = BIT(inst, 8) == 0; 475 inst_cream->single = BIT(inst, 8) == 0;
476 inst_cream->d = (inst_cream->single ? BITS(inst,12,15)<<1 | BIT(inst,22) : BITS(inst,12,15) | BIT(inst,22)<<4); 476 inst_cream->d = (inst_cream->single ? BITS(inst,12,15)<<1 | BIT(inst,22) : BITS(inst,12,15) | BIT(inst,22)<<4);
@@ -518,7 +518,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovr)(unsigned int inst, int index)
518 518
519 inst_base->cond = BITS(inst, 28, 31); 519 inst_base->cond = BITS(inst, 28, 31);
520 inst_base->idx = index; 520 inst_base->idx = index;
521 inst_base->br = NON_BRANCH; 521 inst_base->br = TransExtData::NON_BRANCH;
522 522
523 inst_cream->single = BIT(inst, 8) == 0; 523 inst_cream->single = BIT(inst, 8) == 0;
524 inst_cream->d = (inst_cream->single ? BITS(inst,12,15)<<1 | BIT(inst,22) : BITS(inst,12,15) | BIT(inst,22)<<4); 524 inst_cream->d = (inst_cream->single ? BITS(inst,12,15)<<1 | BIT(inst,22) : BITS(inst,12,15) | BIT(inst,22)<<4);
@@ -560,7 +560,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vabs)(unsigned int inst, int index)
560 560
561 inst_base->cond = BITS(inst, 28, 31); 561 inst_base->cond = BITS(inst, 28, 31);
562 inst_base->idx = index; 562 inst_base->idx = index;
563 inst_base->br = NON_BRANCH; 563 inst_base->br = TransExtData::NON_BRANCH;
564 564
565 inst_cream->dp_operation = BIT(inst, 8); 565 inst_cream->dp_operation = BIT(inst, 8);
566 inst_cream->instr = inst; 566 inst_cream->instr = inst;
@@ -610,7 +610,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vneg)(unsigned int inst, int index)
610 610
611 inst_base->cond = BITS(inst, 28, 31); 611 inst_base->cond = BITS(inst, 28, 31);
612 inst_base->idx = index; 612 inst_base->idx = index;
613 inst_base->br = NON_BRANCH; 613 inst_base->br = TransExtData::NON_BRANCH;
614 614
615 inst_cream->dp_operation = BIT(inst, 8); 615 inst_cream->dp_operation = BIT(inst, 8);
616 inst_cream->instr = inst; 616 inst_cream->instr = inst;
@@ -659,7 +659,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vsqrt)(unsigned int inst, int index)
659 659
660 inst_base->cond = BITS(inst, 28, 31); 660 inst_base->cond = BITS(inst, 28, 31);
661 inst_base->idx = index; 661 inst_base->idx = index;
662 inst_base->br = NON_BRANCH; 662 inst_base->br = TransExtData::NON_BRANCH;
663 663
664 inst_cream->dp_operation = BIT(inst, 8); 664 inst_cream->dp_operation = BIT(inst, 8);
665 inst_cream->instr = inst; 665 inst_cream->instr = inst;
@@ -708,7 +708,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vcmp)(unsigned int inst, int index)
708 708
709 inst_base->cond = BITS(inst, 28, 31); 709 inst_base->cond = BITS(inst, 28, 31);
710 inst_base->idx = index; 710 inst_base->idx = index;
711 inst_base->br = NON_BRANCH; 711 inst_base->br = TransExtData::NON_BRANCH;
712 712
713 inst_cream->dp_operation = BIT(inst, 8); 713 inst_cream->dp_operation = BIT(inst, 8);
714 inst_cream->instr = inst; 714 inst_cream->instr = inst;
@@ -757,7 +757,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vcmp2)(unsigned int inst, int index)
757 757
758 inst_base->cond = BITS(inst, 28, 31); 758 inst_base->cond = BITS(inst, 28, 31);
759 inst_base->idx = index; 759 inst_base->idx = index;
760 inst_base->br = NON_BRANCH; 760 inst_base->br = TransExtData::NON_BRANCH;
761 761
762 inst_cream->dp_operation = BIT(inst, 8); 762 inst_cream->dp_operation = BIT(inst, 8);
763 inst_cream->instr = inst; 763 inst_cream->instr = inst;
@@ -806,7 +806,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vcvtbds)(unsigned int inst, int index)
806 806
807 inst_base->cond = BITS(inst, 28, 31); 807 inst_base->cond = BITS(inst, 28, 31);
808 inst_base->idx = index; 808 inst_base->idx = index;
809 inst_base->br = NON_BRANCH; 809 inst_base->br = TransExtData::NON_BRANCH;
810 810
811 inst_cream->dp_operation = BIT(inst, 8); 811 inst_cream->dp_operation = BIT(inst, 8);
812 inst_cream->instr = inst; 812 inst_cream->instr = inst;
@@ -857,7 +857,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vcvtbff)(unsigned int inst, int index)
857 857
858 inst_base->cond = BITS(inst, 28, 31); 858 inst_base->cond = BITS(inst, 28, 31);
859 inst_base->idx = index; 859 inst_base->idx = index;
860 inst_base->br = NON_BRANCH; 860 inst_base->br = TransExtData::NON_BRANCH;
861 861
862 inst_cream->dp_operation = BIT(inst, 8); 862 inst_cream->dp_operation = BIT(inst, 8);
863 inst_cream->instr = inst; 863 inst_cream->instr = inst;
@@ -906,7 +906,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vcvtbfi)(unsigned int inst, int index)
906 906
907 inst_base->cond = BITS(inst, 28, 31); 907 inst_base->cond = BITS(inst, 28, 31);
908 inst_base->idx = index; 908 inst_base->idx = index;
909 inst_base->br = NON_BRANCH; 909 inst_base->br = TransExtData::NON_BRANCH;
910 910
911 inst_cream->dp_operation = BIT(inst, 8); 911 inst_cream->dp_operation = BIT(inst, 8);
912 inst_cream->instr = inst; 912 inst_cream->instr = inst;
@@ -962,7 +962,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrs)(unsigned int inst, int index)
962 962
963 inst_base->cond = BITS(inst, 28, 31); 963 inst_base->cond = BITS(inst, 28, 31);
964 inst_base->idx = index; 964 inst_base->idx = index;
965 inst_base->br = NON_BRANCH; 965 inst_base->br = TransExtData::NON_BRANCH;
966 966
967 inst_cream->to_arm = BIT(inst, 20) == 1; 967 inst_cream->to_arm = BIT(inst, 20) == 1;
968 inst_cream->t = BITS(inst, 12, 15); 968 inst_cream->t = BITS(inst, 12, 15);
@@ -1006,7 +1006,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmsr)(unsigned int inst, int index)
1006 1006
1007 inst_base->cond = BITS(inst, 28, 31); 1007 inst_base->cond = BITS(inst, 28, 31);
1008 inst_base->idx = index; 1008 inst_base->idx = index;
1009 inst_base->br = NON_BRANCH; 1009 inst_base->br = TransExtData::NON_BRANCH;
1010 1010
1011 inst_cream->reg = BITS(inst, 16, 19); 1011 inst_cream->reg = BITS(inst, 16, 19);
1012 inst_cream->Rt = BITS(inst, 12, 15); 1012 inst_cream->Rt = BITS(inst, 12, 15);
@@ -1069,7 +1069,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrc)(unsigned int inst, int index)
1069 1069
1070 inst_base->cond = BITS(inst, 28, 31); 1070 inst_base->cond = BITS(inst, 28, 31);
1071 inst_base->idx = index; 1071 inst_base->idx = index;
1072 inst_base->br = NON_BRANCH; 1072 inst_base->br = TransExtData::NON_BRANCH;
1073 1073
1074 inst_cream->d = BITS(inst, 16, 19)|BIT(inst, 7)<<4; 1074 inst_cream->d = BITS(inst, 16, 19)|BIT(inst, 7)<<4;
1075 inst_cream->t = BITS(inst, 12, 15); 1075 inst_cream->t = BITS(inst, 12, 15);
@@ -1115,7 +1115,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmrs)(unsigned int inst, int index)
1115 1115
1116 inst_base->cond = BITS(inst, 28, 31); 1116 inst_base->cond = BITS(inst, 28, 31);
1117 inst_base->idx = index; 1117 inst_base->idx = index;
1118 inst_base->br = NON_BRANCH; 1118 inst_base->br = TransExtData::NON_BRANCH;
1119 1119
1120 inst_cream->reg = BITS(inst, 16, 19); 1120 inst_cream->reg = BITS(inst, 16, 19);
1121 inst_cream->Rt = BITS(inst, 12, 15); 1121 inst_cream->Rt = BITS(inst, 12, 15);
@@ -1200,7 +1200,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbcr)(unsigned int inst, int index)
1200 1200
1201 inst_base->cond = BITS(inst, 28, 31); 1201 inst_base->cond = BITS(inst, 28, 31);
1202 inst_base->idx = index; 1202 inst_base->idx = index;
1203 inst_base->br = NON_BRANCH; 1203 inst_base->br = TransExtData::NON_BRANCH;
1204 1204
1205 inst_cream->d = BITS(inst, 16, 19)|BIT(inst, 7)<<4; 1205 inst_cream->d = BITS(inst, 16, 19)|BIT(inst, 7)<<4;
1206 inst_cream->t = BITS(inst, 12, 15); 1206 inst_cream->t = BITS(inst, 12, 15);
@@ -1253,7 +1253,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrrss)(unsigned int inst, int inde
1253 1253
1254 inst_base->cond = BITS(inst, 28, 31); 1254 inst_base->cond = BITS(inst, 28, 31);
1255 inst_base->idx = index; 1255 inst_base->idx = index;
1256 inst_base->br = NON_BRANCH; 1256 inst_base->br = TransExtData::NON_BRANCH;
1257 1257
1258 inst_cream->to_arm = BIT(inst, 20) == 1; 1258 inst_cream->to_arm = BIT(inst, 20) == 1;
1259 inst_cream->t = BITS(inst, 12, 15); 1259 inst_cream->t = BITS(inst, 12, 15);
@@ -1301,7 +1301,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrrd)(unsigned int inst, int index
1301 1301
1302 inst_base->cond = BITS(inst, 28, 31); 1302 inst_base->cond = BITS(inst, 28, 31);
1303 inst_base->idx = index; 1303 inst_base->idx = index;
1304 inst_base->br = NON_BRANCH; 1304 inst_base->br = TransExtData::NON_BRANCH;
1305 1305
1306 inst_cream->to_arm = BIT(inst, 20) == 1; 1306 inst_cream->to_arm = BIT(inst, 20) == 1;
1307 inst_cream->t = BITS(inst, 12, 15); 1307 inst_cream->t = BITS(inst, 12, 15);
@@ -1354,7 +1354,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vstr)(unsigned int inst, int index)
1354 1354
1355 inst_base->cond = BITS(inst, 28, 31); 1355 inst_base->cond = BITS(inst, 28, 31);
1356 inst_base->idx = index; 1356 inst_base->idx = index;
1357 inst_base->br = NON_BRANCH; 1357 inst_base->br = TransExtData::NON_BRANCH;
1358 1358
1359 inst_cream->single = BIT(inst, 8) == 0; 1359 inst_cream->single = BIT(inst, 8) == 0;
1360 inst_cream->add = BIT(inst, 23); 1360 inst_cream->add = BIT(inst, 23);
@@ -1420,7 +1420,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vpush)(unsigned int inst, int index)
1420 1420
1421 inst_base->cond = BITS(inst, 28, 31); 1421 inst_base->cond = BITS(inst, 28, 31);
1422 inst_base->idx = index; 1422 inst_base->idx = index;
1423 inst_base->br = NON_BRANCH; 1423 inst_base->br = TransExtData::NON_BRANCH;
1424 1424
1425 inst_cream->single = BIT(inst, 8) == 0; 1425 inst_cream->single = BIT(inst, 8) == 0;
1426 inst_cream->d = (inst_cream->single ? BITS(inst, 12, 15)<<1|BIT(inst, 22) : BITS(inst, 12, 15)|BIT(inst, 22)<<4); 1426 inst_cream->d = (inst_cream->single ? BITS(inst, 12, 15)<<1|BIT(inst, 22) : BITS(inst, 12, 15)|BIT(inst, 22)<<4);
@@ -1495,7 +1495,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vstm)(unsigned int inst, int index)
1495 1495
1496 inst_base->cond = BITS(inst, 28, 31); 1496 inst_base->cond = BITS(inst, 28, 31);
1497 inst_base->idx = index; 1497 inst_base->idx = index;
1498 inst_base->br = NON_BRANCH; 1498 inst_base->br = TransExtData::NON_BRANCH;
1499 1499
1500 inst_cream->single = BIT(inst, 8) == 0; 1500 inst_cream->single = BIT(inst, 8) == 0;
1501 inst_cream->add = BIT(inst, 23); 1501 inst_cream->add = BIT(inst, 23);
@@ -1580,7 +1580,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vpop)(unsigned int inst, int index)
1580 1580
1581 inst_base->cond = BITS(inst, 28, 31); 1581 inst_base->cond = BITS(inst, 28, 31);
1582 inst_base->idx = index; 1582 inst_base->idx = index;
1583 inst_base->br = NON_BRANCH; 1583 inst_base->br = TransExtData::NON_BRANCH;
1584 1584
1585 inst_cream->single = BIT(inst, 8) == 0; 1585 inst_cream->single = BIT(inst, 8) == 0;
1586 inst_cream->d = (inst_cream->single ? (BITS(inst, 12, 15)<<1)|BIT(inst, 22) : BITS(inst, 12, 15)|(BIT(inst, 22)<<4)); 1586 inst_cream->d = (inst_cream->single ? (BITS(inst, 12, 15)<<1)|BIT(inst, 22) : BITS(inst, 12, 15)|(BIT(inst, 22)<<4));
@@ -1653,7 +1653,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vldr)(unsigned int inst, int index)
1653 1653
1654 inst_base->cond = BITS(inst, 28, 31); 1654 inst_base->cond = BITS(inst, 28, 31);
1655 inst_base->idx = index; 1655 inst_base->idx = index;
1656 inst_base->br = NON_BRANCH; 1656 inst_base->br = TransExtData::NON_BRANCH;
1657 1657
1658 inst_cream->single = BIT(inst, 8) == 0; 1658 inst_cream->single = BIT(inst, 8) == 0;
1659 inst_cream->add = BIT(inst, 23); 1659 inst_cream->add = BIT(inst, 23);
@@ -1722,7 +1722,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vldm)(unsigned int inst, int index)
1722 1722
1723 inst_base->cond = BITS(inst, 28, 31); 1723 inst_base->cond = BITS(inst, 28, 31);
1724 inst_base->idx = index; 1724 inst_base->idx = index;
1725 inst_base->br = NON_BRANCH; 1725 inst_base->br = TransExtData::NON_BRANCH;
1726 1726
1727 inst_cream->single = BIT(inst, 8) == 0; 1727 inst_cream->single = BIT(inst, 8) == 0;
1728 inst_cream->add = BIT(inst, 23); 1728 inst_cream->add = BIT(inst, 23);