@@ -527,7 +527,8 @@ bool WebAssemblyCallLowering::lowerReturn(MachineIRBuilder &MIRBuilder,
527527 auto NewOutReg = Arg.Regs [Part];
528528 if (!RBI.constrainGenericRegister (NewOutReg, NewRegClass, MRI)) {
529529 NewOutReg = MRI.createGenericVirtualRegister (NewLLT);
530- assert (RBI.constrainGenericRegister (NewOutReg, NewRegClass, MRI) && " Couldn't constrain brand-new register?" );
530+ assert (RBI.constrainGenericRegister (NewOutReg, NewRegClass, MRI) &&
531+ " Couldn't constrain brand-new register?" );
531532 MIRBuilder.buildCopy (NewOutReg, Arg.Regs [Part]);
532533 }
533534 MIB.addUse (NewOutReg);
@@ -704,9 +705,12 @@ bool WebAssemblyCallLowering::lowerFormalArguments(
704705 getLLTForType (*PointerType::get (Ctx, 0 ), DL));
705706 MFI->setVarargBufferVreg (VarargVreg);
706707
707- MIRBuilder.buildInstr (getWASMArgOpcode (PtrVT))
708- .addDef (VarargVreg)
709- .addImm (FinalArgIdx);
708+ auto ArgInst = MIRBuilder.buildInstr (getWASMArgOpcode (PtrVT))
709+ .addDef (VarargVreg)
710+ .addImm (FinalArgIdx);
711+
712+ constrainOperandRegClass (MF, TRI, MRI, TII, RBI, *ArgInst,
713+ ArgInst->getDesc (), ArgInst->getOperand (0 ), 0 );
710714
711715 MFI->addParam (PtrVT);
712716 ++FinalArgIdx;
@@ -911,7 +915,8 @@ bool WebAssemblyCallLowering::lowerCall(MachineIRBuilder &MIRBuilder,
911915 auto NewRetReg = Ret.Regs [Part];
912916 if (!RBI.constrainGenericRegister (NewRetReg, NewRegClass, MRI)) {
913917 NewRetReg = MRI.createGenericVirtualRegister (NewLLT);
914- assert (RBI.constrainGenericRegister (NewRetReg, NewRegClass, MRI) && " Couldn't constrain brand-new register?" );
918+ assert (RBI.constrainGenericRegister (NewRetReg, NewRegClass, MRI) &&
919+ " Couldn't constrain brand-new register?" );
915920 MIRBuilder.buildCopy (NewRetReg, Ret.Regs [Part]);
916921 }
917922 CallInst.addDef (Ret.Regs [Part]);
0 commit comments