Lines Matching full:alias
1486 /* Converters converting a real opcode instruction to its alias form. */
1689 /* As an alias convertor, it has to be clear that the INST->OPCODE
1737 /* Some alias opcodes are disassembled by being converted from their real-form.
1738 N.B. INST->OPCODE is the real opcode rather than the alias. */
1741 convert_to_alias (aarch64_inst *inst, const aarch64_opcode *alias)
1743 switch (alias->op)
1788 any alias form that can be used to represent *INST. If the answer is yes,
1789 update *INST to be in the form of the determined alias. */
1792 entries to help establish the relations between the real and alias opcodes:
1794 F_ALIAS: opcode is an alias
1795 F_HAS_ALIAS: opcode has alias(es)
1802 Although the relation between the machine and the alias instructions are not
1807 The mask of an alias opcode must be equal to or a super-set (i.e. more
1813 then OPCODE is an alias of, and only of, the REAL instruction
1815 The alias relationship is forced flat-structured to keep related algorithm
1821 not specified), the disassembler will check whether there is any alias
1823 will try to disassemble the 32-bit binary again using the alias's rule, or
1824 try to convert the IR to the form of the alias. In the case of the multiple
1833 check the condition of an alias (as an alias may be adopted only if certain
1836 In order to speed up the alias opcode lookup, aarch64-gen has preprocessed
1844 const aarch64_opcode *alias;
1848 /* This opcode does not have an alias, so use itself. */
1852 alias = aarch64_find_alias_opcode (opcode);
1853 assert (alias);
1858 const aarch64_opcode *tmp = alias;
1869 for (; alias; alias = aarch64_find_next_alias_opcode (alias))
1871 DEBUG_TRACE ("try %s", alias->name);
1872 assert (alias_opcode_p (alias));
1874 /* An alias can be a pseudo opcode which will never be used in the
1877 if (pseudo_opcode_p (alias))
1879 DEBUG_TRACE ("skip pseudo %s", alias->name);
1883 if ((inst->value & alias->mask) != alias->opcode)
1885 DEBUG_TRACE ("skip %s as base opcode not match", alias->name);
1888 /* No need to do any complicated transformation on operands, if the alias
1890 if (aarch64_num_of_operands (alias) == 0 && alias->opcode == inst->value)
1892 DEBUG_TRACE ("succeed with 0-operand opcode %s", alias->name);
1893 aarch64_replace_opcode (inst, alias);
1896 if (alias->flags & F_CONV)
1900 /* ALIAS is the preference as long as the instruction can be
1901 successfully converted to the form of ALIAS. */
1902 if (convert_to_alias (©, alias) == 1)
1904 aarch64_replace_opcode (©, alias);
1906 DEBUG_TRACE ("succeed with %s via conversion", alias->name);
1913 /* Directly decode the alias opcode. */
1916 if (aarch64_opcode_decode (alias, inst->value, &temp, 1) == 1)
1918 DEBUG_TRACE ("succeed with %s via direct decoding", alias->name);
1930 If OPCODE has alias(es) and NOALIASES_P is 0, an alias opcode may be
1996 alias and should be disassembled in the form of its alias instead.