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

Function DecodeDPRRegListOperand

arch/ARM/ARMDisassembler.c:1396–1421  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1394}
1395
1396static DecodeStatus DecodeDPRRegListOperand(MCInst *Inst, unsigned Val,
1397 uint64_t Address, const void *Decoder)
1398{
1399 DecodeStatus S = MCDisassembler_Success;
1400 unsigned i;
1401 unsigned Vd = fieldFromInstruction_4(Val, 8, 5);
1402 unsigned regs = fieldFromInstruction_4(Val, 1, 7);
1403
1404 // In case of unpredictable encoding, tweak the operands.
1405 if (regs == 0 || regs > 16 || (Vd + regs) > 32) {
1406 regs = Vd + regs > 32 ? 32 - Vd : regs;
1407 regs = (1u > regs? 1u : regs);
1408 regs = (16u > regs? regs : 16u);
1409 S = MCDisassembler_SoftFail;
1410 }
1411
1412 if (!Check(&S, DecodeDPRRegisterClass(Inst, Vd, Address, Decoder)))
1413 return MCDisassembler_Fail;
1414
1415 for (i = 0; i < (regs - 1); ++i) {
1416 if (!Check(&S, DecodeDPRRegisterClass(Inst, ++Vd, Address, Decoder)))
1417 return MCDisassembler_Fail;
1418 }
1419
1420 return S;
1421}
1422
1423static DecodeStatus DecodeBitfieldMaskOperand(MCInst *Inst, unsigned Val,
1424 uint64_t Address, const void *Decoder)

Callers

nothing calls this directly

Calls 2

DecodeDPRRegisterClassFunction · 0.85
CheckFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…