|
25 | 25 |
|
26 | 26 | using namespace llvm;
|
27 | 27 |
|
| 28 | +namespace { |
| 29 | + |
| 30 | +struct M68kFormalArgHandler : public M68kIncomingValueHandler { |
| 31 | + M68kFormalArgHandler(MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI) |
| 32 | + : M68kIncomingValueHandler(MIRBuilder, MRI) {} |
| 33 | +}; |
| 34 | + |
| 35 | +struct CallReturnHandler : public M68kIncomingValueHandler { |
| 36 | + CallReturnHandler(MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI, |
| 37 | + MachineInstrBuilder &MIB) |
| 38 | + : M68kIncomingValueHandler(MIRBuilder, MRI), MIB(MIB) {} |
| 39 | + |
| 40 | +private: |
| 41 | + void assignValueToReg(Register ValVReg, Register PhysReg, |
| 42 | + const CCValAssign &VA) override; |
| 43 | + |
| 44 | + MachineInstrBuilder &MIB; |
| 45 | +}; |
| 46 | + |
| 47 | +} // end anonymous namespace |
| 48 | + |
28 | 49 | M68kCallLowering::M68kCallLowering(const M68kTargetLowering &TLI)
|
29 | 50 | : CallLowering(&TLI) {}
|
30 | 51 |
|
@@ -119,7 +140,7 @@ bool M68kCallLowering::lowerFormalArguments(MachineIRBuilder &MIRBuilder,
|
119 | 140 | CCAssignFn *AssignFn =
|
120 | 141 | TLI.getCCAssignFn(F.getCallingConv(), false, F.isVarArg());
|
121 | 142 | IncomingValueAssigner ArgAssigner(AssignFn);
|
122 |
| - FormalArgHandler ArgHandler(MIRBuilder, MRI); |
| 143 | + M68kFormalArgHandler ArgHandler(MIRBuilder, MRI); |
123 | 144 | return determineAndHandleAssignments(ArgHandler, ArgAssigner, SplitArgs,
|
124 | 145 | MIRBuilder, F.getCallingConv(),
|
125 | 146 | F.isVarArg());
|
|
0 commit comments