aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMing-Yi Lai <ming-yi.lai@mediatek.com>2024-01-04 10:03:26 +0800
committerMing-Yi Lai <ming-yi.lai@mediatek.com>2024-03-06 17:21:00 +0800
commit5ca914b13c78cb25e61a8bad8f2cf84024c4eb44 (patch)
tree048922e872451c29fbe4f7d6588a7968ffc7d969
parent6408a0f61b631bc426cdf0c209a34bd37e8a27fe (diff)
downloadspike-5ca914b13c78cb25e61a8bad8f2cf84024c4eb44.zip
spike-5ca914b13c78cb25e61a8bad8f2cf84024c4eb44.tar.gz
spike-5ca914b13c78cb25e61a8bad8f2cf84024c4eb44.tar.bz2
Zicfilp: Support lpad instruction in disassembler
-rw-r--r--disasm/disasm.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/disasm/disasm.cc b/disasm/disasm.cc
index 65c15f5..a33cb71 100644
--- a/disasm/disasm.cc
+++ b/disasm/disasm.cc
@@ -868,6 +868,12 @@ void disassembler_t::add_instructions(const isa_parser_t* isa)
DEFINE_XAMO(amocas_h)
}
+ if (isa->extension_enabled(EXT_ZICFILP)) {
+ // lpad encodes as `auipc x0, label`, so it needs to be added before auipc
+ // for higher disassembling priority
+ DISASM_INSN("lpad", lpad, 0, {&bigimm});
+ }
+
add_insn(new disasm_insn_t("j", match_jal, mask_jal | mask_rd, {&jump_target}));
add_insn(new disasm_insn_t("jal", match_jal | match_rd_ra, mask_jal | mask_rd, {&jump_target}));
add_insn(new disasm_insn_t("jal", match_jal, mask_jal, {&xrd, &jump_target}));