You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On Dec 17, 2019, at 8:01 AM, Ralph Fulchiero ***@***.***> wrote:
It appears that the instruction encoding in the function header blocks in cache.c are incorrect. For instance:
* @brief CFlush.D.L1 instruction is a custom instruction implemented as a
* state machine in L1 Data Cache (D$) with funct3=0, (for core with data caches)
* It is an I type: .insn i opcode, func3, rd, rs1, simm12(signed immediate 12bs)
* 31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
* |--------|--------|--------|--------|--------|--------|--------|--------|
* +-------------+------------+----------+------+--------+-----------------+
* |sign immediate12b (simm12)| rs1 | func3| rd | opcode |
* |-1-1-1-1 -1-1-0-0 -0-0-0-0|-x-x-x-x-x|0-0-0-|-0-0-0-0|-0-1-1-1 -0-0-1-1|
* +--------------------------+----------+------+--------+-----------------+
* 31 -0x40 20 15 0 12 x0 7 0x73 0
Is not matching the RISC-V Spec which shows opcode as 7 bits and rd as 5 bits:
Oh you meant the comments header. Thanks will correct that.
It appears that the instruction encoding in the function header blocks in
cache.c
are incorrect. For instance:Is not matching the RISC-V Spec which shows
opcode
as 7 bits andrd
as 5 bits:This impacts
metal_dcache_l1_flush()
,metal_dcache_l1_discard()
andmetal_icache_l1_flush()
.The text was updated successfully, but these errors were encountered: