data.isa (7255:61445190b527) data.isa (7256:4229d955ee8e)
1// Copyright (c) 2010 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

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

48 const IntRegIndex rm =
49 (IntRegIndex)(uint32_t)bits(machInst, 11, 8);
50 if (ra == 0xf) {
51 return new Usad8(machInst, rd, rn, rm);
52 } else {
53 return new Usada8(machInst, rd, rn, rm, ra);
54 }
55 } else if (bits(op2, 1, 0) == 0x2) {
1// Copyright (c) 2010 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

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

48 const IntRegIndex rm =
49 (IntRegIndex)(uint32_t)bits(machInst, 11, 8);
50 if (ra == 0xf) {
51 return new Usad8(machInst, rd, rn, rm);
52 } else {
53 return new Usada8(machInst, rd, rn, rm, ra);
54 }
55 } else if (bits(op2, 1, 0) == 0x2) {
56 const uint32_t lsb = bits(machInst, 11, 7);
57 const uint32_t msb = lsb + bits(machInst, 20, 16);
56 if (bits(op1, 2, 1) == 0x3) {
58 if (bits(op1, 2, 1) == 0x3) {
57 return new WarnUnimplemented("ubfx", machInst);
59 return new Ubfx(machInst, ra, rn, lsb, msb);
58 } else if (bits(op1, 2, 1) == 0x1) {
60 } else if (bits(op1, 2, 1) == 0x1) {
59 return new WarnUnimplemented("sbfx", machInst);
61 return new Sbfx(machInst, ra, rn, lsb, msb);
60 }
61 } else if (bits(op2, 1, 0) == 0x0 && bits(op1, 2, 1) == 0x2) {
62 if (rn == 0xf) {
63 return new WarnUnimplemented("bfc", machInst);
64 } else {
65 return new WarnUnimplemented("bfi", machInst);
66 }
67 }

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

1233 const uint32_t satImm = bits(machInst, 4, 0);
1234 const uint32_t imm = bits(machInst, 7, 6) |
1235 (bits(machInst, 14, 12) << 2);
1236 const ArmShiftType type =
1237 (ArmShiftType)(uint32_t)bits(machInst, 21, 20);
1238 return new Ssat(machInst, rd, satImm + 1, rn, imm, type);
1239 }
1240 case 0x14:
62 }
63 } else if (bits(op2, 1, 0) == 0x0 && bits(op1, 2, 1) == 0x2) {
64 if (rn == 0xf) {
65 return new WarnUnimplemented("bfc", machInst);
66 } else {
67 return new WarnUnimplemented("bfi", machInst);
68 }
69 }

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

1235 const uint32_t satImm = bits(machInst, 4, 0);
1236 const uint32_t imm = bits(machInst, 7, 6) |
1237 (bits(machInst, 14, 12) << 2);
1238 const ArmShiftType type =
1239 (ArmShiftType)(uint32_t)bits(machInst, 21, 20);
1240 return new Ssat(machInst, rd, satImm + 1, rn, imm, type);
1241 }
1242 case 0x14:
1241 return new WarnUnimplemented("sbfx", machInst);
1243 {
1244 const uint32_t lsb = bits(machInst, 7, 6) |
1245 (bits(machInst, 14, 12) << 2);
1246 const uint32_t msb = lsb + bits(machInst, 4, 0);
1247 return new Sbfx(machInst, rd, rn, lsb, msb);
1248 }
1242 case 0x16:
1243 if (rn == 0xf) {
1244 return new WarnUnimplemented("bfc", machInst);
1245 } else {
1246 return new WarnUnimplemented("bfi", machInst);
1247 }
1248 case 0x1a:
1249 if (!(bits(machInst, 14, 12) || bits(machInst, 7, 6))) {

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

1256 const uint32_t satImm = bits(machInst, 4, 0);
1257 const uint32_t imm = bits(machInst, 7, 6) |
1258 (bits(machInst, 14, 12) << 2);
1259 const ArmShiftType type =
1260 (ArmShiftType)(uint32_t)bits(machInst, 21, 20);
1261 return new Usat(machInst, rd, satImm, rn, imm, type);
1262 }
1263 case 0x1c:
1249 case 0x16:
1250 if (rn == 0xf) {
1251 return new WarnUnimplemented("bfc", machInst);
1252 } else {
1253 return new WarnUnimplemented("bfi", machInst);
1254 }
1255 case 0x1a:
1256 if (!(bits(machInst, 14, 12) || bits(machInst, 7, 6))) {

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

1263 const uint32_t satImm = bits(machInst, 4, 0);
1264 const uint32_t imm = bits(machInst, 7, 6) |
1265 (bits(machInst, 14, 12) << 2);
1266 const ArmShiftType type =
1267 (ArmShiftType)(uint32_t)bits(machInst, 21, 20);
1268 return new Usat(machInst, rd, satImm, rn, imm, type);
1269 }
1270 case 0x1c:
1264 return new WarnUnimplemented("ubfx", machInst);
1271 {
1272 const uint32_t lsb = bits(machInst, 7, 6) |
1273 (bits(machInst, 14, 12) << 2);
1274 const uint32_t msb = lsb + bits(machInst, 4, 0);
1275 return new Ubfx(machInst, rd, rn, lsb, msb);
1276 }
1265 default:
1266 return new Unknown(machInst);
1267 }
1268 }
1269 '''
1270}};
1271
1272def format Thumb32DataProcShiftReg() {{

--- 96 unchanged lines hidden ---
1277 default:
1278 return new Unknown(machInst);
1279 }
1280 }
1281 '''
1282}};
1283
1284def format Thumb32DataProcShiftReg() {{

--- 96 unchanged lines hidden ---