}
/*
- * By convention, for wildcarded registers only the first
- * entry is used for migration; the others are marked as
- * ALIAS so we don't try to transfer the register
- * multiple times. Special registers (ie NOP/WFI) are
- * never migratable and not even raw-accessible.
+ * Special registers (ie NOP/WFI) are never migratable and
+ * are not even raw-accessible.
*/
if (r->type & ARM_CP_SPECIAL_MASK) {
r->type |= ARM_CP_NO_RAW;
}
- if (((r->crm == CP_ANY) && crm != 0) ||
- ((r->opc1 == CP_ANY) && opc1 != 0) ||
- ((r->opc2 == CP_ANY) && opc2 != 0)) {
- r->type |= ARM_CP_ALIAS | ARM_CP_NO_GDB;
- }
/*
* Update fields to match the instantiation, overwiting wildcards
ARMCPRegInfo *r2 = alloc_cpreg(r, NULL);
ARMCPRegInfo *r3;
+ /*
+ * By convention, for wildcarded registers only the first
+ * entry is used for migration; the others are marked as
+ * ALIAS so we don't try to transfer the register
+ * multiple times.
+ */
+ if (crm != crmmin || opc1 != opc1min || opc2 != opc2min) {
+ r2->type |= ARM_CP_ALIAS | ARM_CP_NO_GDB;
+ }
+
switch (r->state) {
case ARM_CP_STATE_AA32:
add_cpreg_to_hashtable_aa32(cpu, r2, cp, crm, opc1, opc2);