@@ -218,6 +218,18 @@ pub(crate) enum VirtualOp {
218
218
) ,
219
219
K256 ( VirtualRegister , VirtualRegister , VirtualRegister ) ,
220
220
S256 ( VirtualRegister , VirtualRegister , VirtualRegister ) ,
221
+ ECOP (
222
+ VirtualRegister ,
223
+ VirtualRegister ,
224
+ VirtualRegister ,
225
+ VirtualRegister ,
226
+ ) ,
227
+ EPAR (
228
+ VirtualRegister ,
229
+ VirtualRegister ,
230
+ VirtualRegister ,
231
+ VirtualRegister ,
232
+ ) ,
221
233
222
234
/* Other Instructions */
223
235
FLAG ( VirtualRegister ) ,
@@ -339,6 +351,8 @@ impl VirtualOp {
339
351
ED19 ( r1, r2, r3, r4) => vec ! [ r1, r2, r3, r4] ,
340
352
K256 ( r1, r2, r3) => vec ! [ r1, r2, r3] ,
341
353
S256 ( r1, r2, r3) => vec ! [ r1, r2, r3] ,
354
+ ECOP ( r1, r2, r3, r4) => vec ! [ r1, r2, r3, r4] ,
355
+ EPAR ( r1, r2, r3, r4) => vec ! [ r1, r2, r3, r4] ,
342
356
343
357
/* Other Instructions */
344
358
FLAG ( r1) => vec ! [ r1] ,
@@ -407,6 +421,7 @@ impl VirtualOp {
407
421
| TIME ( _, _)
408
422
| GM ( _, _)
409
423
| GTF ( _, _, _)
424
+ | EPAR ( _, _, _, _)
410
425
// Virtual OPs
411
426
| LoadDataId ( _, _)
412
427
| AddrDataId ( _, _)
@@ -463,6 +478,7 @@ impl VirtualOp {
463
478
| ED19 ( _, _, _, _)
464
479
| K256 ( _, _, _)
465
480
| S256 ( _, _, _)
481
+ | ECOP ( _, _, _, _)
466
482
| FLAG ( _)
467
483
// Virtual OPs
468
484
| BLOB ( _)
@@ -570,6 +586,8 @@ impl VirtualOp {
570
586
| TRO ( _, _, _, _)
571
587
| K256 ( _, _, _)
572
588
| S256 ( _, _, _)
589
+ | ECOP ( _, _, _, _)
590
+ | EPAR ( _, _, _, _)
573
591
| GM ( _, _)
574
592
| GTF ( _, _, _)
575
593
| BLOB ( _)
@@ -687,6 +705,8 @@ impl VirtualOp {
687
705
ED19 ( r1, r2, r3, r4) => vec ! [ r1, r2, r3, r4] ,
688
706
K256 ( r1, r2, r3) => vec ! [ r1, r2, r3] ,
689
707
S256 ( r1, r2, r3) => vec ! [ r1, r2, r3] ,
708
+ ECOP ( r1, r2, r3, r4) => vec ! [ r1, r2, r3, r4] ,
709
+ EPAR ( _r1, r2, r3, r4) => vec ! [ r2, r3, r4] ,
690
710
691
711
/* Other Instructions */
692
712
FLAG ( r1) => vec ! [ r1] ,
@@ -809,6 +829,8 @@ impl VirtualOp {
809
829
ED19 ( _r1, _r2, _r3, _r4) => vec ! [ ] ,
810
830
K256 ( _r1, _r2, _r3) => vec ! [ ] ,
811
831
S256 ( _r1, _r2, _r3) => vec ! [ ] ,
832
+ ECOP ( _r1, _r2, _r3, _r4) => vec ! [ ] ,
833
+ EPAR ( r1, _r2, _r3, _r4) => vec ! [ r1] ,
812
834
813
835
/* Other Instructions */
814
836
FLAG ( _r1) => vec ! [ ] ,
@@ -1256,6 +1278,18 @@ impl VirtualOp {
1256
1278
update_reg ( reg_to_reg_map, r2) ,
1257
1279
update_reg ( reg_to_reg_map, r3) ,
1258
1280
) ,
1281
+ ECOP ( r1, r2, r3, r4) => Self :: ECOP (
1282
+ update_reg ( reg_to_reg_map, r1) ,
1283
+ update_reg ( reg_to_reg_map, r2) ,
1284
+ update_reg ( reg_to_reg_map, r3) ,
1285
+ update_reg ( reg_to_reg_map, r4) ,
1286
+ ) ,
1287
+ EPAR ( r1, r2, r3, r4) => Self :: EPAR (
1288
+ update_reg ( reg_to_reg_map, r1) ,
1289
+ update_reg ( reg_to_reg_map, r2) ,
1290
+ update_reg ( reg_to_reg_map, r3) ,
1291
+ update_reg ( reg_to_reg_map, r4) ,
1292
+ ) ,
1259
1293
1260
1294
/* Other Instructions */
1261
1295
FLAG ( r1) => Self :: FLAG ( update_reg ( reg_to_reg_map, r1) ) ,
@@ -1737,6 +1771,18 @@ impl VirtualOp {
1737
1771
map_reg ( & mapping, reg2) ,
1738
1772
map_reg ( & mapping, reg3) ,
1739
1773
) ,
1774
+ ECOP ( reg1, reg2, reg3, reg4) => AllocatedOpcode :: ECOP (
1775
+ map_reg ( & mapping, reg1) ,
1776
+ map_reg ( & mapping, reg2) ,
1777
+ map_reg ( & mapping, reg3) ,
1778
+ map_reg ( & mapping, reg4) ,
1779
+ ) ,
1780
+ EPAR ( reg1, reg2, reg3, reg4) => AllocatedOpcode :: EPAR (
1781
+ map_reg ( & mapping, reg1) ,
1782
+ map_reg ( & mapping, reg2) ,
1783
+ map_reg ( & mapping, reg3) ,
1784
+ map_reg ( & mapping, reg4) ,
1785
+ ) ,
1740
1786
1741
1787
/* Other Instructions */
1742
1788
FLAG ( reg) => AllocatedOpcode :: FLAG ( map_reg ( & mapping, reg) ) ,
0 commit comments