Browse Source

Merge pull request #2094 from chihminchao/enhance-amo-disasm

disasm: show the acquire and release attribute to amo instructions
pull/2095/head
Andrew Waterman 10 months ago
committed by GitHub
parent
commit
9145cdcae2
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 12
      disasm/disasm.cc

12
disasm/disasm.cc

@ -643,7 +643,17 @@ static void NOINLINE add_fstore_insn(disassembler_t* d, const char* name, uint32
static void NOINLINE add_xamo_insn(disassembler_t* d, const char* name, uint32_t match, uint32_t mask) static void NOINLINE add_xamo_insn(disassembler_t* d, const char* name, uint32_t match, uint32_t mask)
{ {
d->add_insn(new disasm_insn_t(name, match, mask, {&xrd, &xrs2, &base_only_address})); const char *suffix[] = {"", ".rl", ".aq", ".aqrl"};
char new_name[128];
uint32_t new_mask = mask | (0x3 << 25);
uint32_t new_match;
for (uint32_t idx = 0; idx < sizeof(suffix) / sizeof(suffix[0]); ++idx) {
snprintf(new_name, sizeof(new_name), "%s%s", name, suffix[idx]);
new_match = match | (idx << 25);
d->add_insn(new disasm_insn_t(new_name, new_match, new_mask, {&xrd, &xrs2, &base_only_address}));
}
} }
static void NOINLINE add_xlr_insn(disassembler_t* d, const char* name, uint32_t match, uint32_t mask) static void NOINLINE add_xlr_insn(disassembler_t* d, const char* name, uint32_t match, uint32_t mask)

Loading…
Cancel
Save