Browse Source

Fix check for fcvt (#897)

pull/898/head
Yueh-Ting (eop) Chen 4 years ago
committed by GitHub
parent
commit
cfcf083a8f
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 27
      riscv/decode.h

27
riscv/decode.h

@ -2371,9 +2371,6 @@ reg_t index[P.VU.vlmax]; \
#define VI_VFP_LOOP_SCALE_BASE \
require_fp; \
require_vector(true);\
require((P.VU.vsew == e8 && p->extension_enabled(EXT_ZFH)) || \
(P.VU.vsew == e16 && p->extension_enabled('F')) || \
(P.VU.vsew == e32 && p->extension_enabled('D'))); \
require(STATE.frm->read() < 0x5);\
reg_t vl = P.VU.vl->read(); \
reg_t rd_num = insn.rd(); \
@ -2395,13 +2392,19 @@ reg_t index[P.VU.vlmax]; \
VI_CHECK_SSS(false); \
switch(P.VU.vsew) { \
case e16: \
{ VI_VFP_CVT_LOOP(CVT_INT_TO_FP_PARAMS(16, 16, sign), {}, BODY16); } \
{ VI_VFP_CVT_LOOP(CVT_INT_TO_FP_PARAMS(16, 16, sign), \
{ p->extension_enabled(EXT_ZFH); }, \
BODY16); } \
break; \
case e32: \
{ VI_VFP_CVT_LOOP(CVT_INT_TO_FP_PARAMS(32, 32, sign), {}, BODY32); } \
{ VI_VFP_CVT_LOOP(CVT_INT_TO_FP_PARAMS(32, 32, sign), \
{ p->extension_enabled('F'); }, \
BODY32); } \
break; \
case e64: \
{ VI_VFP_CVT_LOOP(CVT_INT_TO_FP_PARAMS(64, 64, sign), {}, BODY64); } \
{ VI_VFP_CVT_LOOP(CVT_INT_TO_FP_PARAMS(64, 64, sign), \
{ p->extension_enabled('D'); }, \
BODY64); } \
break; \
default: \
require(0); \
@ -2412,13 +2415,19 @@ reg_t index[P.VU.vlmax]; \
VI_CHECK_SSS(false); \
switch(P.VU.vsew) { \
case e16: \
{ VI_VFP_CVT_LOOP(CVT_FP_TO_INT_PARAMS(16, 16, sign), {}, BODY16); } \
{ VI_VFP_CVT_LOOP(CVT_FP_TO_INT_PARAMS(16, 16, sign), \
{ p->extension_enabled(EXT_ZFH); }, \
BODY16); } \
break; \
case e32: \
{ VI_VFP_CVT_LOOP(CVT_FP_TO_INT_PARAMS(32, 32, sign), {}, BODY32); } \
{ VI_VFP_CVT_LOOP(CVT_FP_TO_INT_PARAMS(32, 32, sign), \
{ p->extension_enabled('F'); }, \
BODY32); } \
break; \
case e64: \
{ VI_VFP_CVT_LOOP(CVT_FP_TO_INT_PARAMS(64, 64, sign), {}, BODY64); } \
{ VI_VFP_CVT_LOOP(CVT_FP_TO_INT_PARAMS(64, 64, sign), \
{ p->extension_enabled('D'); }, \
BODY64); } \
break; \
default: \
require(0); \

Loading…
Cancel
Save