|
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 |
|
@@ -118,7 +139,7 @@ bool M68kCallLowering::lowerFormalArguments(MachineIRBuilder &MIRBuilder,
|
118 | 139 | CCAssignFn *AssignFn =
|
119 | 140 | TLI.getCCAssignFn(F.getCallingConv(), false, F.isVarArg());
|
120 | 141 | IncomingValueAssigner ArgAssigner(AssignFn);
|
121 |
| - FormalArgHandler ArgHandler(MIRBuilder, MRI); |
| 142 | + M68kFormalArgHandler ArgHandler(MIRBuilder, MRI); |
122 | 143 | return determineAndHandleAssignments(ArgHandler, ArgAssigner, SplitArgs,
|
123 | 144 | MIRBuilder, F.getCallingConv(),
|
124 | 145 | F.isVarArg());
|
|
0 commit comments