LLVM
22.0.0git
lib
Target
Mips
MipsCCState.h
Go to the documentation of this file.
1
//===---- MipsCCState.h - CCState with Mips specific extensions -----------===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#ifndef MIPSCCSTATE_H
10
#define MIPSCCSTATE_H
11
12
#include "
MipsISelLowering.h
"
13
#include "
llvm/ADT/SmallVector.h
"
14
#include "
llvm/CodeGen/CallingConvLower.h
"
15
16
namespace
llvm
{
17
class
SDNode;
18
class
MipsSubtarget;
19
20
class
MipsCCState
:
public
CCState
{
21
public
:
22
enum
SpecialCallingConvType
{
Mips16RetHelperConv
,
NoSpecialCallingConv
};
23
24
/// Determine the SpecialCallingConvType for the given callee
25
static
SpecialCallingConvType
26
getSpecialCallingConvForCallee
(
const
SDNode
*Callee,
27
const
MipsSubtarget
&Subtarget);
28
29
private
:
30
// Used to handle MIPS16-specific calling convention tweaks.
31
// FIXME: This should probably be a fully fledged calling convention.
32
SpecialCallingConvType
SpecialCallingConv;
33
34
public
:
35
MipsCCState
(
CallingConv::ID
CC,
bool
isVarArg
,
MachineFunction
&MF,
36
SmallVectorImpl<CCValAssign>
&locs,
LLVMContext
&
C
,
37
SpecialCallingConvType
SpecialCC =
NoSpecialCallingConv
)
38
:
CCState
(CC,
isVarArg
, MF, locs,
C
), SpecialCallingConv(SpecialCC) {}
39
40
SpecialCallingConvType
getSpecialCallingConv
() {
return
SpecialCallingConv; }
41
};
42
}
43
44
#endif
CallingConvLower.h
MipsISelLowering.h
SmallVector.h
This file defines the SmallVector class.
llvm::CCState
CCState - This class holds information needed while lowering arguments and return values.
Definition:
CallingConvLower.h:171
llvm::CCState::isVarArg
bool isVarArg() const
Definition:
CallingConvLower.h:243
llvm::LLVMContext
This is an important class for using LLVM in a threaded context.
Definition:
LLVMContext.h:68
llvm::MachineFunction
Definition:
MachineFunction.h:286
llvm::MipsCCState
Definition:
MipsCCState.h:20
llvm::MipsCCState::getSpecialCallingConv
SpecialCallingConvType getSpecialCallingConv()
Definition:
MipsCCState.h:40
llvm::MipsCCState::getSpecialCallingConvForCallee
static SpecialCallingConvType getSpecialCallingConvForCallee(const SDNode *Callee, const MipsSubtarget &Subtarget)
Determine the SpecialCallingConvType for the given callee.
Definition:
MipsCCState.cpp:16
llvm::MipsCCState::SpecialCallingConvType
SpecialCallingConvType
Definition:
MipsCCState.h:22
llvm::MipsCCState::Mips16RetHelperConv
@ Mips16RetHelperConv
Definition:
MipsCCState.h:22
llvm::MipsCCState::NoSpecialCallingConv
@ NoSpecialCallingConv
Definition:
MipsCCState.h:22
llvm::MipsCCState::MipsCCState
MipsCCState(CallingConv::ID CC, bool isVarArg, MachineFunction &MF, SmallVectorImpl< CCValAssign > &locs, LLVMContext &C, SpecialCallingConvType SpecialCC=NoSpecialCallingConv)
Definition:
MipsCCState.h:35
llvm::MipsSubtarget
Definition:
MipsSubtarget.h:37
llvm::SDNode
Represents one node in the SelectionDAG.
Definition:
SelectionDAGNodes.h:501
llvm::SmallVectorImpl
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
Definition:
SmallVector.h:574
unsigned
llvm::CallingConv::C
@ C
The default llvm calling convention, compatible with C.
Definition:
CallingConv.h:34
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:
AddressRanges.h:18
Generated on Sat Aug 30 2025 10:37:40 for LLVM by
1.9.6