uncond.isa (8868:26dbd171754e) uncond.isa (10037:5cac77888310)
1// Copyright (c) 2010-2012 ARM Limited
2// All rights reserved
3//
4// The license below extends only to copyright in the software and shall
5// not be construed as granting a license to any other intellectual
6// property including but not limited to intellectual property relating
7// to a hardware implementation of the functionality of the software
8// licensed hereunder. You may use the software subject to the license

--- 85 unchanged lines hidden (view full) ---

94 rn, add, imm12);
95 }
96 }
97 } else if (op1 == 0x57) {
98 switch (op2) {
99 case 0x1:
100 return new Clrex(machInst);
101 case 0x4:
1// Copyright (c) 2010-2012 ARM Limited
2// All rights reserved
3//
4// The license below extends only to copyright in the software and shall
5// not be construed as granting a license to any other intellectual
6// property including but not limited to intellectual property relating
7// to a hardware implementation of the functionality of the software
8// licensed hereunder. You may use the software subject to the license

--- 85 unchanged lines hidden (view full) ---

94 rn, add, imm12);
95 }
96 }
97 } else if (op1 == 0x57) {
98 switch (op2) {
99 case 0x1:
100 return new Clrex(machInst);
101 case 0x4:
102 return new Dsb(machInst);
102 return new Dsb(machInst, 0);
103 case 0x5:
103 case 0x5:
104 return new Dmb(machInst);
104 return new Dmb(machInst, 0);
105 case 0x6:
105 case 0x6:
106 return new Isb(machInst);
106 return new Isb(machInst, 0);
107 }
108 }
109 } else if (bits(op2, 0) == 0) {
110 switch (op1 & 0xf7) {
111 case 0x61:
112 // Unallocated memory hint
113 return new NopInst(machInst);
114 case 0x65:

--- 46 unchanged lines hidden (view full) ---

161 }
162 } else {
163 switch (bits(machInst, 26, 25)) {
164 case 0x0:
165 {
166 const uint32_t val = ((machInst >> 20) & 0x5);
167 if (val == 0x4) {
168 const uint32_t mode = bits(machInst, 4, 0);
107 }
108 }
109 } else if (bits(op2, 0) == 0) {
110 switch (op1 & 0xf7) {
111 case 0x61:
112 // Unallocated memory hint
113 return new NopInst(machInst);
114 case 0x65:

--- 46 unchanged lines hidden (view full) ---

161 }
162 } else {
163 switch (bits(machInst, 26, 25)) {
164 case 0x0:
165 {
166 const uint32_t val = ((machInst >> 20) & 0x5);
167 if (val == 0x4) {
168 const uint32_t mode = bits(machInst, 4, 0);
169 if (badMode((OperatingMode)mode))
169 if (badMode32((OperatingMode)mode))
170 return new Unknown(machInst);
171 switch (bits(machInst, 24, 21)) {
172 case 0x2:
173 return new %(srs)s(machInst, mode,
174 SrsOp::DecrementAfter, false);
175 case 0x3:
176 return new %(srs_w)s(machInst, mode,
177 SrsOp::DecrementAfter, true);

--- 67 unchanged lines hidden (view full) ---

245 "ldc, ldc2 (literal)", machInst);
246 }
247 } else {
248 if (op1 == 0xC3 || op1 == 0xC7) {
249 return new WarnUnimplemented(
250 "ldc, ldc2 (immediate)", machInst);
251 }
252 }
170 return new Unknown(machInst);
171 switch (bits(machInst, 24, 21)) {
172 case 0x2:
173 return new %(srs)s(machInst, mode,
174 SrsOp::DecrementAfter, false);
175 case 0x3:
176 return new %(srs_w)s(machInst, mode,
177 SrsOp::DecrementAfter, true);

--- 67 unchanged lines hidden (view full) ---

245 "ldc, ldc2 (literal)", machInst);
246 }
247 } else {
248 if (op1 == 0xC3 || op1 == 0xC7) {
249 return new WarnUnimplemented(
250 "ldc, ldc2 (immediate)", machInst);
251 }
252 }
253 if (op1 == 0xC5) {
254 return new WarnUnimplemented(
255 "mrrc, mrrc2", machInst);
256 }
257 } else {
258 if (bits(op1, 4, 3) != 0 || bits(op1, 1) == 1) {
259 return new WarnUnimplemented(
260 "stc, stc2", machInst);
253 } else {
254 if (bits(op1, 4, 3) != 0 || bits(op1, 1) == 1) {
255 return new WarnUnimplemented(
256 "stc, stc2", machInst);
261 } else if (op1 == 0xC4) {
262 return new WarnUnimplemented(
263 "mcrr, mcrrc", machInst);
264 }
265 }
266 }
267 break;
268 case 0x3:
269 if (bits(op1, 4) == 0) {
270 if (CPNUM == 0xa || CPNUM == 0xb) {
271 return decodeShortFpTransfer(machInst);

--- 54 unchanged lines hidden ---
257 }
258 }
259 }
260 break;
261 case 0x3:
262 if (bits(op1, 4) == 0) {
263 if (CPNUM == 0xa || CPNUM == 0xb) {
264 return decodeShortFpTransfer(machInst);

--- 54 unchanged lines hidden ---