aboutsummaryrefslogtreecommitdiff
path: root/opcodes/mips-dis.c
diff options
context:
space:
mode:
Diffstat (limited to 'opcodes/mips-dis.c')
-rw-r--r--opcodes/mips-dis.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c
index e19d59a..588247a 100644
--- a/opcodes/mips-dis.c
+++ b/opcodes/mips-dis.c
@@ -805,12 +805,21 @@ mips_convert_abiflags_ases (unsigned long afl_ases)
opcode_ases |= ASE_DSPR3;
if (afl_ases & AFL_ASE_MIPS16E2)
opcode_ases |= ASE_MIPS16E2;
- if ((afl_ases & (AFL_ASE_MIPS16E2 | AFL_ASE_MT))
- == (AFL_ASE_MIPS16E2 | AFL_ASE_MT))
- opcode_ases |= ASE_MIPS16E2_MT;
return opcode_ases;
}
+/* Calculate combination ASE flags from regular ASE flags. */
+
+static unsigned long
+mips_calculate_combination_ases (unsigned long opcode_ases)
+{
+ unsigned long combination_ases = 0;
+
+ if ((opcode_ases & (ASE_MIPS16E2 | ASE_MT)) == (ASE_MIPS16E2 | ASE_MT))
+ combination_ases |= ASE_MIPS16E2_MT;
+ return combination_ases;
+}
+
static void
set_default_mips_dis_options (struct disassemble_info *info)
{
@@ -880,6 +889,7 @@ set_default_mips_dis_options (struct disassemble_info *info)
mips_ase |= ASE_MDMX;
}
#endif
+ mips_ase |= mips_calculate_combination_ases (mips_ase);
}
static void