TLBI Domains feature changes TLBI and TLBIP system instructions.
For all TLBIP *E1IS*, TLBIP *E1OS*, TLBIP *E2IS* and TLBIP *E2OS*
instructions that are currently dependent on FEAT_D128 (+d128),
will also be available with FEAT_TLBID (+tlbid).
aarch64_feature_set feat = AARCH64_FEATURE (TLBID);
AARCH64_CLEAR_FEATURES (set, set, feat);
}
+ if (!sysreg128_p && aarch64_sys_ins_reg_has_xt (o))
+ {
+ aarch64_feature_set feat = AARCH64_FEATURES (2, D128_TLBID, D128);
+ AARCH64_CLEAR_FEATURES (set, set, feat);
+ }
if (!aarch64_sys_ins_reg_supported_p (cpu_variant, o->name, &set))
as_bad (_("selected processor does not support system register "
"name '%s'"), buf);
-
if (aarch64_sys_reg_deprecated_p (o->flags))
as_warn (_("system register name '%s' is deprecated and may be "
"removed in a future release"), buf);
{AARCH64_FEATURE (SME2p2), AARCH64_FEATURES (2, SVE_SME2p2, SVE2p2_SME2p2)},
{AARCH64_FEATURE (SVE2p3), AARCH64_FEATURE (SVE2p3_SME2p3)},
{AARCH64_FEATURE (SME2p3), AARCH64_FEATURE (SVE2p3_SME2p3)},
+ {AARCH64_FEATURE (D128), AARCH64_FEATURE (D128_TLBID)},
+ {AARCH64_FEATURE (TLBID), AARCH64_FEATURE (D128_TLBID)},
};
static aarch64_feature_set
--- /dev/null
+#as: -march=armv9.4-a+d128+xs
+#as: -march=armv9.4-a+tlbid+xs
+#objdump: -dr
+[^:]+: file format .*
+
+
+[^:]+:
+
+[^:]+:
+.*: d54c8400 tlbip ipas2e1os, x0, x1
+.*: d54c8480 tlbip ipas2le1os, x0, x1
+.*: d54c8460 tlbip ripas2e1os, x0, x1
+.*: d54c84e0 tlbip ripas2le1os, x0, x1
+.*: d5488560 tlbip rvaae1os, x0, x1
+.*: d54885e0 tlbip rvaale1os, x0, x1
+.*: d5488520 tlbip rvae1os, x0, x1
+.*: d54c8520 tlbip rvae2os, x0, x1
+.*: d54885a0 tlbip rvale1os, x0, x1
+.*: d54c85a0 tlbip rvale2os, x0, x1
+.*: d5488160 tlbip vaae1os, x0, x1
+.*: d54881e0 tlbip vaale1os, x0, x1
+.*: d5488120 tlbip vae1os, x0, x1
+.*: d54c8120 tlbip vae2os, x0, x1
+.*: d54881a0 tlbip vale1os, x0, x1
+.*: d54c81a0 tlbip vale2os, x0, x1
+.*: d54c9400 tlbip ipas2e1osnxs, x0, x1
+.*: d54c9480 tlbip ipas2le1osnxs, x0, x1
+.*: d54c9460 tlbip ripas2e1osnxs, x0, x1
+.*: d54c94e0 tlbip ripas2le1osnxs, x0, x1
+.*: d5489560 tlbip rvaae1osnxs, x0, x1
+.*: d54895e0 tlbip rvaale1osnxs, x0, x1
+.*: d5489520 tlbip rvae1osnxs, x0, x1
+.*: d54c9520 tlbip rvae2osnxs, x0, x1
+.*: d54895a0 tlbip rvale1osnxs, x0, x1
+.*: d54c95a0 tlbip rvale2osnxs, x0, x1
+.*: d5489160 tlbip vaae1osnxs, x0, x1
+.*: d54891e0 tlbip vaale1osnxs, x0, x1
+.*: d5489120 tlbip vae1osnxs, x0, x1
+.*: d54c9120 tlbip vae2osnxs, x0, x1
+.*: d54891a0 tlbip vale1osnxs, x0, x1
+.*: d54c91a0 tlbip vale2osnxs, x0, x1
+.*: d54c8020 tlbip ipas2e1is, x0, x1
+.*: d54c80a0 tlbip ipas2le1is, x0, x1
+.*: d54c8040 tlbip ripas2e1is, x0, x1
+.*: d54c80c0 tlbip ripas2le1is, x0, x1
+.*: d5488260 tlbip rvaae1is, x0, x1
+.*: d54882e0 tlbip rvaale1is, x0, x1
+.*: d5488220 tlbip rvae1is, x0, x1
+.*: d54c8220 tlbip rvae2is, x0, x1
+.*: d54882a0 tlbip rvale1is, x0, x1
+.*: d54c82a0 tlbip rvale2is, x0, x1
+.*: d5488360 tlbip vaae1is, x0, x1
+.*: d54883e0 tlbip vaale1is, x0, x1
+.*: d5488320 tlbip vae1is, x0, x1
+.*: d54c8320 tlbip vae2is, x0, x1
+.*: d54883a0 tlbip vale1is, x0, x1
+.*: d54c83a0 tlbip vale2is, x0, x1
+.*: d54c9020 tlbip ipas2e1isnxs, x0, x1
+.*: d54c90a0 tlbip ipas2le1isnxs, x0, x1
+.*: d54c9040 tlbip ripas2e1isnxs, x0, x1
+.*: d54c90c0 tlbip ripas2le1isnxs, x0, x1
+.*: d5489260 tlbip rvaae1isnxs, x0, x1
+.*: d54892e0 tlbip rvaale1isnxs, x0, x1
+.*: d5489220 tlbip rvae1isnxs, x0, x1
+.*: d54c9220 tlbip rvae2isnxs, x0, x1
+.*: d54892a0 tlbip rvale1isnxs, x0, x1
+.*: d54c92a0 tlbip rvale2isnxs, x0, x1
+.*: d5489360 tlbip vaae1isnxs, x0, x1
+.*: d54893e0 tlbip vaale1isnxs, x0, x1
+.*: d5489320 tlbip vae1isnxs, x0, x1
+.*: d54c9320 tlbip vae2isnxs, x0, x1
+.*: d54893a0 tlbip vale1isnxs, x0, x1
+.*: d54c93a0 tlbip vale2isnxs, x0, x1
--- /dev/null
+ tlbip ipas2e1os, x0, x1
+ tlbip ipas2le1os, x0, x1
+ tlbip ripas2e1os, x0, x1
+ tlbip ripas2le1os, x0, x1
+ tlbip rvaae1os, x0, x1
+ tlbip rvaale1os, x0, x1
+ tlbip rvae1os, x0, x1
+ tlbip rvae2os, x0, x1
+ tlbip rvale1os, x0, x1
+ tlbip rvale2os, x0, x1
+ tlbip vaae1os, x0, x1
+ tlbip vaale1os, x0, x1
+ tlbip vae1os, x0, x1
+ tlbip vae2os, x0, x1
+ tlbip vale1os, x0, x1
+ tlbip vale2os, x0, x1
+
+ tlbip ipas2e1osnxs, x0, x1
+ tlbip ipas2le1osnxs, x0, x1
+ tlbip ripas2e1osnxs, x0, x1
+ tlbip ripas2le1osnxs, x0, x1
+ tlbip rvaae1osnxs, x0, x1
+ tlbip rvaale1osnxs, x0, x1
+ tlbip rvae1osnxs, x0, x1
+ tlbip rvae2osnxs, x0, x1
+ tlbip rvale1osnxs, x0, x1
+ tlbip rvale2osnxs, x0, x1
+ tlbip vaae1osnxs, x0, x1
+ tlbip vaale1osnxs, x0, x1
+ tlbip vae1osnxs, x0, x1
+ tlbip vae2osnxs, x0, x1
+ tlbip vale1osnxs, x0, x1
+ tlbip vale2osnxs, x0, x1
+
+ tlbip ipas2e1is, x0, x1
+ tlbip ipas2le1is, x0, x1
+ tlbip ripas2e1is, x0, x1
+ tlbip ripas2le1is, x0, x1
+ tlbip rvaae1is, x0, x1
+ tlbip rvaale1is, x0, x1
+ tlbip rvae1is, x0, x1
+ tlbip rvae2is, x0, x1
+ tlbip rvale1is, x0, x1
+ tlbip rvale2is, x0, x1
+ tlbip vaae1is, x0, x1
+ tlbip vaale1is, x0, x1
+ tlbip vae1is, x0, x1
+ tlbip vae2is, x0, x1
+ tlbip vale1is, x0, x1
+ tlbip vale2is, x0, x1
+
+ tlbip ipas2e1isnxs, x0, x1
+ tlbip ipas2le1isnxs, x0, x1
+ tlbip ripas2e1isnxs, x0, x1
+ tlbip ripas2le1isnxs, x0, x1
+ tlbip rvaae1isnxs, x0, x1
+ tlbip rvaale1isnxs, x0, x1
+ tlbip rvae1isnxs, x0, x1
+ tlbip rvae2isnxs, x0, x1
+ tlbip rvale1isnxs, x0, x1
+ tlbip rvale2isnxs, x0, x1
+ tlbip vaae1isnxs, x0, x1
+ tlbip vaale1isnxs, x0, x1
+ tlbip vae1isnxs, x0, x1
+ tlbip vae2isnxs, x0, x1
+ tlbip vale1isnxs, x0, x1
+ tlbip vale2isnxs, x0, x1
--- /dev/null
+#name: Test without v8.4-a or above.
+#source: tlbid-2.s
+#as: -march=armv8-a+tlbid
+#as: -march=armv8-a+d128
+#error_output: tlbid-invalid-2.l
--- /dev/null
+.*: Assembler messages:
+.*: Error: selected processor does not support system register name 'ipas2e1os'
+.*: Error: selected processor does not support system register name 'ipas2le1os'
+.*: Error: selected processor does not support system register name 'ripas2e1os'
+.*: Error: selected processor does not support system register name 'ripas2le1os'
+.*: Error: selected processor does not support system register name 'rvaae1os'
+.*: Error: selected processor does not support system register name 'rvaale1os'
+.*: Error: selected processor does not support system register name 'rvae1os'
+.*: Error: selected processor does not support system register name 'rvae2os'
+.*: Error: selected processor does not support system register name 'rvale1os'
+.*: Error: selected processor does not support system register name 'rvale2os'
+.*: Error: selected processor does not support system register name 'vaae1os'
+.*: Error: selected processor does not support system register name 'vaale1os'
+.*: Error: selected processor does not support system register name 'vae1os'
+.*: Error: selected processor does not support system register name 'vae2os'
+.*: Error: selected processor does not support system register name 'vale1os'
+.*: Error: selected processor does not support system register name 'vale2os'
+.*: Error: selected processor does not support system register name 'ipas2e1osnxs'
+.*: Error: selected processor does not support system register name 'ipas2le1osnxs'
+.*: Error: selected processor does not support system register name 'ripas2e1osnxs'
+.*: Error: selected processor does not support system register name 'ripas2le1osnxs'
+.*: Error: selected processor does not support system register name 'rvaae1osnxs'
+.*: Error: selected processor does not support system register name 'rvaale1osnxs'
+.*: Error: selected processor does not support system register name 'rvae1osnxs'
+.*: Error: selected processor does not support system register name 'rvae2osnxs'
+.*: Error: selected processor does not support system register name 'rvale1osnxs'
+.*: Error: selected processor does not support system register name 'rvale2osnxs'
+.*: Error: selected processor does not support system register name 'vaae1osnxs'
+.*: Error: selected processor does not support system register name 'vaale1osnxs'
+.*: Error: selected processor does not support system register name 'vae1osnxs'
+.*: Error: selected processor does not support system register name 'vae2osnxs'
+.*: Error: selected processor does not support system register name 'vale1osnxs'
+.*: Error: selected processor does not support system register name 'vale2osnxs'
+.*: Error: selected processor does not support system register name 'ripas2e1is'
+.*: Error: selected processor does not support system register name 'ripas2le1is'
+.*: Error: selected processor does not support system register name 'rvaae1is'
+.*: Error: selected processor does not support system register name 'rvaale1is'
+.*: Error: selected processor does not support system register name 'rvae1is'
+.*: Error: selected processor does not support system register name 'rvae2is'
+.*: Error: selected processor does not support system register name 'rvale1is'
+.*: Error: selected processor does not support system register name 'rvale2is'
+.*: Error: selected processor does not support system register name 'ipas2e1isnxs'
+.*: Error: selected processor does not support system register name 'ipas2le1isnxs'
+.*: Error: selected processor does not support system register name 'ripas2e1isnxs'
+.*: Error: selected processor does not support system register name 'ripas2le1isnxs'
+.*: Error: selected processor does not support system register name 'rvaae1isnxs'
+.*: Error: selected processor does not support system register name 'rvaale1isnxs'
+.*: Error: selected processor does not support system register name 'rvae1isnxs'
+.*: Error: selected processor does not support system register name 'rvae2isnxs'
+.*: Error: selected processor does not support system register name 'rvale1isnxs'
+.*: Error: selected processor does not support system register name 'rvale2isnxs'
+.*: Error: selected processor does not support system register name 'vaae1isnxs'
+.*: Error: selected processor does not support system register name 'vaale1isnxs'
+.*: Error: selected processor does not support system register name 'vae1isnxs'
+.*: Error: selected processor does not support system register name 'vae2isnxs'
+.*: Error: selected processor does not support system register name 'vale1isnxs'
+.*: Error: selected processor does not support system register name 'vale2isnxs'
--- /dev/null
+#name: Test without +tlbid and +d128 options.
+#source: tlbid-2.s
+#as: -march=armv9.4-a
+#error_output: tlbid-invalid-3.l
--- /dev/null
+.*: Assembler messages:
+.*: Error: selected processor does not support system register name 'ipas2e1os'
+.*: Error: selected processor does not support `tlbip ipas2e1os,x0,x1'
+.*: Error: selected processor does not support system register name 'ipas2le1os'
+.*: Error: selected processor does not support `tlbip ipas2le1os,x0,x1'
+.*: Error: selected processor does not support system register name 'ripas2e1os'
+.*: Error: selected processor does not support `tlbip ripas2e1os,x0,x1'
+.*: Error: selected processor does not support system register name 'ripas2le1os'
+.*: Error: selected processor does not support `tlbip ripas2le1os,x0,x1'
+.*: Error: selected processor does not support system register name 'rvaae1os'
+.*: Error: selected processor does not support `tlbip rvaae1os,x0,x1'
+.*: Error: selected processor does not support system register name 'rvaale1os'
+.*: Error: selected processor does not support `tlbip rvaale1os,x0,x1'
+.*: Error: selected processor does not support system register name 'rvae1os'
+.*: Error: selected processor does not support `tlbip rvae1os,x0,x1'
+.*: Error: selected processor does not support system register name 'rvae2os'
+.*: Error: selected processor does not support `tlbip rvae2os,x0,x1'
+.*: Error: selected processor does not support system register name 'rvale1os'
+.*: Error: selected processor does not support `tlbip rvale1os,x0,x1'
+.*: Error: selected processor does not support system register name 'rvale2os'
+.*: Error: selected processor does not support `tlbip rvale2os,x0,x1'
+.*: Error: selected processor does not support system register name 'vaae1os'
+.*: Error: selected processor does not support `tlbip vaae1os,x0,x1'
+.*: Error: selected processor does not support system register name 'vaale1os'
+.*: Error: selected processor does not support `tlbip vaale1os,x0,x1'
+.*: Error: selected processor does not support system register name 'vae1os'
+.*: Error: selected processor does not support `tlbip vae1os,x0,x1'
+.*: Error: selected processor does not support system register name 'vae2os'
+.*: Error: selected processor does not support `tlbip vae2os,x0,x1'
+.*: Error: selected processor does not support system register name 'vale1os'
+.*: Error: selected processor does not support `tlbip vale1os,x0,x1'
+.*: Error: selected processor does not support system register name 'vale2os'
+.*: Error: selected processor does not support `tlbip vale2os,x0,x1'
+.*: Error: selected processor does not support system register name 'ipas2e1osnxs'
+.*: Error: selected processor does not support `tlbip ipas2e1osnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'ipas2le1osnxs'
+.*: Error: selected processor does not support `tlbip ipas2le1osnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'ripas2e1osnxs'
+.*: Error: selected processor does not support `tlbip ripas2e1osnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'ripas2le1osnxs'
+.*: Error: selected processor does not support `tlbip ripas2le1osnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'rvaae1osnxs'
+.*: Error: selected processor does not support `tlbip rvaae1osnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'rvaale1osnxs'
+.*: Error: selected processor does not support `tlbip rvaale1osnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'rvae1osnxs'
+.*: Error: selected processor does not support `tlbip rvae1osnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'rvae2osnxs'
+.*: Error: selected processor does not support `tlbip rvae2osnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'rvale1osnxs'
+.*: Error: selected processor does not support `tlbip rvale1osnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'rvale2osnxs'
+.*: Error: selected processor does not support `tlbip rvale2osnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'vaae1osnxs'
+.*: Error: selected processor does not support `tlbip vaae1osnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'vaale1osnxs'
+.*: Error: selected processor does not support `tlbip vaale1osnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'vae1osnxs'
+.*: Error: selected processor does not support `tlbip vae1osnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'vae2osnxs'
+.*: Error: selected processor does not support `tlbip vae2osnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'vale1osnxs'
+.*: Error: selected processor does not support `tlbip vale1osnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'vale2osnxs'
+.*: Error: selected processor does not support `tlbip vale2osnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'ipas2e1is'
+.*: Error: selected processor does not support `tlbip ipas2e1is,x0,x1'
+.*: Error: selected processor does not support system register name 'ipas2le1is'
+.*: Error: selected processor does not support `tlbip ipas2le1is,x0,x1'
+.*: Error: selected processor does not support system register name 'ripas2e1is'
+.*: Error: selected processor does not support `tlbip ripas2e1is,x0,x1'
+.*: Error: selected processor does not support system register name 'ripas2le1is'
+.*: Error: selected processor does not support `tlbip ripas2le1is,x0,x1'
+.*: Error: selected processor does not support system register name 'rvaae1is'
+.*: Error: selected processor does not support `tlbip rvaae1is,x0,x1'
+.*: Error: selected processor does not support system register name 'rvaale1is'
+.*: Error: selected processor does not support `tlbip rvaale1is,x0,x1'
+.*: Error: selected processor does not support system register name 'rvae1is'
+.*: Error: selected processor does not support `tlbip rvae1is,x0,x1'
+.*: Error: selected processor does not support system register name 'rvae2is'
+.*: Error: selected processor does not support `tlbip rvae2is,x0,x1'
+.*: Error: selected processor does not support system register name 'rvale1is'
+.*: Error: selected processor does not support `tlbip rvale1is,x0,x1'
+.*: Error: selected processor does not support system register name 'rvale2is'
+.*: Error: selected processor does not support `tlbip rvale2is,x0,x1'
+.*: Error: selected processor does not support system register name 'vaae1is'
+.*: Error: selected processor does not support `tlbip vaae1is,x0,x1'
+.*: Error: selected processor does not support system register name 'vaale1is'
+.*: Error: selected processor does not support `tlbip vaale1is,x0,x1'
+.*: Error: selected processor does not support system register name 'vae1is'
+.*: Error: selected processor does not support `tlbip vae1is,x0,x1'
+.*: Error: selected processor does not support system register name 'vae2is'
+.*: Error: selected processor does not support `tlbip vae2is,x0,x1'
+.*: Error: selected processor does not support system register name 'vale1is'
+.*: Error: selected processor does not support `tlbip vale1is,x0,x1'
+.*: Error: selected processor does not support system register name 'vale2is'
+.*: Error: selected processor does not support `tlbip vale2is,x0,x1'
+.*: Error: selected processor does not support system register name 'ipas2e1isnxs'
+.*: Error: selected processor does not support `tlbip ipas2e1isnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'ipas2le1isnxs'
+.*: Error: selected processor does not support `tlbip ipas2le1isnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'ripas2e1isnxs'
+.*: Error: selected processor does not support `tlbip ripas2e1isnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'ripas2le1isnxs'
+.*: Error: selected processor does not support `tlbip ripas2le1isnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'rvaae1isnxs'
+.*: Error: selected processor does not support `tlbip rvaae1isnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'rvaale1isnxs'
+.*: Error: selected processor does not support `tlbip rvaale1isnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'rvae1isnxs'
+.*: Error: selected processor does not support `tlbip rvae1isnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'rvae2isnxs'
+.*: Error: selected processor does not support `tlbip rvae2isnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'rvale1isnxs'
+.*: Error: selected processor does not support `tlbip rvale1isnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'rvale2isnxs'
+.*: Error: selected processor does not support `tlbip rvale2isnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'vaae1isnxs'
+.*: Error: selected processor does not support `tlbip vaae1isnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'vaale1isnxs'
+.*: Error: selected processor does not support `tlbip vaale1isnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'vae1isnxs'
+.*: Error: selected processor does not support `tlbip vae1isnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'vae2isnxs'
+.*: Error: selected processor does not support `tlbip vae2isnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'vale1isnxs'
+.*: Error: selected processor does not support `tlbip vale1isnxs,x0,x1'
+.*: Error: selected processor does not support system register name 'vale2isnxs'
+.*: Error: selected processor does not support `tlbip vale2isnxs,x0,x1'
--- /dev/null
+#name: Test with +tlbid and +nod128 for TBLIP instructions.
+#as: -march=armv9.4-a+tlbid
+#as: -march=armv9.4-a+tlbid+nod128
+#error_output: tlbid-nod128-invalid-1.l
--- /dev/null
+.*: Assembler messages:
+.*: Error: selected processor does not support system register name 'rvae1'
+.*: Error: selected processor does not support system register name 'rvaae1'
+.*: Error: selected processor does not support system register name 'rvale1'
+.*: Error: selected processor does not support system register name 'rvaale1'
+.*: Error: selected processor does not support system register name 'vae1'
+.*: Error: selected processor does not support system register name 'vaae1'
+.*: Error: selected processor does not support system register name 'vale1'
+.*: Error: selected processor does not support system register name 'vaale1'
+.*: Error: selected processor does not support system register name 'rvae1nxs'
+.*: Error: selected processor does not support system register name 'rvaae1nxs'
+.*: Error: selected processor does not support system register name 'rvale1nxs'
+.*: Error: selected processor does not support system register name 'rvaale1nxs'
+.*: Error: selected processor does not support system register name 'vae1nxs'
+.*: Error: selected processor does not support system register name 'vaae1nxs'
+.*: Error: selected processor does not support system register name 'vale1nxs'
+.*: Error: selected processor does not support system register name 'vaale1nxs'
+.*: Error: selected processor does not support system register name 'ipas2e1'
+.*: Error: selected processor does not support system register name 'ripas2e1'
+.*: Error: selected processor does not support system register name 'ipas2le1'
+.*: Error: selected processor does not support system register name 'ripas2le1'
+.*: Error: selected processor does not support system register name 'rvae2'
+.*: Error: selected processor does not support system register name 'rvale2'
+.*: Error: selected processor does not support system register name 'vae2'
+.*: Error: selected processor does not support system register name 'vale2'
+.*: Error: selected processor does not support system register name 'ipas2e1nxs'
+.*: Error: selected processor does not support system register name 'ripas2e1nxs'
+.*: Error: selected processor does not support system register name 'ipas2le1nxs'
+.*: Error: selected processor does not support system register name 'ripas2le1nxs'
+.*: Error: selected processor does not support system register name 'rvae2nxs'
+.*: Error: selected processor does not support system register name 'rvale2nxs'
+.*: Error: selected processor does not support system register name 'vae2nxs'
+.*: Error: selected processor does not support system register name 'vale2nxs'
+.*: Error: selected processor does not support system register name 'vae3os'
+.*: Error: selected processor does not support system register name 'vale3os'
+.*: Error: selected processor does not support system register name 'rvae3is'
+.*: Error: selected processor does not support system register name 'rvale3is'
+.*: Error: selected processor does not support system register name 'vae3is'
+.*: Error: selected processor does not support system register name 'vale3is'
+.*: Error: selected processor does not support system register name 'rvae3os'
+.*: Error: selected processor does not support system register name 'rvale3os'
+.*: Error: selected processor does not support system register name 'rvae3'
+.*: Error: selected processor does not support system register name 'rvale3'
+.*: Error: selected processor does not support system register name 'vae3'
+.*: Error: selected processor does not support system register name 'vale3'
+.*: Error: selected processor does not support system register name 'vae3osnxs'
+.*: Error: selected processor does not support system register name 'vale3osnxs'
+.*: Error: selected processor does not support system register name 'rvae3isnxs'
+.*: Error: selected processor does not support system register name 'rvale3isnxs'
+.*: Error: selected processor does not support system register name 'vae3isnxs'
+.*: Error: selected processor does not support system register name 'vale3isnxs'
+.*: Error: selected processor does not support system register name 'rvae3osnxs'
+.*: Error: selected processor does not support system register name 'rvale3osnxs'
+.*: Error: selected processor does not support system register name 'rvae3nxs'
+.*: Error: selected processor does not support system register name 'rvale3nxs'
+.*: Error: selected processor does not support system register name 'vae3nxs'
+.*: Error: selected processor does not support system register name 'vale3nxs'
--- /dev/null
+tlbip rvae1, x0, x1
+tlbip rvaae1, x0, x1
+tlbip rvale1, x0, x1
+tlbip rvaale1, x0, x1
+tlbip vae1, x0, x1
+tlbip vaae1, x0, x1
+tlbip vale1, x0, x1
+tlbip vaale1, x0, x1
+tlbip rvae1nxs, x0, x1
+tlbip rvaae1nxs, x0, x1
+tlbip rvale1nxs, x0, x1
+tlbip rvaale1nxs, x0, x1
+tlbip vae1nxs, x0, x1
+tlbip vaae1nxs, x0, x1
+tlbip vale1nxs, x0, x1
+tlbip vaale1nxs, x0, x1
+tlbip ipas2e1, x0, x1
+tlbip ripas2e1, x0, x1
+tlbip ipas2le1, x0, x1
+tlbip ripas2le1, x0, x1
+tlbip rvae2, x0, x1
+tlbip rvale2, x0, x1
+tlbip vae2, x0, x1
+tlbip vale2, x0, x1
+tlbip ipas2e1nxs, x0, x1
+tlbip ripas2e1nxs, x0, x1
+tlbip ipas2le1nxs, x0, x1
+tlbip ripas2le1nxs, x0, x1
+tlbip rvae2nxs, x0, x1
+tlbip rvale2nxs, x0, x1
+tlbip vae2nxs, x0, x1
+tlbip vale2nxs, x0, x1
+tlbip vae3os, x0, x1
+tlbip vale3os, x0, x1
+tlbip rvae3is, x0, x1
+tlbip rvale3is, x0, x1
+tlbip vae3is, x0, x1
+tlbip vale3is, x0, x1
+tlbip rvae3os, x0, x1
+tlbip rvale3os, x0, x1
+tlbip rvae3, x0, x1
+tlbip rvale3, x0, x1
+tlbip vae3, x0, x1
+tlbip vale3, x0, x1
+tlbip vae3osnxs, x0, x1
+tlbip vale3osnxs, x0, x1
+tlbip rvae3isnxs, x0, x1
+tlbip rvale3isnxs, x0, x1
+tlbip vae3isnxs, x0, x1
+tlbip vale3isnxs, x0, x1
+tlbip rvae3osnxs, x0, x1
+tlbip rvale3osnxs, x0, x1
+tlbip rvae3nxs, x0, x1
+tlbip rvale3nxs, x0, x1
+tlbip vae3nxs, x0, x1
+tlbip vale3nxs, x0, x1
AARCH64_FEATURE_SVE2p2_SME2p2,
/* +sve2p3 or +sme2p3 */
AARCH64_FEATURE_SVE2p3_SME2p3,
+ /* +d128 or +tlbid */
+ AARCH64_FEATURE_D128_TLBID,
AARCH64_NUM_FEATURES
};
TLBI_XS_OP ( "alle1is", CPENS (4, C8, C3, 4), F_TLBID_XT)
#undef TLBI_XS_OP
+#define TLBI_XS_OP(OP, CODE, FLAGS) \
+ { OP, CODE, FLAGS, AARCH64_FEATURE (D128_TLBID)}, \
+ { OP "nxs", CODE | CPENS (0, C9, 0, 0), FLAGS, AARCH64_FEATURES (2, XS, D128_TLBID)},
+
+ TLBI_XS_OP ( "vae1is", CPENS (0, C8, C3, 1), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "vaae1is", CPENS (0, C8, C3, 3), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "ipas2e1is", CPENS (4, C8, C0, 1), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "ipas2le1is",CPENS (4, C8, C0, 5), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "vale1is", CPENS (0, C8, C3, 5), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "vaale1is", CPENS (0, C8, C3, 7), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "vae2is", CPENS (4, C8, C3, 1), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "vale2is", CPENS (4, C8, C3, 5), F_HASXT | F_REG_128)
+#undef TLBI_XS_OP
+
#define TLBI_XS_OP(OP, CODE, FLAGS) \
{ OP, CODE, FLAGS, AARCH64_NO_FEATURES}, \
{ OP "nxs", CODE | CPENS (0, C9, 0, 0), FLAGS, AARCH64_FEATURE (XS)},
TLBI_XS_OP ( "vmalle1", CPENS (0, C8, C7, 0), 0)
+ TLBI_XS_OP ( "vmalls12e1",CPENS (4, C8, C7, 6), 0)
+ TLBI_XS_OP ( "alle2", CPENS (4, C8, C7, 0), 0)
+ TLBI_XS_OP ( "alle1", CPENS (4, C8, C7, 4), 0)
+ TLBI_XS_OP ( "alle3", CPENS (6, C8, C7, 0), 0)
+ TLBI_XS_OP ( "alle3is", CPENS (6, C8, C3, 0), 0)
+#undef TLBI_XS_OP
+
+#define TLBI_XS_OP(OP, CODE, FLAGS) \
+ { OP, CODE, FLAGS, AARCH64_FEATURE (D128)}, \
+ { OP "nxs", CODE | CPENS (0, C9, 0, 0), FLAGS, AARCH64_FEATURES (2, XS, D128)},
+
TLBI_XS_OP ( "vae1", CPENS (0, C8, C7, 1), F_HASXT | F_REG_128)
TLBI_XS_OP ( "aside1", CPENS (0, C8, C7, 2), F_HASXT)
TLBI_XS_OP ( "vaae1", CPENS (0, C8, C7, 3), F_HASXT | F_REG_128)
- TLBI_XS_OP ( "vae1is", CPENS (0, C8, C3, 1), F_HASXT | F_REG_128)
TLBI_XS_OP ( "aside1is", CPENS (0, C8, C3, 2), F_HASXT)
- TLBI_XS_OP ( "vaae1is", CPENS (0, C8, C3, 3), F_HASXT | F_REG_128)
- TLBI_XS_OP ( "ipas2e1is", CPENS (4, C8, C0, 1), F_HASXT | F_REG_128)
- TLBI_XS_OP ( "ipas2le1is",CPENS (4, C8, C0, 5), F_HASXT | F_REG_128)
TLBI_XS_OP ( "ipas2e1", CPENS (4, C8, C4, 1), F_HASXT | F_REG_128)
TLBI_XS_OP ( "ipas2le1", CPENS (4, C8, C4, 5), F_HASXT | F_REG_128)
TLBI_XS_OP ( "vae2", CPENS (4, C8, C7, 1), F_HASXT | F_REG_128)
- TLBI_XS_OP ( "vae2is", CPENS (4, C8, C3, 1), F_HASXT | F_REG_128)
- TLBI_XS_OP ( "vmalls12e1",CPENS (4, C8, C7, 6), 0)
TLBI_XS_OP ( "vae3", CPENS (6, C8, C7, 1), F_HASXT | F_REG_128)
TLBI_XS_OP ( "vae3is", CPENS (6, C8, C3, 1), F_HASXT | F_REG_128)
- TLBI_XS_OP ( "alle2", CPENS (4, C8, C7, 0), 0)
- TLBI_XS_OP ( "alle1", CPENS (4, C8, C7, 4), 0)
- TLBI_XS_OP ( "alle3", CPENS (6, C8, C7, 0), 0)
- TLBI_XS_OP ( "alle3is", CPENS (6, C8, C3, 0), 0)
- TLBI_XS_OP ( "vale1is", CPENS (0, C8, C3, 5), F_HASXT | F_REG_128)
- TLBI_XS_OP ( "vale2is", CPENS (4, C8, C3, 5), F_HASXT | F_REG_128)
TLBI_XS_OP ( "vale3is", CPENS (6, C8, C3, 5), F_HASXT | F_REG_128)
- TLBI_XS_OP ( "vaale1is", CPENS (0, C8, C3, 7), F_HASXT | F_REG_128)
TLBI_XS_OP ( "vale1", CPENS (0, C8, C7, 5), F_HASXT | F_REG_128)
TLBI_XS_OP ( "vale2", CPENS (4, C8, C7, 5), F_HASXT | F_REG_128)
TLBI_XS_OP ( "vale3", CPENS (6, C8, C7, 5), F_HASXT | F_REG_128)
TLBI_XS_OP ( "vmallws2e1os", CPENS (4, C8, C5, 2), F_TLBID_XT)
#undef TLBI_XS_OP
+#define TLBI_XS_OP(OP, CODE, FLAGS) \
+ { OP, CODE, FLAGS, AARCH64_FEATURES (2, V8_4A, D128_TLBID)}, \
+ { OP "nxs", CODE | CPENS (0, C9, 0, 0), FLAGS, AARCH64_FEATURES (2, XS, D128_TLBID)},
+
+ TLBI_XS_OP ( "vae1os", CPENS (0, C8, C1, 1), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "vaae1os", CPENS (0, C8, C1, 3), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "vale1os", CPENS (0, C8, C1, 5), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "vaale1os", CPENS (0, C8, C1, 7), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "ipas2e1os", CPENS (4, C8, C4, 0), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "ipas2le1os", CPENS (4, C8, C4, 4), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "vae2os", CPENS (4, C8, C1, 1), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "vale2os", CPENS (4, C8, C1, 5), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "rvae1is", CPENS (0, C8, C2, 1), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "rvaae1is", CPENS (0, C8, C2, 3), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "rvale1is", CPENS (0, C8, C2, 5), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "rvaale1is", CPENS (0, C8, C2, 7), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "rvae1os", CPENS (0, C8, C5, 1), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "rvaae1os", CPENS (0, C8, C5, 3), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "rvale1os", CPENS (0, C8, C5, 5), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "rvaale1os", CPENS (0, C8, C5, 7), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "ripas2e1is", CPENS (4, C8, C0, 2), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "ripas2le1is",CPENS (4, C8, C0, 6), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "ripas2e1os", CPENS (4, C8, C4, 3), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "ripas2le1os",CPENS (4, C8, C4, 7), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "rvae2is", CPENS (4, C8, C2, 1), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "rvale2is", CPENS (4, C8, C2, 5), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "rvae2os", CPENS (4, C8, C5, 1), F_HASXT | F_REG_128)
+ TLBI_XS_OP ( "rvale2os", CPENS (4, C8, C5, 5), F_HASXT | F_REG_128)
+#undef TLBI_XS_OP
+
#define TLBI_XS_OP(OP, CODE, FLAGS) \
{ OP, CODE, FLAGS, AARCH64_FEATURE (V8_4A)}, \
{ OP "nxs", CODE | CPENS (0, C9, 0, 0), FLAGS, AARCH64_FEATURE (XS)},
- TLBI_XS_OP ( "vae1os", CPENS (0, C8, C1, 1), F_HASXT | F_REG_128 )
+ TLBI_XS_OP ( "alle3os", CPENS (6, C8, C1, 0), 0)
+ TLBI_XS_OP ( "vmallws2e1", CPENS (4, C8, C6, 3), 0)
+#undef TLBI_XS_OP
+
+#define TLBI_XS_OP(OP, CODE, FLAGS) \
+ { OP, CODE, FLAGS, AARCH64_FEATURES (2, V8_4A, D128)}, \
+ { OP "nxs", CODE | CPENS (0, C9, 0, 0), FLAGS, AARCH64_FEATURES (2, XS, D128)},
+
TLBI_XS_OP ( "aside1os", CPENS (0, C8, C1, 2), F_HASXT)
- TLBI_XS_OP ( "vaae1os", CPENS (0, C8, C1, 3), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "vale1os", CPENS (0, C8, C1, 5), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "vaale1os", CPENS (0, C8, C1, 7), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "ipas2e1os", CPENS (4, C8, C4, 0), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "ipas2le1os", CPENS (4, C8, C4, 4), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "vae2os", CPENS (4, C8, C1, 1), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "vale2os", CPENS (4, C8, C1, 5), F_HASXT | F_REG_128 )
TLBI_XS_OP ( "vae3os", CPENS (6, C8, C1, 1), F_HASXT | F_REG_128 )
TLBI_XS_OP ( "vale3os", CPENS (6, C8, C1, 5), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "alle3os", CPENS (6, C8, C1, 0), 0)
TLBI_XS_OP ( "rvae1", CPENS (0, C8, C6, 1), F_HASXT | F_REG_128 )
TLBI_XS_OP ( "rvaae1", CPENS (0, C8, C6, 3), F_HASXT | F_REG_128 )
TLBI_XS_OP ( "rvale1", CPENS (0, C8, C6, 5), F_HASXT | F_REG_128 )
TLBI_XS_OP ( "rvaale1", CPENS (0, C8, C6, 7), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "rvae1is", CPENS (0, C8, C2, 1), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "rvaae1is", CPENS (0, C8, C2, 3), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "rvale1is", CPENS (0, C8, C2, 5), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "rvaale1is", CPENS (0, C8, C2, 7), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "rvae1os", CPENS (0, C8, C5, 1), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "rvaae1os", CPENS (0, C8, C5, 3), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "rvale1os", CPENS (0, C8, C5, 5), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "rvaale1os", CPENS (0, C8, C5, 7), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "ripas2e1is", CPENS (4, C8, C0, 2), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "ripas2le1is",CPENS (4, C8, C0, 6), F_HASXT | F_REG_128 )
TLBI_XS_OP ( "ripas2e1", CPENS (4, C8, C4, 2), F_HASXT | F_REG_128 )
TLBI_XS_OP ( "ripas2le1", CPENS (4, C8, C4, 6), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "ripas2e1os", CPENS (4, C8, C4, 3), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "ripas2le1os",CPENS (4, C8, C4, 7), F_HASXT | F_REG_128 )
TLBI_XS_OP ( "rvae2", CPENS (4, C8, C6, 1), F_HASXT | F_REG_128 )
TLBI_XS_OP ( "rvale2", CPENS (4, C8, C6, 5), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "rvae2is", CPENS (4, C8, C2, 1), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "rvale2is", CPENS (4, C8, C2, 5), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "rvae2os", CPENS (4, C8, C5, 1), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "rvale2os", CPENS (4, C8, C5, 5), F_HASXT | F_REG_128 )
TLBI_XS_OP ( "rvae3", CPENS (6, C8, C6, 1), F_HASXT | F_REG_128 )
TLBI_XS_OP ( "rvale3", CPENS (6, C8, C6, 5), F_HASXT | F_REG_128 )
TLBI_XS_OP ( "rvae3is", CPENS (6, C8, C2, 1), F_HASXT | F_REG_128 )
TLBI_XS_OP ( "rvale3is", CPENS (6, C8, C2, 5), F_HASXT | F_REG_128 )
TLBI_XS_OP ( "rvae3os", CPENS (6, C8, C5, 1), F_HASXT | F_REG_128 )
TLBI_XS_OP ( "rvale3os", CPENS (6, C8, C5, 5), F_HASXT | F_REG_128 )
- TLBI_XS_OP ( "vmallws2e1",CPENS (4, C8, C6, 3), 0)
-
#undef TLBI_XS_OP
{ 0, CPENS(0,0,0,0), 0, AARCH64_NO_FEATURES }
AARCH64_FEATURE (ITE);
static const aarch64_feature_set aarch64_feature_d128 =
AARCH64_FEATURE (D128);
+static const aarch64_feature_set aarch64_feature_d128_tlbid =
+ AARCH64_FEATURE (D128_TLBID);
static const aarch64_feature_set aarch64_feature_the =
AARCH64_FEATURE (THE);
static const aarch64_feature_set aarch64_feature_d128_the =
#define GCS &aarch64_feature_gcs
#define ITE &aarch64_feature_ite
#define D128 &aarch64_feature_d128
+#define D128_TLBID &aarch64_feature_d128_tlbid
#define THE &aarch64_feature_the
#define D128_THE &aarch64_feature_d128_the
#define B16B16_SVE2 &aarch64_feature_sve_b16b16_sve2
{ NAME, OPCODE, MASK, gcs, 0, GCS, OPS, QUALS, FLAGS, 0, 0, NULL }
#define D128_INSN(NAME,OPCODE,MASK,OPS,QUALS,FLAGS) \
{ NAME, OPCODE, MASK, ic_system, 0, D128, OPS, QUALS, FLAGS | F_INVALID_IMM_SYMS_1, 0, 0, NULL }
+#define D128_TLBID_INSN(NAME,OPCODE,MASK,OPS,QUALS,FLAGS) \
+ { NAME, OPCODE, MASK, ic_system, 0, D128_TLBID, OPS, QUALS, FLAGS | F_INVALID_IMM_SYMS_1, 0, 0, NULL }
#define THE_INSN(NAME,OPCODE,MASK,OPS,QUALS,FLAGS) \
{ NAME, OPCODE, MASK, the, 0, THE, OPS, QUALS, FLAGS, 0, 0, NULL }
#define D128_THE_INSN(NAME,OPCODE,MASK,OPS,QUALS,FLAGS) \
CORE_INSN ("dc", 0xd5080000, 0xfff80000, ic_system, 0, OP2 (SYSREG_DC, Rt), QL_SRC_X, F_ALIAS),
CORE_INSN ("ic", 0xd5080000, 0xfff80000, ic_system, 0, OP2 (SYSREG_IC, Rt_SYS), QL_SRC_X, F_ALIAS | F_OPD1_OPT | F_DEFAULT (0x1F)),
CORE_INSN ("tlbi",0xd5080000, 0xfff80000, ic_system, 0, OP2 (SYSREG_TLBI, Rt_SYS), QL_SRC_X, F_ALIAS | F_OPD1_OPT | F_DEFAULT (0x1F)),
- D128_INSN ("tlbip",0xd5480000, 0xfff80000, OP3 (SYSREG_TLBIP, Rt_SYS, PAIRREG_OR_XZR), QL_SRC_X2, F_ALIAS| F_OPD1_OPT | F_OPD_PAIR_OPT | F_DEFAULT (0x1f)),
+ D128_TLBID_INSN ("tlbip",0xd5480000, 0xfff80000, OP3 (SYSREG_TLBIP, Rt_SYS, PAIRREG_OR_XZR), QL_SRC_X2, F_ALIAS| F_OPD1_OPT | F_OPD_PAIR_OPT | F_DEFAULT (0x1f)),
WFXT_INSN ("wfet", 0xd5031000, 0xffffffe0, ic_system, OP1 (Rd), QL_I1X, F_HAS_ALIAS),
WFXT_INSN ("wfit", 0xd5031020, 0xffffffe0, ic_system, OP1 (Rd), QL_I1X, F_HAS_ALIAS),
PREDRES_INSN ("cfp", 0xd50b7380, 0xffffffe0, ic_system, OP2 (SYSREG_SR, Rt), QL_SRC_X, F_ALIAS),