summaryrefslogtreecommitdiff
path: root/src/arch/isa_parser.py
diff options
context:
space:
mode:
authorAvishai Tvila <avishai.tvila@gmail.com>2019-04-04 13:20:24 -0700
committerAvishay Tvila <avishai.tvila@gmail.com>2019-05-03 12:53:53 +0000
commitb4b487e1ad4c3fa9b6295385a9d9899fb743c788 (patch)
treef8b683d893810b1011223800d9b73819a68c6ca8 /src/arch/isa_parser.py
parentb6d60e82ddfed6a67be4d334841b77d9e8813c0b (diff)
downloadgem5-b4b487e1ad4c3fa9b6295385a9d9899fb743c788.tar.xz
arch-riscv,isa: Fix for compressed jump (c_j) imm
c_j(al) has a special format, called CJ. The jump offset format is instbits[12:2] --> offset[11|4|9:8|10|6|7|3:1|5] Currently in decoder.isa, c_j format is JOp, the imm and branchTarget are incorrect In the execute section (decoder.isa:228), the imm fields is ignored and the offset is calculated correctlly. As a result, we get decoder flush for each c_j instance I've added CJOp format in compressed.isa, and use it in execute section. In addition, c_j is mappped to jal zero, cj_imm, and actually is neither indirect control nor a function call I fixed the flags accordently. I'll fix all IsRet, IsCall and IsIndirectControl flags for rest of (c_)jal(r) in my next commit. I ran coremark -O0 before my fix and I got 37.7% branch miss-rate, after the fix the branch miss-rate is <13% Change-Id: I608d5894a78a1ebefe36f21e21aaea68b42bccfc Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17808 Maintainer: Jason Lowe-Power <jason@lowepower.com> Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Alec Roelke <alec.roelke@gmail.com>
Diffstat (limited to 'src/arch/isa_parser.py')
0 files changed, 0 insertions, 0 deletions