data.isa (7213:beadb1dc1be6) data.isa (7216:a3261b965224)
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

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

229 const IntRegIndex rn = (IntRegIndex)(uint32_t)bits(machInst, 19, 16);
230 const IntRegIndex rd = (IntRegIndex)(uint32_t)bits(machInst, 15, 12);
231 const IntRegIndex rm = (IntRegIndex)(uint32_t)bits(machInst, 3, 0);
232 if (bits(machInst, 22) == 0) {
233 switch (op1) {
234 case 0x1:
235 switch (op2) {
236 case 0x0:
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

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

229 const IntRegIndex rn = (IntRegIndex)(uint32_t)bits(machInst, 19, 16);
230 const IntRegIndex rd = (IntRegIndex)(uint32_t)bits(machInst, 15, 12);
231 const IntRegIndex rm = (IntRegIndex)(uint32_t)bits(machInst, 3, 0);
232 if (bits(machInst, 22) == 0) {
233 switch (op1) {
234 case 0x1:
235 switch (op2) {
236 case 0x0:
237 return new WarnUnimplemented("sadd16", machInst);
237 return new Sadd16RegCc(machInst, rd, rn, rm, 0, LSL);
238 case 0x1:
239 return new WarnUnimplemented("sasx", machInst);
240 case 0x2:
241 return new WarnUnimplemented("ssax", machInst);
242 case 0x3:
243 return new WarnUnimplemented("ssub16", machInst);
244 case 0x4:
238 case 0x1:
239 return new WarnUnimplemented("sasx", machInst);
240 case 0x2:
241 return new WarnUnimplemented("ssax", machInst);
242 case 0x3:
243 return new WarnUnimplemented("ssub16", machInst);
244 case 0x4:
245 return new WarnUnimplemented("sadd8", machInst);
245 return new Sadd8RegCc(machInst, rd, rn, rm, 0, LSL);
246 case 0x7:
247 return new WarnUnimplemented("ssub8", machInst);
248 }
249 break;
250 case 0x2:
251 switch (op2) {
252 case 0x0:
253 return new Qadd16Reg(machInst, rd, rn, rm, 0, LSL);

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

537 default:
538 return new Unknown(machInst);
539 }
540 } else {
541 if (bits(op2, 3) == 0) {
542 if (bits(op2, 2) == 0x0) {
543 const uint32_t op1 = bits(machInst, 22, 20);
544 const uint32_t op2 = bits(machInst, 5, 4);
246 case 0x7:
247 return new WarnUnimplemented("ssub8", machInst);
248 }
249 break;
250 case 0x2:
251 switch (op2) {
252 case 0x0:
253 return new Qadd16Reg(machInst, rd, rn, rm, 0, LSL);

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

537 default:
538 return new Unknown(machInst);
539 }
540 } else {
541 if (bits(op2, 3) == 0) {
542 if (bits(op2, 2) == 0x0) {
543 const uint32_t op1 = bits(machInst, 22, 20);
544 const uint32_t op2 = bits(machInst, 5, 4);
545 const IntRegIndex rd =
546 (IntRegIndex)(uint32_t)bits(machInst, 11, 8);
547 const IntRegIndex rm =
548 (IntRegIndex)(uint32_t)bits(machInst, 3, 0);
545 switch (op2) {
546 case 0x0:
547 switch (op1) {
548 case 0x1:
549 switch (op2) {
550 case 0x0:
551 switch (op1) {
552 case 0x1:
549 return new WarnUnimplemented("sadd16", machInst);
553 return new Sadd16RegCc(machInst, rd,
554 rn, rm, 0, LSL);
550 case 0x2:
551 return new WarnUnimplemented("sasx", machInst);
552 case 0x6:
553 return new WarnUnimplemented("ssax", machInst);
554 case 0x5:
555 return new WarnUnimplemented("ssub16", machInst);
556 case 0x0:
555 case 0x2:
556 return new WarnUnimplemented("sasx", machInst);
557 case 0x6:
558 return new WarnUnimplemented("ssax", machInst);
559 case 0x5:
560 return new WarnUnimplemented("ssub16", machInst);
561 case 0x0:
557 return new WarnUnimplemented("sadd8", machInst);
562 return new Sadd8RegCc(machInst, rd,
563 rn, rm, 0, LSL);
558 case 0x4:
559 return new WarnUnimplemented("ssub8", machInst);
560 }
561 break;
562 case 0x1:
564 case 0x4:
565 return new WarnUnimplemented("ssub8", machInst);
566 }
567 break;
568 case 0x1:
563 {
564 IntRegIndex rn =
565 (IntRegIndex)(uint32_t)bits(machInst, 19, 16);
566 IntRegIndex rd =
567 (IntRegIndex)(uint32_t)bits(machInst, 11, 8);
568 IntRegIndex rm =
569 (IntRegIndex)(uint32_t)bits(machInst, 3, 0);
570 switch (op1) {
571 case 0x1:
572 return new Qadd16Reg(machInst, rd,
573 rn, rm, 0, LSL);
574 case 0x2:
575 return new QasxReg(machInst, rd,
576 rn, rm, 0, LSL);
577 case 0x6:
578 return new QsaxReg(machInst, rd,
579 rn, rm, 0, LSL);
580 case 0x5:
581 return new Qsub16Reg(machInst, rd,
582 rn, rm, 0, LSL);
583 case 0x0:
584 return new Qsub8Reg(machInst, rd,
585 rn, rm, 0, LSL);
586 case 0x4:
587 return new Qsub8Reg(machInst, rd,
588 rn, rm, 0, LSL);
589 }
569 switch (op1) {
570 case 0x1:
571 return new Qadd16Reg(machInst, rd, rn, rm, 0, LSL);
572 case 0x2:
573 return new QasxReg(machInst, rd, rn, rm, 0, LSL);
574 case 0x6:
575 return new QsaxReg(machInst, rd, rn, rm, 0, LSL);
576 case 0x5:
577 return new Qsub16Reg(machInst, rd, rn, rm, 0, LSL);
578 case 0x0:
579 return new Qadd8Reg(machInst, rd, rn, rm, 0, LSL);
580 case 0x4:
581 return new Qsub8Reg(machInst, rd, rn, rm, 0, LSL);
590 }
591 break;
592 case 0x2:
593 switch (op1) {
594 case 0x1:
595 return new WarnUnimplemented("shadd16", machInst);
596 case 0x2:
597 return new WarnUnimplemented("shasx", machInst);

--- 633 unchanged lines hidden ---
582 }
583 break;
584 case 0x2:
585 switch (op1) {
586 case 0x1:
587 return new WarnUnimplemented("shadd16", machInst);
588 case 0x2:
589 return new WarnUnimplemented("shasx", machInst);

--- 633 unchanged lines hidden ---