@@ -312,36 +312,37 @@ bool RISCVExpandPseudo::expandRV32ZdinxStore(MachineBasicBlock &MBB,
312
312
TRI->getSubReg (MBBI->getOperand (0 ).getReg (), RISCV::sub_gpr_even);
313
313
Register Hi =
314
314
TRI->getSubReg (MBBI->getOperand (0 ).getReg (), RISCV::sub_gpr_odd);
315
- auto MIBLo = BuildMI (MBB, MBBI, DL, TII->get (RISCV::SW))
316
- .addReg (Lo, getKillRegState (MBBI->getOperand (0 ).isKill ()))
317
- .addReg (MBBI->getOperand (1 ).getReg ())
318
- .add (MBBI->getOperand (2 ));
319
315
320
316
assert (MBBI->hasOneMemOperand () && " Expected mem operand" );
321
317
MachineMemOperand *OldMMO = MBBI->memoperands ().front ();
322
318
MachineFunction *MF = MBB.getParent ();
323
319
MachineMemOperand *MMOLo = MF->getMachineMemOperand (OldMMO, 0 , 4 );
324
320
MachineMemOperand *MMOHi = MF->getMachineMemOperand (OldMMO, 4 , 4 );
325
- MIBLo.setMemRefs (MMOLo);
321
+
322
+ BuildMI (MBB, MBBI, DL, TII->get (RISCV::SW))
323
+ .addReg (Lo, getKillRegState (MBBI->getOperand (0 ).isKill ()))
324
+ .addReg (MBBI->getOperand (1 ).getReg ())
325
+ .add (MBBI->getOperand (2 ))
326
+ .setMemRefs (MMOLo);
326
327
327
328
if (MBBI->getOperand (2 ).isGlobal () || MBBI->getOperand (2 ).isCPI ()) {
328
329
// FIXME: Zdinx RV32 can not work on unaligned memory.
329
330
assert (!STI->hasFastUnalignedAccess ());
330
331
331
332
assert (MBBI->getOperand (2 ).getOffset () % 8 == 0 );
332
333
MBBI->getOperand (2 ).setOffset (MBBI->getOperand (2 ).getOffset () + 4 );
333
- auto MIBHi = BuildMI (MBB, MBBI, DL, TII->get (RISCV::SW))
334
- .addReg (Hi, getKillRegState (MBBI->getOperand (0 ).isKill ()))
335
- .add (MBBI->getOperand (1 ))
336
- .add (MBBI->getOperand (2 ));
337
- MIBHi .setMemRefs (MMOHi);
334
+ BuildMI (MBB, MBBI, DL, TII->get (RISCV::SW))
335
+ .addReg (Hi, getKillRegState (MBBI->getOperand (0 ).isKill ()))
336
+ .add (MBBI->getOperand (1 ))
337
+ .add (MBBI->getOperand (2 ))
338
+ .setMemRefs (MMOHi);
338
339
} else {
339
340
assert (isInt<12 >(MBBI->getOperand (2 ).getImm () + 4 ));
340
- auto MIBHi = BuildMI (MBB, MBBI, DL, TII->get (RISCV::SW))
341
- .addReg (Hi, getKillRegState (MBBI->getOperand (0 ).isKill ()))
342
- .add (MBBI->getOperand (1 ))
343
- .addImm (MBBI->getOperand (2 ).getImm () + 4 );
344
- MIBHi .setMemRefs (MMOHi);
341
+ BuildMI (MBB, MBBI, DL, TII->get (RISCV::SW))
342
+ .addReg (Hi, getKillRegState (MBBI->getOperand (0 ).isKill ()))
343
+ .add (MBBI->getOperand (1 ))
344
+ .addImm (MBBI->getOperand (2 ).getImm () + 4 )
345
+ .setMemRefs (MMOHi);
345
346
}
346
347
MBBI->eraseFromParent ();
347
348
return true ;
@@ -370,35 +371,35 @@ bool RISCVExpandPseudo::expandRV32ZdinxLoad(MachineBasicBlock &MBB,
370
371
bool IsOp1EqualToLo = Lo == MBBI->getOperand (1 ).getReg ();
371
372
// Order: Lo, Hi
372
373
if (!IsOp1EqualToLo) {
373
- auto MIBLo = BuildMI (MBB, MBBI, DL, TII->get (RISCV::LW), Lo)
374
- .addReg (MBBI->getOperand (1 ).getReg ())
375
- .add (MBBI->getOperand (2 ));
376
- MIBLo .setMemRefs (MMOLo);
374
+ BuildMI (MBB, MBBI, DL, TII->get (RISCV::LW), Lo)
375
+ .addReg (MBBI->getOperand (1 ).getReg ())
376
+ .add (MBBI->getOperand (2 ))
377
+ .setMemRefs (MMOLo);
377
378
}
378
379
379
380
if (MBBI->getOperand (2 ).isGlobal () || MBBI->getOperand (2 ).isCPI ()) {
380
381
auto Offset = MBBI->getOperand (2 ).getOffset ();
381
382
assert (MBBI->getOperand (2 ).getOffset () % 8 == 0 );
382
383
MBBI->getOperand (2 ).setOffset (Offset + 4 );
383
- auto MIBHi = BuildMI (MBB, MBBI, DL, TII->get (RISCV::LW), Hi)
384
- .addReg (MBBI->getOperand (1 ).getReg ())
385
- .add (MBBI->getOperand (2 ));
384
+ BuildMI (MBB, MBBI, DL, TII->get (RISCV::LW), Hi)
385
+ .addReg (MBBI->getOperand (1 ).getReg ())
386
+ .add (MBBI->getOperand (2 ))
387
+ .setMemRefs (MMOHi);
386
388
MBBI->getOperand (2 ).setOffset (Offset);
387
- MIBHi.setMemRefs (MMOHi);
388
389
} else {
389
390
assert (isInt<12 >(MBBI->getOperand (2 ).getImm () + 4 ));
390
- auto MIBHi = BuildMI (MBB, MBBI, DL, TII->get (RISCV::LW), Hi)
391
- .addReg (MBBI->getOperand (1 ).getReg ())
392
- .addImm (MBBI->getOperand (2 ).getImm () + 4 );
393
- MIBHi .setMemRefs (MMOHi);
391
+ BuildMI (MBB, MBBI, DL, TII->get (RISCV::LW), Hi)
392
+ .addReg (MBBI->getOperand (1 ).getReg ())
393
+ .addImm (MBBI->getOperand (2 ).getImm () + 4 )
394
+ .setMemRefs (MMOHi);
394
395
}
395
396
396
397
// Order: Hi, Lo
397
398
if (IsOp1EqualToLo) {
398
- auto MIBLo = BuildMI (MBB, MBBI, DL, TII->get (RISCV::LW), Lo)
399
- .addReg (MBBI->getOperand (1 ).getReg ())
400
- .add (MBBI->getOperand (2 ));
401
- MIBLo .setMemRefs (MMOLo);
399
+ BuildMI (MBB, MBBI, DL, TII->get (RISCV::LW), Lo)
400
+ .addReg (MBBI->getOperand (1 ).getReg ())
401
+ .add (MBBI->getOperand (2 ))
402
+ .setMemRefs (MMOLo);
402
403
}
403
404
404
405
MBBI->eraseFromParent ();
0 commit comments