| 5606 | } |
| 5607 | |
| 5608 | static DecodeStatus DecodeNEONComplexLane64Instruction(MCInst *Inst, unsigned Insn, |
| 5609 | uint64_t Address, const void *Decoder) |
| 5610 | { |
| 5611 | DecodeStatus S = MCDisassembler_Success; |
| 5612 | unsigned Vd = (fieldFromInstruction_4(Insn, 12, 4) << 0); |
| 5613 | unsigned Vn = (fieldFromInstruction_4(Insn, 16, 4) << 0); |
| 5614 | unsigned Vm = (fieldFromInstruction_4(Insn, 0, 4) << 0); |
| 5615 | unsigned q = (fieldFromInstruction_4(Insn, 6, 1) << 0); |
| 5616 | unsigned rotate = (fieldFromInstruction_4(Insn, 20, 2) << 0); |
| 5617 | |
| 5618 | Vd |= (fieldFromInstruction_4(Insn, 22, 1) << 4); |
| 5619 | Vn |= (fieldFromInstruction_4(Insn, 7, 1) << 4); |
| 5620 | Vm |= (fieldFromInstruction_4(Insn, 5, 1) << 4); |
| 5621 | |
| 5622 | if (q) { |
| 5623 | if (!Check(&S, DecodeQPRRegisterClass(Inst, Vd, Address, Decoder))) |
| 5624 | return MCDisassembler_Fail; |
| 5625 | |
| 5626 | if (!Check(&S, DecodeQPRRegisterClass(Inst, Vd, Address, Decoder))) |
| 5627 | return MCDisassembler_Fail; |
| 5628 | |
| 5629 | if (!Check(&S, DecodeQPRRegisterClass(Inst, Vn, Address, Decoder))) |
| 5630 | return MCDisassembler_Fail; |
| 5631 | } else { |
| 5632 | if (!Check(&S, DecodeDPRRegisterClass(Inst, Vd, Address, Decoder))) |
| 5633 | return MCDisassembler_Fail; |
| 5634 | |
| 5635 | if (!Check(&S, DecodeDPRRegisterClass(Inst, Vd, Address, Decoder))) |
| 5636 | return MCDisassembler_Fail; |
| 5637 | |
| 5638 | if (!Check(&S, DecodeDPRRegisterClass(Inst, Vn, Address, Decoder))) |
| 5639 | return MCDisassembler_Fail; |
| 5640 | } |
| 5641 | |
| 5642 | if (!Check(&S, DecodeDPRRegisterClass(Inst, Vm, Address, Decoder))) |
| 5643 | return MCDisassembler_Fail; |
| 5644 | |
| 5645 | // The lane index does not have any bits in the encoding, because it can only |
| 5646 | // be 0. |
| 5647 | MCOperand_CreateImm0(Inst, 0); |
| 5648 | MCOperand_CreateImm0(Inst, rotate); |
| 5649 | |
| 5650 | return S; |
| 5651 | } |
| 5652 | |
| 5653 | static DecodeStatus DecodeLDR(MCInst *Inst, unsigned Val, |
| 5654 | uint64_t Address, const void *Decoder) |
nothing calls this directly
no test coverage detected
searching dependent graphs…