@@ -222,7 +222,7 @@ static inline void xor_round_key(AESState *round_state, AESState *round_key)
222
222
uint32_t total_elems = vext_get_total_elems(env, desc, 4); \
223
223
uint32_t vta = vext_vta(desc); \
224
224
\
225
- VSTART_CHECK_EARLY_EXIT(env); \
225
+ VSTART_CHECK_EARLY_EXIT(env, vl); \
226
226
\
227
227
for (uint32_t i = env->vstart / 4; i < env->vl / 4; i++) { \
228
228
AESState round_key; \
@@ -248,7 +248,7 @@ static inline void xor_round_key(AESState *round_state, AESState *round_key)
248
248
uint32_t total_elems = vext_get_total_elems(env, desc, 4); \
249
249
uint32_t vta = vext_vta(desc); \
250
250
\
251
- VSTART_CHECK_EARLY_EXIT(env); \
251
+ VSTART_CHECK_EARLY_EXIT(env, vl); \
252
252
\
253
253
for (uint32_t i = env->vstart / 4; i < env->vl / 4; i++) { \
254
254
AESState round_key; \
@@ -309,7 +309,7 @@ void HELPER(vaeskf1_vi)(void *vd_vptr, void *vs2_vptr, uint32_t uimm,
309
309
uint32_t total_elems = vext_get_total_elems (env , desc , 4 );
310
310
uint32_t vta = vext_vta (desc );
311
311
312
- VSTART_CHECK_EARLY_EXIT (env );
312
+ VSTART_CHECK_EARLY_EXIT (env , vl );
313
313
314
314
uimm &= 0b1111 ;
315
315
if (uimm > 10 || uimm == 0 ) {
@@ -357,7 +357,7 @@ void HELPER(vaeskf2_vi)(void *vd_vptr, void *vs2_vptr, uint32_t uimm,
357
357
uint32_t total_elems = vext_get_total_elems (env , desc , 4 );
358
358
uint32_t vta = vext_vta (desc );
359
359
360
- VSTART_CHECK_EARLY_EXIT (env );
360
+ VSTART_CHECK_EARLY_EXIT (env , vl );
361
361
362
362
uimm &= 0b1111 ;
363
363
if (uimm > 14 || uimm < 2 ) {
@@ -465,7 +465,7 @@ void HELPER(vsha2ms_vv)(void *vd, void *vs1, void *vs2, CPURISCVState *env,
465
465
uint32_t total_elems ;
466
466
uint32_t vta = vext_vta (desc );
467
467
468
- VSTART_CHECK_EARLY_EXIT (env );
468
+ VSTART_CHECK_EARLY_EXIT (env , env -> vl );
469
469
470
470
for (uint32_t i = env -> vstart / 4 ; i < env -> vl / 4 ; i ++ ) {
471
471
if (sew == MO_32 ) {
@@ -582,7 +582,7 @@ void HELPER(vsha2ch32_vv)(void *vd, void *vs1, void *vs2, CPURISCVState *env,
582
582
uint32_t total_elems ;
583
583
uint32_t vta = vext_vta (desc );
584
584
585
- VSTART_CHECK_EARLY_EXIT (env );
585
+ VSTART_CHECK_EARLY_EXIT (env , env -> vl );
586
586
587
587
for (uint32_t i = env -> vstart / 4 ; i < env -> vl / 4 ; i ++ ) {
588
588
vsha2c_32 (((uint32_t * )vs2 ) + 4 * i , ((uint32_t * )vd ) + 4 * i ,
@@ -602,7 +602,7 @@ void HELPER(vsha2ch64_vv)(void *vd, void *vs1, void *vs2, CPURISCVState *env,
602
602
uint32_t total_elems ;
603
603
uint32_t vta = vext_vta (desc );
604
604
605
- VSTART_CHECK_EARLY_EXIT (env );
605
+ VSTART_CHECK_EARLY_EXIT (env , env -> vl );
606
606
607
607
for (uint32_t i = env -> vstart / 4 ; i < env -> vl / 4 ; i ++ ) {
608
608
vsha2c_64 (((uint64_t * )vs2 ) + 4 * i , ((uint64_t * )vd ) + 4 * i ,
@@ -622,7 +622,7 @@ void HELPER(vsha2cl32_vv)(void *vd, void *vs1, void *vs2, CPURISCVState *env,
622
622
uint32_t total_elems ;
623
623
uint32_t vta = vext_vta (desc );
624
624
625
- VSTART_CHECK_EARLY_EXIT (env );
625
+ VSTART_CHECK_EARLY_EXIT (env , env -> vl );
626
626
627
627
for (uint32_t i = env -> vstart / 4 ; i < env -> vl / 4 ; i ++ ) {
628
628
vsha2c_32 (((uint32_t * )vs2 ) + 4 * i , ((uint32_t * )vd ) + 4 * i ,
@@ -642,7 +642,7 @@ void HELPER(vsha2cl64_vv)(void *vd, void *vs1, void *vs2, CPURISCVState *env,
642
642
uint32_t total_elems ;
643
643
uint32_t vta = vext_vta (desc );
644
644
645
- VSTART_CHECK_EARLY_EXIT (env );
645
+ VSTART_CHECK_EARLY_EXIT (env , env -> vl );
646
646
647
647
for (uint32_t i = env -> vstart / 4 ; i < env -> vl / 4 ; i ++ ) {
648
648
vsha2c_64 (((uint64_t * )vs2 ) + 4 * i , ((uint64_t * )vd ) + 4 * i ,
@@ -676,7 +676,7 @@ void HELPER(vsm3me_vv)(void *vd_vptr, void *vs1_vptr, void *vs2_vptr,
676
676
uint32_t * vs1 = vs1_vptr ;
677
677
uint32_t * vs2 = vs2_vptr ;
678
678
679
- VSTART_CHECK_EARLY_EXIT (env );
679
+ VSTART_CHECK_EARLY_EXIT (env , env -> vl );
680
680
681
681
for (int i = env -> vstart / 8 ; i < env -> vl / 8 ; i ++ ) {
682
682
uint32_t w [24 ];
@@ -777,7 +777,7 @@ void HELPER(vsm3c_vi)(void *vd_vptr, void *vs2_vptr, uint32_t uimm,
777
777
uint32_t * vs2 = vs2_vptr ;
778
778
uint32_t v1 [8 ], v2 [8 ], v3 [8 ];
779
779
780
- VSTART_CHECK_EARLY_EXIT (env );
780
+ VSTART_CHECK_EARLY_EXIT (env , env -> vl );
781
781
782
782
for (int i = env -> vstart / 8 ; i < env -> vl / 8 ; i ++ ) {
783
783
for (int k = 0 ; k < 8 ; k ++ ) {
@@ -802,7 +802,7 @@ void HELPER(vghsh_vv)(void *vd_vptr, void *vs1_vptr, void *vs2_vptr,
802
802
uint32_t vta = vext_vta (desc );
803
803
uint32_t total_elems = vext_get_total_elems (env , desc , 4 );
804
804
805
- VSTART_CHECK_EARLY_EXIT (env );
805
+ VSTART_CHECK_EARLY_EXIT (env , env -> vl );
806
806
807
807
for (uint32_t i = env -> vstart / 4 ; i < env -> vl / 4 ; i ++ ) {
808
808
uint64_t Y [2 ] = {vd [i * 2 + 0 ], vd [i * 2 + 1 ]};
@@ -841,7 +841,7 @@ void HELPER(vgmul_vv)(void *vd_vptr, void *vs2_vptr, CPURISCVState *env,
841
841
uint32_t vta = vext_vta (desc );
842
842
uint32_t total_elems = vext_get_total_elems (env , desc , 4 );
843
843
844
- VSTART_CHECK_EARLY_EXIT (env );
844
+ VSTART_CHECK_EARLY_EXIT (env , env -> vl );
845
845
846
846
for (uint32_t i = env -> vstart / 4 ; i < env -> vl / 4 ; i ++ ) {
847
847
uint64_t Y [2 ] = {brev8 (vd [i * 2 + 0 ]), brev8 (vd [i * 2 + 1 ])};
@@ -879,7 +879,7 @@ void HELPER(vsm4k_vi)(void *vd, void *vs2, uint32_t uimm5, CPURISCVState *env,
879
879
uint32_t esz = sizeof (uint32_t );
880
880
uint32_t total_elems = vext_get_total_elems (env , desc , esz );
881
881
882
- VSTART_CHECK_EARLY_EXIT (env );
882
+ VSTART_CHECK_EARLY_EXIT (env , env -> vl );
883
883
884
884
for (uint32_t i = group_start ; i < group_end ; ++ i ) {
885
885
uint32_t vstart = i * egs ;
@@ -937,7 +937,7 @@ void HELPER(vsm4r_vv)(void *vd, void *vs2, CPURISCVState *env, uint32_t desc)
937
937
uint32_t esz = sizeof (uint32_t );
938
938
uint32_t total_elems = vext_get_total_elems (env , desc , esz );
939
939
940
- VSTART_CHECK_EARLY_EXIT (env );
940
+ VSTART_CHECK_EARLY_EXIT (env , env -> vl );
941
941
942
942
for (uint32_t i = group_start ; i < group_end ; ++ i ) {
943
943
uint32_t vstart = i * egs ;
@@ -973,7 +973,7 @@ void HELPER(vsm4r_vs)(void *vd, void *vs2, CPURISCVState *env, uint32_t desc)
973
973
uint32_t esz = sizeof (uint32_t );
974
974
uint32_t total_elems = vext_get_total_elems (env , desc , esz );
975
975
976
- VSTART_CHECK_EARLY_EXIT (env );
976
+ VSTART_CHECK_EARLY_EXIT (env , env -> vl );
977
977
978
978
for (uint32_t i = group_start ; i < group_end ; ++ i ) {
979
979
uint32_t vstart = i * egs ;
0 commit comments