Age | Commit message (Collapse) | Author | Files | Lines |
|
For DRY purposes, processor_t::set_extension_enable checks
isa_t::extension_enabled, rather than relying on the caller to do so.
|
|
not supported
Restore misa.C writable and disable/enable Zca(if changeable) when clear/set misa.C
Increase IALIGN only when misa.C is cleared and Zca is changeable (Zca will be disabled)
|
|
function (Only the extensions supported in isa string can be truly changeable)
Add Zcf/Zcd to the changeable list: disable them when misa.F/D is cleared or
Zca is disabled, enable them when misa.F/D is set and Zca is enabled
|
|
|
|
Make htif->get_to/fromhost_addr methods public
|
|
|
|
Implement Zicond (conditional integer operations)
|
|
This implements the Zicond (conditional integer operations) extension,
as of version 1.0-draft-20230120.
The Zicond extension acts as a building block for branchless sequences
including conditional-arithmetic, conditional-logic and
conditional-select/move.
The following instructions constitute Zicond:
- czero.eqz rd, rs1, rs2 => rd = (rs2 == 0) ? 0 : rs1
- czero.nez rd, rs1, rs2 => rd = (rs2 != 0) ? 0 : rs1
See
https://github.com/riscv/riscv-zicond/releases/download/v1.0-draft-20230120/riscv-zicond_1.0-draft-20230120.pdf
for the proposed specification and usage details.
|
|
Note this encoding.h's history is unusual because riscv-opcodes master
is currently incompatible with Spike. See the PR that contains its
commit hash (https://github.com/riscv/riscv-opcodes/pull/157) and
discussion at https://github.com/riscv-software-src/riscv-isa-sim/pull/1234#discussion_r1092243338
|
|
Add icount trigger
|
|
|
|
|
|
|
|
|
|
|
|
D-mode, then enter D-mode and ignore breakpoint exception
|
|
|
|
Add support for Svadu Extension
|
|
The addition of Svadu support and removal of --mmu-dirty
command line flag results in the dirty_enabled configuration state
no longer being used. Remove the remnants of this state.
|
|
With the addition of Svadu support, the --mmu-dirty flag
no longer controls behavior of A/D updates to PTEs. Remove
the flag.
|
|
The Svadu (https://github.com/riscv/riscv-svadu) extension updates
the A/D bits of PTEs:
1. In S/HS mode when menvcfg.hade=1
2. In G-stage page tables when menvcfg.hade=1
3. In VS mode when henvcfg.hade=1
To enable this behavior the 'svadu' ISA string is needed.
This newly added behavior supplants the --mmu-dirty flag. However,
that flag is not yet removed.
|
|
Add in the support for the HADE fields in menvcfg and henvcfg
based off of the svadu ISA string. This only allows for the writable
HADE bits being exposed when the svadu ISA string is employed. No
other behavior is implemented.
|
|
The Svadu extension adds a HADE field (bit 61) to both
menvcfg and henvcfg. Add the definitions so they can be utilized.
|
|
Make the ISA parser understand the Svadu extension.
|
|
Support all 64 PMP regions
|
|
|
|
No reason to check it both in sim_t::sim_t and in processor_t::set_pmp_num.
|
|
|
|
Add --triggers=n to control the number of supported triggers
|
|
|
|
|
|
|
|
Add htif_t tohost/fromhost accessors
|
|
Signed-off-by: Jerry Zhao <jerryz123@berkeley.edu>
|
|
Add more hint when searched path is wrong
|
|
Delete the old branch and pull a new one, because of a wrong force push. Git is not as easy as I think.
Signed-off-by: gr816ox <50945677+gr816ox@users.noreply.github.com>
|
|
Lift artificial limit of 191 extensions; simplify isa_parser_t::extension_enabled
|
|
Now that we guarantee that max_isa and extension_table are synchronized,
we only need to check the latter.
|
|
This fixes a bug where --isa=rv64imafdc would fail to set
extension_table['F'] because of the ad hoc manner in which we were
synchronizing max_isa and extension_table.
|
|
We know its size at compile time.
|
|
Add new accessors that accept the isa_extension_t enum.
Retain the original ones that accept unsigned char to avoid churn.
|
|
Add legalize_timing() for tdata1.timing
|
|
Since this method does not use 'this', we turn this method into static.
|
|
Since this method no longer use 'this', we turn this method into static.
|
|
avoid breaking functionality by reordering statements in tdata1.write()
|
|
As recommended in the debug spec table "Suggested Trigger Timings", to
avoid the footgun of replaying a load (which may have side effects) when
the breakpoint trap handler returns.
reference: https://github.com/riscv-software-src/riscv-isa-sim/pull/1208#issuecomment-1373035906
-----------------------------------------------------------------------
The legalize_timing() depends on select, execution, load, and store,
which are updated in the same function tdata1_write(). As a result,
reordering statements in the tdata1_write() may break the functionality.
Passing those variables as parameters to legalize_timing() does not
solve the problem. Thus, we give the original write value and the masks
of the variables to the legalize_timing(). This makes the legalization
function independent of the updating variables and resolves the issue.
reference: https://github.com/riscv-software-src/riscv-isa-sim/pull/1214
|
|
Run Spike and HTIF in a single thread, rather than two
|
|
For NS16550 UART, poll stdin less often
|
|
|
|
|