/src/capstonenext/MCInstrDesc.c
| Line | Count | Source (jump to first uncovered line) | 
| 1 |  | /* Capstone Disassembly Engine */ | 
| 2 |  | /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2019 */ | 
| 3 |  |  | 
| 4 |  | #include "MCInstrDesc.h" | 
| 5 |  |  | 
| 6 |  | /// isPredicate - Set if this is one of the operands that made up of | 
| 7 |  | /// the predicate operand that controls an isPredicable() instruction. | 
| 8 |  | bool MCOperandInfo_isPredicate(const MCOperandInfo *m) | 
| 9 | 8.80M | { | 
| 10 | 8.80M |   return m->Flags & (1 << MCOI_Predicate); | 
| 11 | 8.80M | } | 
| 12 |  |  | 
| 13 |  | /// isOptionalDef - Set if this operand is a optional def. | 
| 14 |  | /// | 
| 15 |  | bool MCOperandInfo_isOptionalDef(const MCOperandInfo *m) | 
| 16 | 523k | { | 
| 17 | 523k |   return m->Flags & (1 << MCOI_OptionalDef); | 
| 18 | 523k | } | 
| 19 |  |  | 
| 20 |  | /// Checks if operand is tied to another one. | 
| 21 |  | bool MCOperandInfo_isTiedToOp(const MCOperandInfo *m) | 
| 22 | 6.19M | { | 
| 23 | 6.19M |   if (m->Constraints & (1 << MCOI_TIED_TO)) | 
| 24 | 258k |     return true; | 
| 25 | 5.93M |   return false; | 
| 26 | 6.19M | } | 
| 27 |  |  | 
| 28 |  | /// Returns the value of the specified operand constraint if | 
| 29 |  | /// it is present. Returns -1 if it is not present. | 
| 30 |  | int MCOperandInfo_getOperandConstraint(const MCInstrDesc *InstrDesc, | 
| 31 |  |                unsigned OpNum, | 
| 32 |  |                MCOI_OperandConstraint Constraint) | 
| 33 | 267k | { | 
| 34 | 267k |   const MCOperandInfo OpInfo = InstrDesc->OpInfo[OpNum]; | 
| 35 | 267k |   if (OpNum < InstrDesc->NumOperands && | 
| 36 | 267k |       (OpInfo.Constraints & (1 << Constraint))) { | 
| 37 | 267k |     unsigned ValuePos = 4 + Constraint * 4; | 
| 38 | 267k |     return (OpInfo.Constraints >> ValuePos) & 0xf; | 
| 39 | 267k |   } | 
| 40 | 0 |   return -1; | 
| 41 | 267k | } |