Browse Source

Merge pull request #403 from chihminchao/rvv-fix-2020-02-20

Rvv fix 2020 02 20
pull/405/head
Andrew Waterman 6 years ago
committed by GitHub
parent
commit
76e211d53e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      riscv/decode.h
  2. 2
      riscv/execute.cc
  3. 1
      riscv/insns/vfwredosum_vs.h
  4. 1
      riscv/insns/vfwredsum_vs.h
  5. 1
      riscv/insns/vmerge_vim.h
  6. 1
      riscv/insns/vmerge_vvm.h

7
riscv/decode.h

@ -419,13 +419,11 @@ static inline bool is_overlapped(const int astart, const int asize,
require_vector; \
require((insn.rd() & (P.VU.vlmul - 1)) == 0); \
require((insn.rs2() & (P.VU.vlmul - 1)) == 0); \
if (insn.v_nf() > 0) \
require(!is_overlapped(insn.rd(), P.VU.vlmul, insn.rs2(), P.VU.vlmul)); \
if (insn.v_vm() == 0 && (insn.v_nf() > 0 || P.VU.vlmul > 1)) \
require(insn.rd() != 0); \
#define VI_CHECK_LD_INDEX \
VI_CHECK_ST_INDEX; \
if (insn.v_nf() > 0) \
require(!is_overlapped(insn.rd(), P.VU.vlmul, insn.rs2(), P.VU.vlmul)); \
if (insn.v_vm() == 0 && (insn.v_nf() > 0 || P.VU.vlmul > 1)) \
require(insn.rd() != 0); \
@ -1569,7 +1567,6 @@ for (reg_t i = 0; i < vlmax; ++i) { \
bool early_stop = false; \
const reg_t vlmul = P.VU.vlmul; \
require(rd_num + nf * P.VU.vlmul <= NVPR); \
p->VU.vstart = 0; \
for (reg_t i = p->VU.vstart; i < vl; ++i) { \
VI_STRIP(i); \
VI_ELEMENT_SKIP(i); \

2
riscv/execute.cc

@ -92,7 +92,7 @@ static void commit_log_print_insn(processor_t* p, reg_t pc, insn_t insn)
}
if (is_vec)
fprintf(stderr, " e%ld m%ld", p->VU.vsew >> 3, p->VU.vlmul);
fprintf(stderr, " e%ld m%ld", p->VU.vsew, p->VU.vlmul);
fprintf(stderr, " %c%2d ", prefix, rd);
if (is_vec)

1
riscv/insns/vfwredosum_vs.h

@ -2,7 +2,6 @@
require_vector;
require(P.VU.vsew * 2 <= P.VU.ELEN);
require((insn.rs2() & (P.VU.vlmul - 1)) == 0);
require(P.VU.vlmul <= 4);
VI_VFP_VV_LOOP_WIDE_REDUCTION
({
vd_0 = f64_add(vd_0, vs2);

1
riscv/insns/vfwredsum_vs.h

@ -2,7 +2,6 @@
require_vector;
require(P.VU.vsew * 2 <= P.VU.ELEN);
require((insn.rs2() & (P.VU.vlmul - 1)) == 0);
require(P.VU.vlmul <= 4);
VI_VFP_VV_LOOP_WIDE_REDUCTION
({
vd_0 = f64_add(vd_0, vs2);

1
riscv/insns/vmerge_vim.h

@ -1,5 +1,4 @@
// vmerge.vim vd, vs2, simm5
require(insn.rd() != 0);
VI_CHECK_SSS(false);
VI_VVXI_MERGE_LOOP
({

1
riscv/insns/vmerge_vvm.h

@ -1,5 +1,4 @@
// vmerge.vvm vd, vs2, vs1
require(insn.rd() != 0);
VI_CHECK_SSS(true);
VI_VVXI_MERGE_LOOP
({

Loading…
Cancel
Save