MCPcopy Create free account
hub / github.com/capstone-engine/capstone / DecodeSTRPreReg

Function DecodeSTRPreReg

arch/ARM/ARMDisassembler.c:4631–4658  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4629}
4630
4631static DecodeStatus DecodeSTRPreReg(MCInst *Inst, unsigned Insn,
4632 uint64_t Address, const void *Decoder)
4633{
4634 DecodeStatus S = MCDisassembler_Success;
4635 unsigned pred;
4636 unsigned Rn = fieldFromInstruction_4(Insn, 16, 4);
4637 unsigned Rt = fieldFromInstruction_4(Insn, 12, 4);
4638 unsigned imm = fieldFromInstruction_4(Insn, 0, 12);
4639 imm |= fieldFromInstruction_4(Insn, 16, 4) << 13;
4640 imm |= fieldFromInstruction_4(Insn, 23, 1) << 12;
4641 pred = fieldFromInstruction_4(Insn, 28, 4);
4642
4643 if (Rn == 0xF || Rn == Rt) S = MCDisassembler_SoftFail;
4644
4645 if (!Check(&S, DecodeGPRRegisterClass(Inst, Rn, Address, Decoder)))
4646 return MCDisassembler_Fail;
4647
4648 if (!Check(&S, DecodeGPRRegisterClass(Inst, Rt, Address, Decoder)))
4649 return MCDisassembler_Fail;
4650
4651 if (!Check(&S, DecodeSORegMemOperand(Inst, imm, Address, Decoder)))
4652 return MCDisassembler_Fail;
4653
4654 if (!Check(&S, DecodePredicateOperand(Inst, pred, Address, Decoder)))
4655 return MCDisassembler_Fail;
4656
4657 return S;
4658}
4659
4660static DecodeStatus DecodeVLD1LN(MCInst *Inst, unsigned Insn,
4661 uint64_t Address, const void *Decoder)

Callers

nothing calls this directly

Calls 4

DecodeSORegMemOperandFunction · 0.85
DecodePredicateOperandFunction · 0.85
CheckFunction · 0.70
DecodeGPRRegisterClassFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…