aboutsummaryrefslogtreecommitdiff
path: root/disasm/disasm.cc
diff options
context:
space:
mode:
Diffstat (limited to 'disasm/disasm.cc')
-rw-r--r--disasm/disasm.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/disasm/disasm.cc b/disasm/disasm.cc
index 13aca0a..58c169b 100644
--- a/disasm/disasm.cc
+++ b/disasm/disasm.cc
@@ -1981,7 +1981,7 @@ void disassembler_t::add_instructions(isa_parser_t* isa)
}
}
- if (isa->extension_enabled(EXT_XBITMANIP)) {
+ if (isa->extension_enabled(EXT_XZBP)) {
DEFINE_ITYPE_SHIFT(grevi);
DEFINE_ITYPE_SHIFT(gorci);
DEFINE_RTYPE(pack);
@@ -1993,12 +1993,21 @@ void disassembler_t::add_instructions(isa_parser_t* isa)
DEFINE_RTYPE(xperm8);
DEFINE_RTYPE(xperm16);
DEFINE_RTYPE(xperm32);
+ }
+ if (isa->extension_enabled(EXT_XZBP) ||
+ isa->extension_enabled(EXT_XZBE) ||
+ isa->extension_enabled(EXT_XZBF)) {
+ if(isa->get_max_xlen() == 64) {
+ DEFINE_RTYPE(packw);
+ }
+ }
+
+ if (isa->extension_enabled(EXT_XZBT)) {
DEFINE_R3TYPE(cmix);
DEFINE_R3TYPE(fsr);
DEFINE_R3TYPE(fsri);
if(isa->get_max_xlen() == 64) {
- DEFINE_RTYPE(packw);
DEFINE_R3TYPE(fsriw);
DEFINE_R3TYPE(fsrw);
}