+ MachineBasicBlock::iterator InsertPt = EntryMBB.end();
+ // Look for the first NonArg instruction.
+ for (auto MII = EntryMBB.begin(), MIE = EntryMBB.end(); MII != MIE; ++MII) {
+ MachineInstr *MI = MII;
+ if (MI->getOpcode() != WebAssembly::ARGUMENT_I32 &&
+ MI->getOpcode() != WebAssembly::ARGUMENT_I64 &&
+ MI->getOpcode() != WebAssembly::ARGUMENT_F32 &&
+ MI->getOpcode() != WebAssembly::ARGUMENT_F64) {
+ InsertPt = MII;
+ break;
+ }
+ }
+ // Now move any argument instructions later in the block
+ // to before our first NonArg instruction.
+ for (auto I = InsertPt, E = EntryMBB.end(); I != E; ++I) {
+ MachineInstr *MI = I;