partial match that was found. */
if (aarch64_sys_regs[i].value == opnd->sysreg.value
&& ! aarch64_sys_reg_deprecated_p (aarch64_sys_regs[i].flags)
+ && ! aarch64_sys_reg_alias_p (aarch64_sys_regs[i].flags)
&& (name == NULL || exact_match))
{
name = aarch64_sys_regs[i].name;
SR_CORE ("trceventctl0r", CPENC (2,1,C0,C8,0), 0),
SR_CORE ("trceventctl1r", CPENC (2,1,C0,C9,0), 0),
SR_CORE ("trcextinselr0", CPENC (2,1,C0,C8,4), 0),
- SR_CORE ("trcextinselr", CPENC (2,1,C0,C8,4), 0),
+ SR_CORE ("trcextinselr", CPENC (2,1,C0,C8,4), F_REG_ALIAS),
SR_CORE ("trcextinselr1", CPENC (2,1,C0,C9,4), 0),
SR_CORE ("trcextinselr2", CPENC (2,1,C0,C10,4), 0),
SR_CORE ("trcextinselr3", CPENC (2,1,C0,C11,4), 0),
return (reg_flags & F_DEPRECATED) != 0;
}
+bool
+aarch64_sys_reg_alias_p (const uint32_t reg_flags)
+{
+ return (reg_flags & F_REG_ALIAS) != 0;
+}
+
/* The CPENC below is fairly misleading, the fields
here are not in CPENC form. They are in op2op1 form. The fields are encoded
by ins_pstatefield, which just shifts the value by the width of the fields