diff options
Diffstat (limited to 'hwacha/insns/vsetcfg.h')
-rw-r--r-- | hwacha/insns/vsetcfg.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/hwacha/insns/vsetcfg.h b/hwacha/insns/vsetcfg.h index a5fd959..c18812d 100644 --- a/hwacha/insns/vsetcfg.h +++ b/hwacha/insns/vsetcfg.h @@ -1,7 +1,9 @@ uint32_t nxpr = (XS1 & 0x3f) + (insn.i_imm() & 0x3f); uint32_t nfpr = ((XS1 >> 6) & 0x3f) + ((insn.i_imm() >> 6) & 0x3f); -// YUNSUP FIXME -// raise trap when nxpr/nfpr is larger than possible +if (nxpr > 32) + h->take_exception(HWACHA_CAUSE_ILLEGAL_CFG, 0); +if (nfpr > 32) + h->take_exception(HWACHA_CAUSE_ILLEGAL_CFG, 1); WRITE_NXPR(nxpr); WRITE_NFPR(nfpr); uint32_t maxvl; |