insn_attr_t inat_get_escape_attribute(insn_byte_t opcode, int lpfx_id, insn_attr_t esc_attr) { const insn_attr_t *table; int n; n = inat_escape_id(esc_attr); table = inat_escape_tables[n][0]; if (!table) return inat_zero_attrs; if (inat_has_variant(table[opcode]) && lpfx_id) { table = inat_escape_tables[n][lpfx_id]; if (!table) return inat_zero_attrs; } return table[opcode]; }
insn_attr_t inat_get_escape_attribute(insn_byte_t opcode, insn_byte_t last_pfx, insn_attr_t esc_attr) { const insn_attr_t *table; insn_attr_t lpfx_attr; int n, m = 0; n = inat_escape_id(esc_attr); if (last_pfx) { lpfx_attr = inat_get_opcode_attribute(last_pfx); m = inat_last_prefix_id(lpfx_attr); } table = inat_escape_tables[n][0]; if (!table) return 0; if (inat_has_variant(table[opcode]) && m) { table = inat_escape_tables[n][m]; if (!table) return 0; } return table[opcode]; }