Returns the operand access flags from the mapping table for instruction operands. Only usable by `auto-sync` archs!
| 223 | /// mapping table for instruction operands. |
| 224 | /// Only usable by `auto-sync` archs! |
| 225 | const cs_ac_type mapping_get_op_access(MCInst *MI, unsigned OpNum, |
| 226 | const map_insn_ops *insn_ops_map, |
| 227 | size_t map_size) |
| 228 | { |
| 229 | assert(MI); |
| 230 | assert(MI->Opcode < map_size); |
| 231 | assert(OpNum < sizeof(insn_ops_map[MI->Opcode].ops) / |
| 232 | sizeof(insn_ops_map[MI->Opcode].ops[0])); |
| 233 | |
| 234 | cs_ac_type access = insn_ops_map[MI->Opcode].ops[OpNum].access; |
| 235 | if (MCInst_opIsTied(MI, OpNum) || MCInst_opIsTying(MI, OpNum)) |
| 236 | access |= (access == CS_AC_READ) ? CS_AC_WRITE : CS_AC_READ; |
| 237 | return access; |
| 238 | } |
| 239 | |
| 240 | /// Returns the operand at detail->arch.operands[op_count + offset] |
| 241 | /// Or NULL if detail is not set. |
nothing calls this directly
no test coverage detected
searching dependent graphs…