Thanks to visit codestin.com
Credit goes to llvm.org

LLVM 22.0.0git
SparcISelLowering.cpp File Reference

Go to the source code of this file.

Functions

static bool CC_Sparc_Assign_SRet (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
static bool CC_Sparc_Assign_Split_64 (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
static bool CC_Sparc_Assign_Ret_Split_64 (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
static bool Analyze_CC_Sparc64_Full (bool IsReturn, unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
static bool Analyze_CC_Sparc64_Half (bool IsReturn, unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
static bool CC_Sparc64_Full (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
static bool CC_Sparc64_Half (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
static bool RetCC_Sparc64_Full (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
static bool RetCC_Sparc64_Half (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
static unsigned toCallerWindow (unsigned Reg)
static bool isAnyArgRegReserved (const SparcRegisterInfo *TRI, const MachineFunction &MF)
static void emitReservedArgRegCallError (const MachineFunction &MF)
static bool hasReturnsTwiceAttr (SelectionDAG &DAG, SDValue Callee, const CallBase *Call)
static void fixupVariableFloatArgs (SmallVectorImpl< CCValAssign > &ArgLocs, ArrayRef< ISD::OutputArg > Outs)
static SPCC::CondCodes intCondCCodeToRcond (ISD::CondCode CC)
 intCondCCodeToRcond - Convert a DAG integer condition code to a SPARC rcond condition.
static SPCC::CondCodes IntCondCCodeToICC (ISD::CondCode CC)
 IntCondCCodeToICC - Convert a DAG integer condition code to a SPARC ICC condition.
static SPCC::CondCodes FPCondCCodeToFCC (ISD::CondCode CC)
 FPCondCCodeToFCC - Convert a DAG floatingp oint condition code to a SPARC FCC condition.
static void LookThroughSetCC (SDValue &LHS, SDValue &RHS, ISD::CondCode CC, unsigned &SPCC)
static SDValue LowerF128_FPEXTEND (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI)
static SDValue LowerF128_FPROUND (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI)
static SDValue LowerFP_TO_SINT (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI, bool hasHardQuad)
static SDValue LowerSINT_TO_FP (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI, bool hasHardQuad)
static SDValue LowerFP_TO_UINT (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI, bool hasHardQuad)
static SDValue LowerUINT_TO_FP (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI, bool hasHardQuad)
static SDValue LowerBR_CC (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI, bool hasHardQuad, bool isV9, bool is64Bit)
static SDValue LowerSELECT_CC (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI, bool hasHardQuad, bool isV9, bool is64Bit)
static SDValue LowerVASTART (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI)
static SDValue LowerVAARG (SDValue Op, SelectionDAG &DAG)
static SDValue LowerDYNAMIC_STACKALLOC (SDValue Op, SelectionDAG &DAG, const SparcSubtarget *Subtarget)
static SDValue getFLUSHW (SDValue Op, SelectionDAG &DAG)
static SDValue getFRAMEADDR (uint64_t depth, SDValue Op, SelectionDAG &DAG, const SparcSubtarget *Subtarget, bool AlwaysFlush=false)
static SDValue LowerFRAMEADDR (SDValue Op, SelectionDAG &DAG, const SparcSubtarget *Subtarget)
static SDValue LowerRETURNADDR (SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI, const SparcSubtarget *Subtarget)
static SDValue LowerF64Op (SDValue SrcReg64, const SDLoc &dl, SelectionDAG &DAG, unsigned opcode)
static SDValue LowerF128Load (SDValue Op, SelectionDAG &DAG)
static SDValue LowerLOAD (SDValue Op, SelectionDAG &DAG)
static SDValue LowerF128Store (SDValue Op, SelectionDAG &DAG)
static SDValue LowerSTORE (SDValue Op, SelectionDAG &DAG)
static SDValue LowerFNEGorFABS (SDValue Op, SelectionDAG &DAG, bool isV9)
static SDValue LowerATOMIC_LOAD_STORE (SDValue Op, SelectionDAG &DAG)

Function Documentation

◆ Analyze_CC_Sparc64_Full()

bool Analyze_CC_Sparc64_Full ( bool IsReturn,
unsigned & ValNo,
MVT & ValVT,
MVT & LocVT,
CCValAssign::LocInfo & LocInfo,
ISD::ArgFlagsTy & ArgFlags,
CCState & State )
static

◆ Analyze_CC_Sparc64_Half()

bool Analyze_CC_Sparc64_Half ( bool IsReturn,
unsigned & ValNo,
MVT & ValVT,
MVT & LocVT,
CCValAssign::LocInfo & LocInfo,
ISD::ArgFlagsTy & ArgFlags,
CCState & State )
static

◆ CC_Sparc64_Full()

bool CC_Sparc64_Full ( unsigned & ValNo,
MVT & ValVT,
MVT & LocVT,
CCValAssign::LocInfo & LocInfo,
ISD::ArgFlagsTy & ArgFlags,
CCState & State )
static

Definition at line 196 of file SparcISelLowering.cpp.

References Analyze_CC_Sparc64_Full().

◆ CC_Sparc64_Half()

bool CC_Sparc64_Half ( unsigned & ValNo,
MVT & ValVT,
MVT & LocVT,
CCValAssign::LocInfo & LocInfo,
ISD::ArgFlagsTy & ArgFlags,
CCState & State )
static

Definition at line 203 of file SparcISelLowering.cpp.

References Analyze_CC_Sparc64_Half().

◆ CC_Sparc_Assign_Ret_Split_64()

bool CC_Sparc_Assign_Ret_Split_64 ( unsigned & ValNo,
MVT & ValVT,
MVT & LocVT,
CCValAssign::LocInfo & LocInfo,
ISD::ArgFlagsTy & ArgFlags,
CCState & State )
static

Definition at line 85 of file SparcISelLowering.cpp.

References llvm::CCValAssign::getCustomReg(), and Reg.

◆ CC_Sparc_Assign_Split_64()

bool CC_Sparc_Assign_Split_64 ( unsigned & ValNo,
MVT & ValVT,
MVT & LocVT,
CCValAssign::LocInfo & LocInfo,
ISD::ArgFlagsTy & ArgFlags,
CCState & State )
static

◆ CC_Sparc_Assign_SRet()

bool CC_Sparc_Assign_SRet ( unsigned & ValNo,
MVT & ValVT,
MVT & LocVT,
CCValAssign::LocInfo & LocInfo,
ISD::ArgFlagsTy & ArgFlags,
CCState & State )
static

◆ emitReservedArgRegCallError()

void emitReservedArgRegCallError ( const MachineFunction & MF)
static

◆ fixupVariableFloatArgs()

◆ FPCondCCodeToFCC()

◆ getFLUSHW()

SDValue getFLUSHW ( SDValue Op,
SelectionDAG & DAG )
static

◆ getFRAMEADDR()

◆ hasReturnsTwiceAttr()

◆ IntCondCCodeToICC()

◆ intCondCCodeToRcond()

SPCC::CondCodes intCondCCodeToRcond ( ISD::CondCode CC)
static

◆ isAnyArgRegReserved()

bool isAnyArgRegReserved ( const SparcRegisterInfo * TRI,
const MachineFunction & MF )
static

◆ LookThroughSetCC()

void LookThroughSetCC ( SDValue & LHS,
SDValue & RHS,
ISD::CondCode CC,
unsigned & SPCC )
static

◆ LowerATOMIC_LOAD_STORE()

SDValue LowerATOMIC_LOAD_STORE ( SDValue Op,
SelectionDAG & DAG )
static

◆ LowerBR_CC()

◆ LowerDYNAMIC_STACKALLOC()

◆ LowerF128_FPEXTEND()

◆ LowerF128_FPROUND()

◆ LowerF128Load()

◆ LowerF128Store()

◆ LowerF64Op()

◆ LowerFNEGorFABS()

◆ LowerFP_TO_SINT()

◆ LowerFP_TO_UINT()

◆ LowerFRAMEADDR()

SDValue LowerFRAMEADDR ( SDValue Op,
SelectionDAG & DAG,
const SparcSubtarget * Subtarget )
static

Definition at line 2835 of file SparcISelLowering.cpp.

References getFRAMEADDR().

Referenced by llvm::SparcTargetLowering::LowerOperation().

◆ LowerLOAD()

SDValue LowerLOAD ( SDValue Op,
SelectionDAG & DAG )
static

◆ LowerRETURNADDR()

◆ LowerSELECT_CC()

◆ LowerSINT_TO_FP()

◆ LowerSTORE()

◆ LowerUINT_TO_FP()

◆ LowerVAARG()

◆ LowerVASTART()

◆ RetCC_Sparc64_Full()

bool RetCC_Sparc64_Full ( unsigned & ValNo,
MVT & ValVT,
MVT & LocVT,
CCValAssign::LocInfo & LocInfo,
ISD::ArgFlagsTy & ArgFlags,
CCState & State )
static

Definition at line 210 of file SparcISelLowering.cpp.

References Analyze_CC_Sparc64_Full().

◆ RetCC_Sparc64_Half()

bool RetCC_Sparc64_Half ( unsigned & ValNo,
MVT & ValVT,
MVT & LocVT,
CCValAssign::LocInfo & LocInfo,
ISD::ArgFlagsTy & ArgFlags,
CCState & State )
static

Definition at line 217 of file SparcISelLowering.cpp.

References Analyze_CC_Sparc64_Half().

◆ toCallerWindow()