data.isa (7256:4229d955ee8e) data.isa (7258:6e8a3c0a2a40)
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

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

56 const uint32_t lsb = bits(machInst, 11, 7);
57 const uint32_t msb = lsb + bits(machInst, 20, 16);
58 if (bits(op1, 2, 1) == 0x3) {
59 return new Ubfx(machInst, ra, rn, lsb, msb);
60 } else if (bits(op1, 2, 1) == 0x1) {
61 return new Sbfx(machInst, ra, rn, lsb, msb);
62 }
63 } else if (bits(op2, 1, 0) == 0x0 && bits(op1, 2, 1) == 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

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

56 const uint32_t lsb = bits(machInst, 11, 7);
57 const uint32_t msb = lsb + bits(machInst, 20, 16);
58 if (bits(op1, 2, 1) == 0x3) {
59 return new Ubfx(machInst, ra, rn, lsb, msb);
60 } else if (bits(op1, 2, 1) == 0x1) {
61 return new Sbfx(machInst, ra, rn, lsb, msb);
62 }
63 } else if (bits(op2, 1, 0) == 0x0 && bits(op1, 2, 1) == 0x2) {
64 const uint32_t lsb = bits(machInst, 11, 7);
65 const uint32_t msb = bits(machInst, 20, 16);
64 if (rn == 0xf) {
66 if (rn == 0xf) {
65 return new WarnUnimplemented("bfc", machInst);
67 return new Bfc(machInst, ra, ra, lsb, msb);
66 } else {
68 } else {
67 return new WarnUnimplemented("bfi", machInst);
69 return new Bfi(machInst, ra, rn, lsb, msb);
68 }
69 }
70 return new Unknown(machInst);
71 }
72 '''
73}};
74
75def format ArmDataProcReg() {{

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

1242 case 0x14:
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 }
1249 case 0x16:
70 }
71 }
72 return new Unknown(machInst);
73 }
74 '''
75}};
76
77def format ArmDataProcReg() {{

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

1244 case 0x14:
1245 {
1246 const uint32_t lsb = bits(machInst, 7, 6) |
1247 (bits(machInst, 14, 12) << 2);
1248 const uint32_t msb = lsb + bits(machInst, 4, 0);
1249 return new Sbfx(machInst, rd, rn, lsb, msb);
1250 }
1251 case 0x16:
1250 if (rn == 0xf) {
1251 return new WarnUnimplemented("bfc", machInst);
1252 } else {
1253 return new WarnUnimplemented("bfi", machInst);
1252 {
1253 const uint32_t lsb = bits(machInst, 7, 6) |
1254 (bits(machInst, 14, 12) << 2);
1255 const uint32_t msb = bits(machInst, 4, 0);
1256 if (rn == 0xf) {
1257 return new Bfc(machInst, rd, rd, lsb, msb);
1258 } else {
1259 return new Bfi(machInst, rd, rn, lsb, msb);
1260 }
1254 }
1255 case 0x1a:
1256 if (!(bits(machInst, 14, 12) || bits(machInst, 7, 6))) {
1257 const uint32_t satImm = bits(machInst, 4, 0);
1258 return new Usat16(machInst, rd, satImm, rn);
1259 }
1260 // Fall through on purpose...
1261 case 0x18:

--- 119 unchanged lines hidden ---
1261 }
1262 case 0x1a:
1263 if (!(bits(machInst, 14, 12) || bits(machInst, 7, 6))) {
1264 const uint32_t satImm = bits(machInst, 4, 0);
1265 return new Usat16(machInst, rd, satImm, rn);
1266 }
1267 // Fall through on purpose...
1268 case 0x18:

--- 119 unchanged lines hidden ---