aboutsummaryrefslogtreecommitdiff
path: root/riscv
AgeCommit message (Collapse)AuthorFilesLines
2024-06-28Fix insn interactive command (catch/print trap, use proper access func)abejgonzalez1-29/+30
2024-06-26Add insn cmds to interactive debug modeabejgonzalez2-19/+57
2024-06-21Vector-fp instructions depend on zve, not F/DJerry Zhao2-10/+12
2024-06-21Remove all --varch parsingJerry Zhao5-70/+0
2024-06-21Switch to Zvl/Zve parsing from isa_parser, instead of varchJerry Zhao1-1/+4
2024-06-21Disallow any vector, not just V, when no __int128 type is presentJerry Zhao1-1/+1
2024-06-21Relax require_vector check for misa.VJerry Zhao1-2/+0
2024-06-21Relax mstatus.vs dependency on full VJerry Zhao2-1/+5
2024-06-21Relax vector_csr dependency on 'V'Jerry Zhao1-4/+0
2024-06-21Relax has_fs dependency on misa.vJerry Zhao1-2/+1
isa_parser should already require any Zvef or Zved extensions imply F/D
2024-06-21Add accessors to isa_parser's VLEN/ELENJerry Zhao1-0/+3
2024-06-21Add isa_parser parsing for zvl/zveJerry Zhao1-0/+4
2024-06-20Merge pull request #1690 from riscv-software-src/fix-warningsJerry Zhao2-17/+17
Fix a few compile warnings
2024-06-13Adding Zilsd and Zcmlsd extensions (Load/store pair for RV32)Christian Herber8-16/+63
2024-06-12Fix a few compile warningsAndrew Waterman2-17/+17
2024-06-11Validate contents of overlap list in CIAndrew Waterman1-13/+32
2024-06-11Separate RV32 and RV64 C instructions into separate filesAndrew Waterman10-33/+31
2024-06-11Improve hit rate of opcode cache to compensate for not mutating insn listAndrew Waterman2-17/+58
2024-06-11Compensate for perf loss of not mutating insn list by presorting itAndrew Waterman1-7/+7
2024-06-11Keep potentially overlapping instructions in order at head of listAndrew Waterman1-20/+32
2024-06-11Preserve the ordering of the instruction listAndrew Waterman1-22/+2
2024-06-11Add comments to overlap listAndrew Waterman1-0/+9
2024-06-11Refine Zicfiss overlap listAndrew Waterman1-2/+5
We get better error checking if we list only the more specific instructions and omit the more general ones (mop.r.N/mop.rr.N).
2024-06-11Remove unnecessary instructions from overlap listAndrew Waterman1-11/+0
- c.fsdsp need not be listed since cm.push etc. are listed - mop.r.28/mop.rr.7 don't have corresponding files in riscv/insns/ - the rest are just erroneous
2024-06-11Add missing instructions to MakefileAndrew Waterman1-0/+4
2024-06-11triggers: implement tcontrolYenHaoChen5-1/+9
Implement Debug spec Section 5.7.6. Trigger Control (tcontrol). This commit lets tcontrol be read-only 0 if number of triggers is 0.
2024-05-31Avoid checking ELP before every instruction fetchAndrew Waterman6-13/+12
Serialize after setting ELP. That way, we can hoist the check outside of the main simulation loop.
2024-05-31No need to check if Zicfilp is enabled before checking ELPAndrew Waterman1-3/+1
ELP will be zero if Zicfilp is not enabled.
2024-05-27Merge pull request #1678 from rbuchner-aril/rbuchner/vxsat-writeAndrew Waterman1-0/+2
Require vector extension when attempting vxsat writes
2024-05-27Require vector extension when attempting vxsat writesrbuchner1-0/+2
Accidentally removed in c9468f6e02. See #1660.
2024-05-26Merge pull request #1677 from YenHaoChen/pr-vector-reductionAndrew Waterman1-4/+4
vector: Not logging write of reduction instructions when vl = 0
2024-05-24vector: Not logging write of reduction instructions when vl = 0YenHaoChen1-4/+4
The spec says: "If vl=0, no operation is performed and the destination register is not updated." in Section 14. Vector Reduction Operations. The commit proposes setting the variable is_write to false when vl = 0, which means not logging the write.
2024-05-23zicflip: fix [ms]ret behaviorChih-Min Chao2-2/+2
Based on Spec chapter 3.5 "An MRET or SRET instruction is used to return from a trap in M-mode or S-mode, respectively. When executing an xRET instruction, if xPP holds the value y, then ELP is set to the value of xPELP if yLPE is 1; otherwise, it is set to NO_LP_EXPECTED; xPELP is set to NO_LP_EXPECTED." The change follow the last statement after semicolon "xPELP is set to NO_LP_EXPECTED" Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
2024-05-22triggers: introduce tinfo.versionYenHaoChen1-1/+2
2024-05-22triggers: implement mcontrol6.hitYenHaoChen1-1/+1
2024-05-22triggers: refactor: add typedef enum { ... } hit_t for mcontrol6YenHaoChen2-7/+15
Avoid using private headers, e.g., debug_defines.h, in triggers.h
2024-05-22triggers: refactor: move mcontrol_common_t::hit to mcontrol_t::hit and ↵YenHaoChen2-2/+12
mcontrol6_t::hit Add mcontrol_common_t::set_hit()
2024-05-22triggers: refactor: update debug_defines.hYenHaoChen2-1218/+1340
Update CSR_MCONTROL6_HIT to CSR_MCONTROL6_HIT0 Include CSR_TINFO_VERSION* macros
2024-05-21triggers: remove mcontrol6.timing (implement suggested trigger timings)YenHaoChen1-2/+5
2024-05-06Add Zawrs extensionVed Shanbhogue4-0/+13
2024-05-03Zfa: fix: fmaxm.q requires Q instead of D extensionYenHaoChen1-1/+1
2024-05-01Update encoding.hAndrew Waterman1-1116/+37
2024-05-01Remove Zbpbo, Zpn, and Zpsfoperand implementationAndrew Waterman334-3013/+24
2024-04-30Support per-device arguments and device factory reuseLIU Yu6-26/+28
As proposed in #1652, we made the following changes to MMIO device (factory) plugin API, to mitigate current limitations and facilitate factory reuse. - removed `sargs` from `device_factory_t`, and introduced a new type alias `device_factory_sargs_t` to capture `<device_factory_t *, sargs>` pairs, this is used to instantiate sim_t instances; - changed the signature of `device_factory_t::generate_fdt` and `device_factory_t::parse_from_fdt` to take on an extra `sargs` argument, for instantiating devices with per-device arguments; - made `device_factory_t` const and potentially resuable across multiple `sim_t` instances.
2024-04-29Merge pull request #1648 from YenHaoChen/pr-hstateenAndrew Waterman2-6/+10
Smstateen: Ignore writes to read-only hstateen*[n] bits when mstateen*[n]=0
2024-04-29Merge pull request #1579 from tebartsch/plic-threshold-maskingAndrew Waterman1-0/+9
PLIC: Implement threshold masking
2024-04-29add hlvx pmp protect to fix issue 1557xinyuwang-sifive4-9/+9
2024-04-23Smstateen: Ignore writes to read-only hstateen*[n] bits when mstateen*[n]=0YenHaoChen2-6/+10
The specification states that writes to read-only bits in a RW CSR are ignored. The hstateen*[n] bits are read-only when mstateen*[n]=0. This PR proposes ignoring writes to read-only hstateen*[n] bits when mstateen*[n]=0 instead of writing the bits to 0.
2024-04-18Add Zicfiss extension from CFI extension, v0.4.0SuHsien Ho22-8/+194
1. Add EXT_ZICFISS for enable Zicfiss with zicfiss extension name. 2. Add new software exception with tval 3 for shadow stack. 3. Implement sspush_x1/sspush_x5/sspopchk_x1/sspopchk_x5/ssrdp/ssamoswap_w/ssamoswap_d. 4. Implement c_sspush_x1/c_sspopchk_x5 in c_lui.h which has same encoding. 5. Add new special access type ss_access in xlate_flags_t for checking special read/write permission in SS(Shadow Stack) page. 6. Add new ss_load/ss_store/ssamoswap to enable ss_access flag. 7. Check special pte(xwr=010) of SS page.
2024-04-17Merge pull request #1595 from Siudya/until-paddrAndrew Waterman1-2/+4
Interaction: Support until-mem operation on physical memory space