summaryrefslogtreecommitdiff
path: root/src/arch/riscv/isa/formats/standard.isa
diff options
context:
space:
mode:
authorIan Jiang <ianjiang.ict@gmail.com>2019-10-31 14:27:35 +0800
committerIan Jiang <ianjiang.ict@gmail.com>2019-11-25 01:26:08 +0000
commitbee784dee932f66cefc702971a01a35f3436e929 (patch)
treeb1026306f7e7d1201a04eadca7f2d58f3edf813c /src/arch/riscv/isa/formats/standard.isa
parent27b5e32e94cf79c065a49d184b5a0dcad83399c3 (diff)
downloadgem5-bee784dee932f66cefc702971a01a35f3436e929.tar.xz
arch-riscv: Fix disassembling of operand list for compressed instructions
In disassembling compressed instructions, the original Gem5 gives needless operands, such as register or immediate. This patch fixes the problem. - Existing formats fixed: CIOp, CJOp, CBOp and Jump. - New formats added: CIAddi4spnOp (for c.addi4spn only) and CompressedROp (with templates CBasicDeclare and CBasicExecute) Change-Id: Ic293836983256a59d3a7aca091c8184b410516a4 Signed-off-by: Ian Jiang <ianjiang.ict@gmail.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22566 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Alec Roelke <alec.roelke@gmail.com> Maintainer: Alec Roelke <alec.roelke@gmail.com>
Diffstat (limited to 'src/arch/riscv/isa/formats/standard.isa')
-rw-r--r--src/arch/riscv/isa/formats/standard.isa6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/arch/riscv/isa/formats/standard.isa b/src/arch/riscv/isa/formats/standard.isa
index 3c71fc8fb..e67fdfcbd 100644
--- a/src/arch/riscv/isa/formats/standard.isa
+++ b/src/arch/riscv/isa/formats/standard.isa
@@ -203,9 +203,7 @@ def template JumpExecute {{
std::vector<RegId> indices = {%(regs)s};
std::stringstream ss;
ss << mnemonic << ' ';
- for (const RegId& idx: indices)
- ss << registerName(idx) << ", ";
- ss << imm;
+ ss << registerName(indices[0]);
return ss.str();
}
}};
@@ -328,7 +326,7 @@ def format BOp(code, *opt_flags) {{
}};
def format Jump(code, *opt_flags) {{
- regs = ['_destRegIdx[0]', '_srcRegIdx[0]']
+ regs = ['_srcRegIdx[0]']
iop = InstObjParams(name, Name, 'ImmOp<int64_t>',
{'code': code, 'imm_code': 'imm = sext<12>(IMM12);',
'regs': ','.join(regs)}, opt_flags)