Age | Commit message (Collapse) | Author | Files | Lines |
|
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
'require_vector' should appear in front of each instruction and this trigger
illegal exception when V extension isn't supported.
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
remove unecessary checking
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
include
1. unit-stride
2. strided
3. indexed
4. fault-first
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
for most instruction which are in
single, single, single/scalar/immediate format
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
include:
1. integer comparison
2. float comparison
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
include
1. vredxxx
2. vwredxxx
since reduction keep the accumulation result in pipeline and write 1 widen
element back to dst register.
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
include
1. narrow shift
2. narrow clip
3. wide mac
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
1. fix the ELAN check for vill
2. handle 'rs1 = x0'
3. make logic more readable
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
use 128bit to store temporary result to handle shift = 63 case in rv64
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
1. The rounding increment should be derived from the shift amount, not SEW.
2. Use 128bit to store temporary result to handle shift = 63 case in rv64
Signed-off-by: Albert Ou <aou@eecs.berkeley.edu>
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
* round-to-nearest-even: In the case that result[gb] = 0, the result
should still be rounded up if result[gb-1] != 0 && result[gb-2:0] != 0
(the usual round-to-nearest behavior outside of the tiebreaker).
* round-down: Since all uses of INT_ROUNDING() are immediately followed
with a right shift by gb, clearing the lower bits is unnecessary.
* round-to-odd: The LSB should be OR'd only if result[gb-1:0] != 0.
Signed-off-by: Albert Ou <aou@eecs.berkeley.edu>
|
|
tail zero feature has been removed after v0.8-draft
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
don't use quiet api
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
has been removed in https://github.com/riscv/riscv-v-spec/pull/249
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
Implement support for big-endian hosts
|
|
|
|
|
|
Otherwise they are left uninitialized and causing bizarre
reproducibility problems in my application.
|
|
|
|
|
|
|
|
It's very difficult to encounter this (need to manually place a device or
memory at very high addresses), but it is technically a Spike bug.
|
|
|
|
|
|
Mask calculation was not in consistency with debug spec.
Watch debug spec. 5.2.7 match field overview and
debug spec. B.9 fourth example.
Mask should not cover LSB zero bit.
Also there is a way to make it simplier:
reg_t mask = ~(((~state.tdata2[i]) - 1) ^ ~state.tdata2[i]);
|
|
* Extends the commit log feature with memory writes.
This provides a little more information for debugging instruction
traces, allowing you to maintain the state of memory as the trace
is processed.
The following sample trace output illustrates the formatting of
the new memory writes. The first line is an instruction at
location 0x80000094, containing the bytes (0x80830313) and
commiting the value 0x80000898 to the register x6. The second
line is an instruction which neither commits a register nor
writes memory. The third line writes the value 0x0 to
0x80000890.
3 0x80000094 (0x80830313) x 6 0x80000898
3 0x80000098 (0x0062d663)
3 0x8000009c (0x00028023) mem 0x80000890 0x0
* Changes addressing feedback from review.
|
|
* Adds --log-commits commandline option.
Similar to histogram support, the commit logging feature must be
enabled with a configure option: --enable-commitlog. However, unlike
that feature, there was no way to turn off the logging with a
commandline option once the functionality was built in. This (git)
commit provides that abilty.
* Changes addressing review feedback.
|
|
Closes #328
|
|
Closes #326
|
|
Implement MMIO device plugins.
|
|
|
|
|
|
|
|
Resolves #313
|
|
|
|
|
|
|
|
|
|
|
|
|
|
https://github.com/riscv/riscv-v-spec/commit/83fc27897b7b1fbc68e2e9e94f2ee05766315bac
https://github.com/riscv/riscv-v-spec/commit/fb40ef10f068827f3f0a926a83dd38ebcd470085
|
|
* Don't corrupt s0 when abstract CSR write fails.
* Support abstract FPR access then mstatus.FS=0
Discussion on the spec list leans towards this being a requirement.
Certainly users want their debugger to be able to access all registers
regardless of target state.
|
|
Fix DRET in M-mode, and change how D-mode is represented
|
|
Resolves #308
|