mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 04:38:24 +00:00
Add X86FastISel support for return statements. This entails refactoring
a bunch of stuff, to allow the target-independent calling convention logic to be employed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107800 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -80,13 +80,12 @@ CCState::AnalyzeFormalArguments(const SmallVectorImpl<ISD::InputArg> &Ins,
|
||||
|
||||
/// CheckReturn - Analyze the return values of a function, returning true if
|
||||
/// the return can be performed without sret-demotion, and false otherwise.
|
||||
bool CCState::CheckReturn(const SmallVectorImpl<EVT> &OutTys,
|
||||
const SmallVectorImpl<ISD::ArgFlagsTy> &ArgsFlags,
|
||||
bool CCState::CheckReturn(const SmallVectorImpl<ISD::OutputArg> &Outs,
|
||||
CCAssignFn Fn) {
|
||||
// Determine which register each value should be copied into.
|
||||
for (unsigned i = 0, e = OutTys.size(); i != e; ++i) {
|
||||
EVT VT = OutTys[i];
|
||||
ISD::ArgFlagsTy ArgFlags = ArgsFlags[i];
|
||||
for (unsigned i = 0, e = Outs.size(); i != e; ++i) {
|
||||
EVT VT = Outs[i].VT;
|
||||
ISD::ArgFlagsTy ArgFlags = Outs[i].Flags;
|
||||
if (Fn(i, VT, VT, CCValAssign::Full, ArgFlags, *this))
|
||||
return false;
|
||||
}
|
||||
|
Reference in New Issue
Block a user