From: Luke Kenneth Casson Leighton Date: Thu, 27 Jun 2019 12:52:30 +0000 (+0100) Subject: disable subvl-mult on predication remap X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=39d4448cf8c72b3e06f719a0ea92e48b5000e0dd;p=riscv-isa-sim.git disable subvl-mult on predication remap --- diff --git a/riscv/sv_insn_redirect.cc b/riscv/sv_insn_redirect.cc index 988cfca..3d6d2e9 100644 --- a/riscv/sv_insn_redirect.cc +++ b/riscv/sv_insn_redirect.cc @@ -136,7 +136,9 @@ unsigned int sv_proc_t::remap(reg_spec_t const& spec, bool pred) // register offset is computed. if subvl is active, it's a multiplier //fprintf(stderr, "remap %ld subvl %ld offs %ld subo %ld\n", // spec.reg, p->get_state()->sv().subvl, offs, subo); - offs = offs * p->get_state()->sv().subvl + subo; + if (!pred) { + offs = offs * p->get_state()->sv().subvl + subo; + } sv_shape_t *shape = p->get_state()->get_shape(spec.reg, pred); if (shape == NULL) { return offs;