That's a great question, but unfortunately, I don't have an answer for it now. Let me ask it on J WG meeting that would happen next Monday along with extension naming and CSR numbers(hopefuly).
Thanks! чт, 15 окт. 2020 г. в 20:00, Richard Henderson <richard.hender...@linaro.org >: > On 10/15/20 8:21 AM, Alexey Baturo wrote: > > Signed-off-by: Alexey Baturo <space.monkey.deliv...@gmail.com> > > --- > > target/riscv/insn_trans/trans_rva.c.inc | 3 +++ > > target/riscv/insn_trans/trans_rvd.c.inc | 2 ++ > > target/riscv/insn_trans/trans_rvf.c.inc | 2 ++ > > target/riscv/insn_trans/trans_rvi.c.inc | 2 ++ > > target/riscv/translate.c | 14 ++++++++++++++ > > 5 files changed, 23 insertions(+) > > Looks ok. > > It does occur to me to wonder how this is intended to work with unaligned > addresses, or large memory operations such as with RVV. > > Without changes in the generic tcg code, an unaligned memory op that > crosses > the mask will not wrap the second half. E.g. > > upmbase = 0 > upmmask = 0xffff > address = 0xfffe > size = 8 > > will read [0x10005 : 0xfffe] and not > [0x0005 : 0x0000] | [0xffff : 0xfffe] as a true wrapping would lead you do > believe. > > > r~ >