File tree 1 file changed +4
-2
lines changed
1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -1596,7 +1596,8 @@ uint MachSpillCopyNode::implementation(C2_MacroAssembler *masm, PhaseRegAlloc *r
1596
1596
__ unspill(as_VectorRegister(Matcher::_regEncode[dst_lo]), ra_->reg2offset(src_lo));
1597
1597
} else if (src_lo_rc == rc_vector && dst_lo_rc == rc_vector) {
1598
1598
// vpr to vpr
1599
- __ vmv1r_v(as_VectorRegister(Matcher::_regEncode[dst_lo]), as_VectorRegister(Matcher::_regEncode[src_lo]));
1599
+ __ vsetvli_helper(T_BYTE, MaxVectorSize);
1600
+ __ vmv_v_v(as_VectorRegister(Matcher::_regEncode[dst_lo]), as_VectorRegister(Matcher::_regEncode[src_lo]));
1600
1601
} else {
1601
1602
ShouldNotReachHere();
1602
1603
}
@@ -1614,7 +1615,8 @@ uint MachSpillCopyNode::implementation(C2_MacroAssembler *masm, PhaseRegAlloc *r
1614
1615
__ unspill_vmask(as_VectorRegister(Matcher::_regEncode[dst_lo]), ra_->reg2offset(src_lo));
1615
1616
} else if (src_lo_rc == rc_vector && dst_lo_rc == rc_vector) {
1616
1617
// vmask to vmask
1617
- __ vmv1r_v(as_VectorRegister(Matcher::_regEncode[dst_lo]), as_VectorRegister(Matcher::_regEncode[src_lo]));
1618
+ __ vsetvli_helper(T_BYTE, MaxVectorSize >> 3);
1619
+ __ vmv_v_v(as_VectorRegister(Matcher::_regEncode[dst_lo]), as_VectorRegister(Matcher::_regEncode[src_lo]));
1618
1620
} else {
1619
1621
ShouldNotReachHere();
1620
1622
}
You can’t perform that action at this time.
0 commit comments