@@ -467,22 +467,22 @@ reg_def R31_H ( NS, NS, Op_RegI, 31, r31_sp->as_VMReg()->next());
467
467
// ----------------------------
468
468
// SVE Predicate Registers
469
469
// ----------------------------
470
- reg_def P0 (SOC, SOC, Op_RegVMask , 0, p0->as_VMReg());
471
- reg_def P1 (SOC, SOC, Op_RegVMask , 1, p1->as_VMReg());
472
- reg_def P2 (SOC, SOC, Op_RegVMask , 2, p2->as_VMReg());
473
- reg_def P3 (SOC, SOC, Op_RegVMask , 3, p3->as_VMReg());
474
- reg_def P4 (SOC, SOC, Op_RegVMask , 4, p4->as_VMReg());
475
- reg_def P5 (SOC, SOC, Op_RegVMask , 5, p5->as_VMReg());
476
- reg_def P6 (SOC, SOC, Op_RegVMask , 6, p6->as_VMReg());
477
- reg_def P7 (SOC, SOC, Op_RegVMask , 7, p7->as_VMReg());
478
- reg_def P8 (SOC, SOC, Op_RegVMask , 8, p8->as_VMReg());
479
- reg_def P9 (SOC, SOC, Op_RegVMask , 9, p9->as_VMReg());
480
- reg_def P10 (SOC, SOC, Op_RegVMask , 10, p10->as_VMReg());
481
- reg_def P11 (SOC, SOC, Op_RegVMask , 11, p11->as_VMReg());
482
- reg_def P12 (SOC, SOC, Op_RegVMask , 12, p12->as_VMReg());
483
- reg_def P13 (SOC, SOC, Op_RegVMask , 13, p13->as_VMReg());
484
- reg_def P14 (SOC, SOC, Op_RegVMask , 14, p14->as_VMReg());
485
- reg_def P15 (SOC, SOC, Op_RegVMask , 15, p15->as_VMReg());
470
+ reg_def P0 (SOC, SOC, Op_RegVectMask , 0, p0->as_VMReg());
471
+ reg_def P1 (SOC, SOC, Op_RegVectMask , 1, p1->as_VMReg());
472
+ reg_def P2 (SOC, SOC, Op_RegVectMask , 2, p2->as_VMReg());
473
+ reg_def P3 (SOC, SOC, Op_RegVectMask , 3, p3->as_VMReg());
474
+ reg_def P4 (SOC, SOC, Op_RegVectMask , 4, p4->as_VMReg());
475
+ reg_def P5 (SOC, SOC, Op_RegVectMask , 5, p5->as_VMReg());
476
+ reg_def P6 (SOC, SOC, Op_RegVectMask , 6, p6->as_VMReg());
477
+ reg_def P7 (SOC, SOC, Op_RegVectMask , 7, p7->as_VMReg());
478
+ reg_def P8 (SOC, SOC, Op_RegVectMask , 8, p8->as_VMReg());
479
+ reg_def P9 (SOC, SOC, Op_RegVectMask , 9, p9->as_VMReg());
480
+ reg_def P10 (SOC, SOC, Op_RegVectMask , 10, p10->as_VMReg());
481
+ reg_def P11 (SOC, SOC, Op_RegVectMask , 11, p11->as_VMReg());
482
+ reg_def P12 (SOC, SOC, Op_RegVectMask , 12, p12->as_VMReg());
483
+ reg_def P13 (SOC, SOC, Op_RegVectMask , 13, p13->as_VMReg());
484
+ reg_def P14 (SOC, SOC, Op_RegVectMask , 14, p14->as_VMReg());
485
+ reg_def P15 (SOC, SOC, Op_RegVectMask , 15, p15->as_VMReg());
486
486
487
487
// ----------------------------
488
488
// Special Registers
@@ -2439,6 +2439,14 @@ const bool Matcher::has_predicated_vectors(void) {
2439
2439
return UseSVE > 0;
2440
2440
}
2441
2441
2442
+ const RegMask* Matcher::predicate_reg_mask(void) {
2443
+ return &_PR_REG_mask;
2444
+ }
2445
+
2446
+ const TypeVect* Matcher::predicate_reg_type(const Type* elemTy, int length) {
2447
+ return new TypeVectMask(elemTy, length);
2448
+ }
2449
+
2442
2450
bool Matcher::supports_vector_variable_shifts(void) {
2443
2451
return true;
2444
2452
}
@@ -5601,7 +5609,7 @@ operand vRegD_V31()
5601
5609
operand pRegGov()
5602
5610
%{
5603
5611
constraint(ALLOC_IN_RC(gov_pr));
5604
- match(RegVMask );
5612
+ match(RegVectMask );
5605
5613
op_cost(0);
5606
5614
format %{ %}
5607
5615
interface(REG_INTER);
0 commit comments