Skip to content

Commit f4ce8f9

Browse files
authored
fix(vector): remove more incorrect decodes for some insts (#960)
In #958, some incorrect decodes for vector instructions were removed. This patch removes more such decodes. This patch removes some decodes for RVV 0.3 instructions.
1 parent 2b56fbf commit f4ce8f9

File tree

3 files changed

+24
-122
lines changed

3 files changed

+24
-122
lines changed

src/isa/riscv64/include/isa-all-instr.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,7 @@
131131
f(vasubu) f(vsmul) f(vsrl) f(vsra) \
132132
f(vssra) f(vnsrl) f(vnsra) f(vnclipu) \
133133
f(vnclip) f(vssrl) f(vwredsumu) f(vwredsum) \
134-
f(vdotu) f(vdot) f(vwsmaccu) f(vwsmacc) \
135-
f(vwsmaccsu) f(vwsmaccus) f(vredsum) \
134+
f(vredsum) \
136135
f(vredand) f(vredor) f(vredxor) f(vredminu) \
137136
f(vredmin) f(vredmaxu) f(vredmax) f(vmvsx) \
138137
f(vmvxs) f(vpopc) f(vfirst) f(vmsbf) f(vmsof) \

src/isa/riscv64/instr/rvv/decode.h

Lines changed: 23 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,6 @@ def_THelper(vopivv) {
154154
}
155155
def_INSTR_TAB("000000 ? ????? ????? ??? ????? ????? ??", vadd);
156156
def_INSTR_TAB("000010 ? ????? ????? ??? ????? ????? ??", vsub);
157-
def_INSTR_TAB("000011 ? ????? ????? ??? ????? ????? ??", vrsub);
158157
def_INSTR_TAB("000100 ? ????? ????? ??? ????? ????? ??", vminu);
159158
def_INSTR_TAB("000101 ? ????? ????? ??? ????? ????? ??", vmin);
160159
def_INSTR_TAB("000110 ? ????? ????? ??? ????? ????? ??", vmaxu);
@@ -164,9 +163,10 @@ def_THelper(vopivv) {
164163
def_INSTR_TAB("001011 ? ????? ????? ??? ????? ????? ??", vxor);
165164
def_INSTR_TAB("001100 ? ????? ????? ??? ????? ????? ??", vrgather);
166165
def_INSTR_TAB("001110 ? ????? ????? ??? ????? ????? ??", vrgatherei16);
167-
def_INSTR_TAB("010000 ? ????? ????? ??? ????? ????? ??", vadc);
166+
167+
def_INSTR_TAB("010000 0 ????? ????? ??? ????? ????? ??", vadc); // always vm=0
168168
def_INSTR_TAB("010001 ? ????? ????? ??? ????? ????? ??", vmadc);
169-
def_INSTR_TAB("010010 ? ????? ????? ??? ????? ????? ??", vsbc);
169+
def_INSTR_TAB("010010 0 ????? ????? ??? ????? ????? ??", vsbc); // always vm=0
170170
def_INSTR_TAB("010011 ? ????? ????? ??? ????? ????? ??", vmsbc);
171171
def_INSTR_TAB("010111 ? ????? ????? ??? ????? ????? ??", vmerge);
172172
def_INSTR_TAB("011000 ? ????? ????? ??? ????? ????? ??", vmseq);
@@ -175,8 +175,7 @@ def_THelper(vopivv) {
175175
def_INSTR_TAB("011011 ? ????? ????? ??? ????? ????? ??", vmslt);
176176
def_INSTR_TAB("011100 ? ????? ????? ??? ????? ????? ??", vmsleu);
177177
def_INSTR_TAB("011101 ? ????? ????? ??? ????? ????? ??", vmsle);
178-
def_INSTR_TAB("011110 ? ????? ????? ??? ????? ????? ??", vmsgtu);
179-
def_INSTR_TAB("011111 ? ????? ????? ??? ????? ????? ??", vmsgt);
178+
180179
def_INSTR_TAB("100000 ? ????? ????? ??? ????? ????? ??", vsaddu);
181180
def_INSTR_TAB("100001 ? ????? ????? ??? ????? ????? ??", vsadd);
182181
def_INSTR_TAB("100010 ? ????? ????? ??? ????? ????? ??", vssubu);
@@ -185,20 +184,15 @@ def_THelper(vopivv) {
185184
def_INSTR_TAB("100111 ? ????? ????? ??? ????? ????? ??", vsmul);
186185
def_INSTR_TAB("101000 ? ????? ????? ??? ????? ????? ??", vsrl);
187186
def_INSTR_TAB("101001 ? ????? ????? ??? ????? ????? ??", vsra);
187+
def_INSTR_TAB("101010 ? ????? ????? ??? ????? ????? ??", vssrl);
188188
def_INSTR_TAB("101011 ? ????? ????? ??? ????? ????? ??", vssra);
189189
def_INSTR_TAB("101100 ? ????? ????? ??? ????? ????? ??", vnsrl);
190190
def_INSTR_TAB("101101 ? ????? ????? ??? ????? ????? ??", vnsra);
191191
def_INSTR_TAB("101110 ? ????? ????? ??? ????? ????? ??", vnclipu);
192192
def_INSTR_TAB("101111 ? ????? ????? ??? ????? ????? ??", vnclip);
193-
def_INSTR_TAB("101010 ? ????? ????? ??? ????? ????? ??", vssrl);
193+
194194
def_INSTR_TAB("110000 ? ????? ????? ??? ????? ????? ??", vwredsumu);
195195
def_INSTR_TAB("110001 ? ????? ????? ??? ????? ????? ??", vwredsum);
196-
def_INSTR_TAB("111000 ? ????? ????? ??? ????? ????? ??", vdotu);
197-
def_INSTR_TAB("111001 ? ????? ????? ??? ????? ????? ??", vdot);
198-
def_INSTR_TAB("111100 ? ????? ????? ??? ????? ????? ??", vwsmaccu);
199-
def_INSTR_TAB("111101 ? ????? ????? ??? ????? ????? ??", vwsmacc);
200-
def_INSTR_TAB("111110 ? ????? ????? ??? ????? ????? ??", vwsmaccsu);
201-
def_INSTR_TAB("111111 ? ????? ????? ??? ????? ????? ??", vwsmaccus);
202196

203197
def_INSTR_TAB("000001 ? ????? ????? ??? ????? ????? ??", vandn);
204198
def_INSTR_TAB("010101 ? ????? ????? ??? ????? ????? ??", vrol);
@@ -225,9 +219,10 @@ def_THelper(vopivx) {
225219
def_INSTR_TAB("001100 ? ????? ????? ??? ????? ????? ??", vrgather);
226220
def_INSTR_TAB("001110 ? ????? ????? ??? ????? ????? ??", vslideup);
227221
def_INSTR_TAB("001111 ? ????? ????? ??? ????? ????? ??", vslidedown);
228-
def_INSTR_TAB("010000 ? ????? ????? ??? ????? ????? ??", vadc);
222+
223+
def_INSTR_TAB("010000 0 ????? ????? ??? ????? ????? ??", vadc); // always vm=0
229224
def_INSTR_TAB("010001 ? ????? ????? ??? ????? ????? ??", vmadc);
230-
def_INSTR_TAB("010010 ? ????? ????? ??? ????? ????? ??", vsbc);
225+
def_INSTR_TAB("010010 0 ????? ????? ??? ????? ????? ??", vsbc); // always vm=0
231226
def_INSTR_TAB("010011 ? ????? ????? ??? ????? ????? ??", vmsbc);
232227
def_INSTR_TAB("010111 ? ????? ????? ??? ????? ????? ??", vmerge);
233228
def_INSTR_TAB("011000 ? ????? ????? ??? ????? ????? ??", vmseq);
@@ -238,6 +233,7 @@ def_THelper(vopivx) {
238233
def_INSTR_TAB("011101 ? ????? ????? ??? ????? ????? ??", vmsle);
239234
def_INSTR_TAB("011110 ? ????? ????? ??? ????? ????? ??", vmsgtu);
240235
def_INSTR_TAB("011111 ? ????? ????? ??? ????? ????? ??", vmsgt);
236+
241237
def_INSTR_TAB("100000 ? ????? ????? ??? ????? ????? ??", vsaddu);
242238
def_INSTR_TAB("100001 ? ????? ????? ??? ????? ????? ??", vsadd);
243239
def_INSTR_TAB("100010 ? ????? ????? ??? ????? ????? ??", vssubu);
@@ -246,20 +242,12 @@ def_THelper(vopivx) {
246242
def_INSTR_TAB("100111 ? ????? ????? ??? ????? ????? ??", vsmul);
247243
def_INSTR_TAB("101000 ? ????? ????? ??? ????? ????? ??", vsrl);
248244
def_INSTR_TAB("101001 ? ????? ????? ??? ????? ????? ??", vsra);
245+
def_INSTR_TAB("101010 ? ????? ????? ??? ????? ????? ??", vssrl);
249246
def_INSTR_TAB("101011 ? ????? ????? ??? ????? ????? ??", vssra);
250247
def_INSTR_TAB("101100 ? ????? ????? ??? ????? ????? ??", vnsrl);
251248
def_INSTR_TAB("101101 ? ????? ????? ??? ????? ????? ??", vnsra);
252249
def_INSTR_TAB("101110 ? ????? ????? ??? ????? ????? ??", vnclipu);
253250
def_INSTR_TAB("101111 ? ????? ????? ??? ????? ????? ??", vnclip);
254-
def_INSTR_TAB("101010 ? ????? ????? ??? ????? ????? ??", vssrl);
255-
def_INSTR_TAB("110000 ? ????? ????? ??? ????? ????? ??", vwredsumu);
256-
def_INSTR_TAB("110001 ? ????? ????? ??? ????? ????? ??", vwredsum);
257-
def_INSTR_TAB("111000 ? ????? ????? ??? ????? ????? ??", vdotu);
258-
def_INSTR_TAB("111001 ? ????? ????? ??? ????? ????? ??", vdot);
259-
def_INSTR_TAB("111100 ? ????? ????? ??? ????? ????? ??", vwsmaccu);
260-
def_INSTR_TAB("111101 ? ????? ????? ??? ????? ????? ??", vwsmacc);
261-
def_INSTR_TAB("111110 ? ????? ????? ??? ????? ????? ??", vwsmaccsu);
262-
def_INSTR_TAB("111111 ? ????? ????? ??? ????? ????? ??", vwsmaccus);
263251

264252
def_INSTR_TAB("000001 ? ????? ????? ??? ????? ????? ??", vandn);
265253
def_INSTR_TAB("010101 ? ????? ????? ??? ????? ????? ??", vrol);
@@ -274,55 +262,38 @@ def_THelper(vopivi) {
274262
return EXEC_ID_inv;
275263
}
276264
def_INSTR_TAB("000000 ? ????? ????? ??? ????? ????? ??", vadd);
277-
def_INSTR_TAB("000010 ? ????? ????? ??? ????? ????? ??", vsub);
278265
def_INSTR_TAB("000011 ? ????? ????? ??? ????? ????? ??", vrsub);
279-
def_INSTR_TAB("000100 ? ????? ????? ??? ????? ????? ??", vminu);
280-
def_INSTR_TAB("000101 ? ????? ????? ??? ????? ????? ??", vmin);
281-
def_INSTR_TAB("000110 ? ????? ????? ??? ????? ????? ??", vmaxu);
282-
def_INSTR_TAB("000111 ? ????? ????? ??? ????? ????? ??", vmax);
283266
def_INSTR_TAB("001001 ? ????? ????? ??? ????? ????? ??", vand);
284267
def_INSTR_TAB("001010 ? ????? ????? ??? ????? ????? ??", vor);
285268
def_INSTR_TAB("001011 ? ????? ????? ??? ????? ????? ??", vxor);
286269
def_INSTR_TAB("001100 ? ????? ????? ??? ????? ????? ??", vrgather);
287270
def_INSTR_TAB("001110 ? ????? ????? ??? ????? ????? ??", vslideup);
288271
def_INSTR_TAB("001111 ? ????? ????? ??? ????? ????? ??", vslidedown);
289-
def_INSTR_TAB("010000 ? ????? ????? ??? ????? ????? ??", vadc);
272+
273+
def_INSTR_TAB("010000 0 ????? ????? ??? ????? ????? ??", vadc); // always vm=0
290274
def_INSTR_TAB("010001 ? ????? ????? ??? ????? ????? ??", vmadc);
291-
def_INSTR_TAB("010010 ? ????? ????? ??? ????? ????? ??", vsbc);
292-
def_INSTR_TAB("010011 ? ????? ????? ??? ????? ????? ??", vmsbc);
293275
def_INSTR_TAB("010111 ? ????? ????? ??? ????? ????? ??", vmerge);
294276
def_INSTR_TAB("011000 ? ????? ????? ??? ????? ????? ??", vmseq);
295277
def_INSTR_TAB("011001 ? ????? ????? ??? ????? ????? ??", vmsne);
296-
def_INSTR_TAB("011010 ? ????? ????? ??? ????? ????? ??", vmsltu);
297-
def_INSTR_TAB("011011 ? ????? ????? ??? ????? ????? ??", vmslt);
298278
def_INSTR_TAB("011100 ? ????? ????? ??? ????? ????? ??", vmsleu);
299279
def_INSTR_TAB("011101 ? ????? ????? ??? ????? ????? ??", vmsle);
300280
def_INSTR_TAB("011110 ? ????? ????? ??? ????? ????? ??", vmsgtu);
301281
def_INSTR_TAB("011111 ? ????? ????? ??? ????? ????? ??", vmsgt);
282+
302283
def_INSTR_TAB("100000 ? ????? ????? ??? ????? ????? ??", vsaddu);
303284
def_INSTR_TAB("100001 ? ????? ????? ??? ????? ????? ??", vsadd);
304-
def_INSTR_TAB("100010 ? ????? ????? ??? ????? ????? ??", vssubu);
305-
def_INSTR_TAB("100011 ? ????? ????? ??? ????? ????? ??", vssub);
306285
def_INSTR_TAB("100101 ? ????? ????? ??? ????? ????? ??", vsll);
307286
def_INSTR_TAB("100111 ? ????? ????? ??? ????? ????? ??", vmvnr);
308287
def_INSTR_TAB("101000 ? ????? ????? ??? ????? ????? ??", vsrl);
309288
def_INSTR_TAB("101001 ? ????? ????? ??? ????? ????? ??", vsra);
289+
def_INSTR_TAB("101010 ? ????? ????? ??? ????? ????? ??", vssrl);
310290
def_INSTR_TAB("101011 ? ????? ????? ??? ????? ????? ??", vssra);
311291
def_INSTR_TAB("101100 ? ????? ????? ??? ????? ????? ??", vnsrl);
312292
def_INSTR_TAB("101101 ? ????? ????? ??? ????? ????? ??", vnsra);
313293
def_INSTR_TAB("101110 ? ????? ????? ??? ????? ????? ??", vnclipu);
314294
def_INSTR_TAB("101111 ? ????? ????? ??? ????? ????? ??", vnclip);
315-
def_INSTR_TAB("101010 ? ????? ????? ??? ????? ????? ??", vssrl);
316-
def_INSTR_TAB("110000 ? ????? ????? ??? ????? ????? ??", vwredsumu);
317-
def_INSTR_TAB("110001 ? ????? ????? ??? ????? ????? ??", vwredsum);
318-
def_INSTR_TAB("111000 ? ????? ????? ??? ????? ????? ??", vdotu);
319-
def_INSTR_TAB("111001 ? ????? ????? ??? ????? ????? ??", vdot);
320-
def_INSTR_TAB("111100 ? ????? ????? ??? ????? ????? ??", vwsmaccu);
321-
def_INSTR_TAB("111101 ? ????? ????? ??? ????? ????? ??", vwsmacc);
322-
def_INSTR_TAB("111110 ? ????? ????? ??? ????? ????? ??", vwsmaccsu);
323-
def_INSTR_TAB("111111 ? ????? ????? ??? ????? ????? ??", vwsmaccus);
324-
325-
def_INSTR_TAB("01010 ? ? ????? ????? ??? ????? ????? ??", vror);
295+
296+
def_INSTR_TAB("01010? ? ????? ????? ??? ????? ????? ??", vror);
326297
def_INSTR_TAB("110101 ? ????? ????? ??? ????? ????? ??", vwsll);
327298

328299
return EXEC_ID_inv;
@@ -449,13 +420,15 @@ def_THelper(vopfvv) {
449420
def_INSTR_TAB("001000 ? ????? ????? ??? ????? ????? ??", vfsgnj);
450421
def_INSTR_TAB("001001 ? ????? ????? ??? ????? ????? ??", vfsgnjn);
451422
def_INSTR_TAB("001010 ? ????? ????? ??? ????? ????? ??", vfsgnjx);
423+
452424
def_INSTR_TAB("010000 ? ????? ????? ??? ????? ????? ??", vwfunary0_dispatch);
453425
def_INSTR_IDTAB("010010 ? ????? ????? ??? ????? ????? ??", vfunary0_dispatch, vfunary0_dispatch);
454426
def_INSTR_IDTAB("010011 ? ????? ????? ??? ????? ????? ??", vfunary1_dispatch, vfunary1_dispatch);
455427
def_INSTR_TAB("011000 ? ????? ????? ??? ????? ????? ??", vmfeq);
456428
def_INSTR_TAB("011001 ? ????? ????? ??? ????? ????? ??", vmfle);
457429
def_INSTR_TAB("011011 ? ????? ????? ??? ????? ????? ??", vmflt);
458430
def_INSTR_TAB("011100 ? ????? ????? ??? ????? ????? ??", vmfne);
431+
459432
def_INSTR_TAB("100000 ? ????? ????? ??? ????? ????? ??", vfdiv);
460433
def_INSTR_TAB("100100 ? ????? ????? ??? ????? ????? ??", vfmul);
461434
def_INSTR_TAB("101000 ? ????? ????? ??? ????? ????? ??", vfmadd);
@@ -466,6 +439,7 @@ def_THelper(vopfvv) {
466439
def_INSTR_TAB("101101 ? ????? ????? ??? ????? ????? ??", vfnmacc);
467440
def_INSTR_TAB("101110 ? ????? ????? ??? ????? ????? ??", vfmsac);
468441
def_INSTR_TAB("101111 ? ????? ????? ??? ????? ????? ??", vfnmsac);
442+
469443
def_INSTR_TAB("110000 ? ????? ????? ??? ????? ????? ??", vfwadd);
470444
def_INSTR_TAB("110001 ? ????? ????? ??? ????? ????? ??", vfwredusum);
471445
def_INSTR_TAB("110010 ? ????? ????? ??? ????? ????? ??", vfwsub);
@@ -494,6 +468,7 @@ def_THelper(vopfvf) {
494468
def_INSTR_TAB("001010 ? ????? ????? ??? ????? ????? ??", vfsgnjx);
495469
def_INSTR_TAB("001110 ? ????? ????? ??? ????? ????? ??", vfslide1up);
496470
def_INSTR_TAB("001111 ? ????? ????? ??? ????? ????? ??", vfslide1down);
471+
497472
def_INSTR_TAB("010000 ? ????? ????? ??? ????? ????? ??", vrfunary0_dispatch);
498473
def_INSTR_TAB("010111 ? ????? ????? ??? ????? ????? ??", vfmerge);
499474
def_INSTR_TAB("011000 ? ????? ????? ??? ????? ????? ??", vmfeq);
@@ -502,6 +477,7 @@ def_THelper(vopfvf) {
502477
def_INSTR_TAB("011100 ? ????? ????? ??? ????? ????? ??", vmfne);
503478
def_INSTR_TAB("011101 ? ????? ????? ??? ????? ????? ??", vmfgt);
504479
def_INSTR_TAB("011111 ? ????? ????? ??? ????? ????? ??", vmfge);
480+
505481
def_INSTR_TAB("100000 ? ????? ????? ??? ????? ????? ??", vfdiv);
506482
def_INSTR_TAB("100001 ? ????? ????? ??? ????? ????? ??", vfrdiv);
507483
def_INSTR_TAB("100100 ? ????? ????? ??? ????? ????? ??", vfmul);
@@ -514,6 +490,7 @@ def_THelper(vopfvf) {
514490
def_INSTR_TAB("101101 ? ????? ????? ??? ????? ????? ??", vfnmacc);
515491
def_INSTR_TAB("101110 ? ????? ????? ??? ????? ????? ??", vfmsac);
516492
def_INSTR_TAB("101111 ? ????? ????? ??? ????? ????? ??", vfnmsac);
493+
517494
def_INSTR_TAB("110000 ? ????? ????? ??? ????? ????? ??", vfwadd);
518495
def_INSTR_TAB("110010 ? ????? ????? ??? ????? ????? ??", vfwsub);
519496
def_INSTR_TAB("110100 ? ????? ????? ??? ????? ????? ??", vfwadd_w);

src/isa/riscv64/instr/rvv/vcompute.h

Lines changed: 0 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,10 @@ def_EHelper(vadd) {
2424
}
2525

2626
def_EHelper(vsub) {
27-
if (s->src_vmode == SRC_VI) {
28-
longjmp_exception(EX_II);
29-
}
3027
ARITH(SUB, SIGNED)
3128
}
3229

3330
def_EHelper(vrsub) {
34-
if (s->src_vmode == SRC_VV) {
35-
longjmp_exception(EX_II);
36-
}
3731
ARITH(RSUB, SIGNED)
3832
}
3933

@@ -123,10 +117,6 @@ def_EHelper(vslide1down) {
123117
}
124118

125119
def_EHelper(vadc) {
126-
if (s->vm == 1) {
127-
// vm bit always set to 0 for vadc
128-
longjmp_exception(EX_II);
129-
}
130120
ARITH(ADC, SIGNED)
131121
}
132122

@@ -135,10 +125,6 @@ def_EHelper(vmadc) {
135125
}
136126

137127
def_EHelper(vsbc) {
138-
if (s->vm == 1) {
139-
// vm bit always set to 0 for vsbc
140-
longjmp_exception(EX_II);
141-
}
142128
ARITH(SBC, SIGNED)
143129
}
144130

@@ -166,16 +152,10 @@ def_EHelper(vmsne) {
166152
}
167153

168154
def_EHelper(vmsltu) {
169-
if (s->src_vmode == SRC_VI) {
170-
longjmp_exception(EX_II);
171-
}
172155
ARITH_MASK(MSLTU, UNSIGNED)
173156
}
174157

175158
def_EHelper(vmslt) {
176-
if (s->src_vmode == SRC_VI) {
177-
longjmp_exception(EX_II);
178-
}
179159
ARITH_MASK(MSLT, SIGNED)
180160
}
181161

@@ -188,16 +168,10 @@ def_EHelper(vmsle) {
188168
}
189169

190170
def_EHelper(vmsgtu) {
191-
if (s->src_vmode == SRC_VV) {
192-
longjmp_exception(EX_II);
193-
}
194171
ARITH_MASK(MSGTU, UNSIGNED)
195172
}
196173

197174
def_EHelper(vmsgt) {
198-
if (s->src_vmode == SRC_VV) {
199-
longjmp_exception(EX_II);
200-
}
201175
ARITH_MASK(MSGT, SIGNED)
202176
}
203177

@@ -281,30 +255,6 @@ def_EHelper(vwredsum) {
281255
WREDUCTION(REDSUM, SIGNED);
282256
}
283257

284-
def_EHelper(vdotu) {
285-
longjmp_exception(EX_II);
286-
}
287-
288-
def_EHelper(vdot) {
289-
longjmp_exception(EX_II);
290-
}
291-
292-
def_EHelper(vwsmaccu) {
293-
longjmp_exception(EX_II);
294-
}
295-
296-
def_EHelper(vwsmacc) {
297-
longjmp_exception(EX_II);
298-
}
299-
300-
def_EHelper(vwsmaccsu) {
301-
longjmp_exception(EX_II);
302-
}
303-
304-
def_EHelper(vwsmaccus) {
305-
longjmp_exception(EX_II);
306-
}
307-
308258

309259
//op-m
310260
def_EHelper(vredsum) {
@@ -871,58 +821,34 @@ def_EHelper(vmxnor) {
871821
}
872822

873823
def_EHelper(vdivu) {
874-
if (s->src_vmode == SRC_VI) {
875-
longjmp_exception(EX_II);
876-
}
877824
ARITH(DIVU, UNSIGNED)
878825
}
879826

880827
def_EHelper(vdiv) {
881-
if (s->src_vmode == SRC_VI) {
882-
longjmp_exception(EX_II);
883-
}
884828
ARITH(DIV, SIGNED)
885829
}
886830

887831
def_EHelper(vremu) {
888-
if (s->src_vmode == SRC_VI) {
889-
longjmp_exception(EX_II);
890-
}
891832
ARITH(REMU, UNSIGNED)
892833
}
893834

894835
def_EHelper(vrem) {
895-
if (s->src_vmode == SRC_VI) {
896-
longjmp_exception(EX_II);
897-
}
898836
ARITH(REM, SIGNED)
899837
}
900838

901839
def_EHelper(vmulhu) {
902-
if (s->src_vmode == SRC_VI) {
903-
longjmp_exception(EX_II);
904-
}
905840
ARITH(MULHU, UNSIGNED)
906841
}
907842

908843
def_EHelper(vmul) {
909-
if (s->src_vmode == SRC_VI) {
910-
longjmp_exception(EX_II);
911-
}
912844
ARITH(MUL, SIGNED)
913845
}
914846

915847
def_EHelper(vmulhsu) {
916-
if (s->src_vmode == SRC_VI) {
917-
longjmp_exception(EX_II);
918-
}
919848
ARITH(MULHSU, UNSIGNED)
920849
}
921850

922851
def_EHelper(vmulh) {
923-
if (s->src_vmode == SRC_VI) {
924-
longjmp_exception(EX_II);
925-
}
926852
ARITH(MULH, SIGNED)
927853
}
928854

0 commit comments

Comments
 (0)