aboutsummaryrefslogtreecommitdiff
path: root/hwacha/insns/vsetcfg.h
diff options
context:
space:
mode:
Diffstat (limited to 'hwacha/insns/vsetcfg.h')
-rw-r--r--hwacha/insns/vsetcfg.h6
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;