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 --- |