a5fd9594dea82c96499efc4c71b6bd1ceefd08f5
[riscv-isa-sim.git] / hwacha / insns / vsetcfg.h
1 uint32_t nxpr = (XS1 & 0x3f) + (insn.i_imm() & 0x3f);
2 uint32_t nfpr = ((XS1 >> 6) & 0x3f) + ((insn.i_imm() >> 6) & 0x3f);
3 // YUNSUP FIXME
4 // raise trap when nxpr/nfpr is larger than possible
5 WRITE_NXPR(nxpr);
6 WRITE_NFPR(nfpr);
7 uint32_t maxvl;
8 if (nxpr + nfpr < 2)
9 maxvl = 8 * 256;
10 else
11 maxvl = 8 * (256 / (nxpr-1 + nfpr));
12 WRITE_MAXVL(maxvl);
13 WRITE_VL(0);