LLVM  14.0.0git
Macros | Functions | Variables
Mips16ISelLowering.cpp File Reference
#include "Mips16ISelLowering.h"
#include "MCTargetDesc/MipsBaseInfo.h"
#include "Mips16HardFloatInfo.h"
#include "MipsMachineFunction.h"
#include "MipsRegisterInfo.h"
#include "MipsTargetMachine.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/Support/CommandLine.h"
Include dependency graph for Mips16ISelLowering.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "mips-lower"
 
#define P_   "__mips16_call_stub_"
 
#define MAX_STUB_NUMBER   10
 
#define T1   P "1", P "2", 0, 0, P "5", P "6", 0, 0, P "9", P "10"
 
#define T   P "0" , T1
 
#define P   P_
 
#define P   P_ "sf_"
 
#define P   P_ "df_"
 
#define P   P_ "sc_"
 
#define P   P_ "dc_"
 

Functions

static unsigned Mips16WhichOp8uOr16simm (unsigned shortOp, unsigned longOp, int64_t Imm)
 

Variables

static cl::opt< bool > DontExpandCondPseudos16 ("mips16-dont-expand-cond-pseudo", cl::init(false), cl::desc("Don't expand conditional move related " "pseudos for Mips 16"), cl::Hidden)
 
static const Mips16Libcall HardFloatLibCalls []
 
static const Mips16IntrinsicHelperType Mips16IntrinsicHelper []
 
static const char * vMips16Helper [MAX_STUB_NUMBER+1]
 
static const char * sfMips16Helper [MAX_STUB_NUMBER+1]
 
static const char * dfMips16Helper [MAX_STUB_NUMBER+1]
 
static const char * scMips16Helper [MAX_STUB_NUMBER+1]
 
static const char * dcMips16Helper [MAX_STUB_NUMBER+1]
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "mips-lower"

Definition at line 24 of file Mips16ISelLowering.cpp.

◆ MAX_STUB_NUMBER

#define MAX_STUB_NUMBER   10

Definition at line 339 of file Mips16ISelLowering.cpp.

◆ P [1/5]

This currently compiles esp xmm0 movsd esp eax eax esp ret We should use not the dag combiner This is because dagcombine2 needs to be able to see through the X86ISD::Wrapper which DAGCombine can t really do The code for turning x load into a single vector load is target independent and should be moved to the dag combiner The code for turning x load into a vector load can only handle a direct load from a global or a direct load from the stack It should be generalized to handle any load from P   P_

Definition at line 358 of file Mips16ISelLowering.cpp.

◆ P [2/5]

#define P   P_ "sf_"

Definition at line 358 of file Mips16ISelLowering.cpp.

◆ P [3/5]

#define P   P_ "df_"

Definition at line 358 of file Mips16ISelLowering.cpp.

◆ P [4/5]

#define P   P_ "sc_"

Definition at line 358 of file Mips16ISelLowering.cpp.

◆ P [5/5]

#define P   P_ "dc_"

Definition at line 358 of file Mips16ISelLowering.cpp.

◆ P_

#define P_   "__mips16_call_stub_"

Definition at line 338 of file Mips16ISelLowering.cpp.

◆ T

#define T   P "0" , T1

◆ T1

#define T1   P "1", P "2", 0, 0, P "5", P "6", 0, 0, P "9", P "10"

Definition at line 340 of file Mips16ISelLowering.cpp.

Function Documentation

◆ Mips16WhichOp8uOr16simm()

static unsigned Mips16WhichOp8uOr16simm ( unsigned  shortOp,
unsigned  longOp,
int64_t  Imm 
)
static

Variable Documentation

◆ dcMips16Helper

const char* dcMips16Helper[MAX_STUB_NUMBER+1]
static
Initial value:
=
{ T }

Definition at line 359 of file Mips16ISelLowering.cpp.

◆ dfMips16Helper

const char* dfMips16Helper[MAX_STUB_NUMBER+1]
static
Initial value:
=
{ T }

Definition at line 351 of file Mips16ISelLowering.cpp.

◆ DontExpandCondPseudos16

cl::opt<bool> DontExpandCondPseudos16("mips16-dont-expand-cond-pseudo", cl::init(false), cl::desc("Don't expand conditional move related " "pseudos for Mips 16"), cl::Hidden)
static

◆ HardFloatLibCalls

const Mips16Libcall HardFloatLibCalls[]
static

Definition at line 57 of file Mips16ISelLowering.cpp.

◆ Mips16IntrinsicHelper

const Mips16IntrinsicHelperType Mips16IntrinsicHelper[]
static
Initial value:
= {
{"__fixunsdfsi", "__mips16_call_stub_2" },
{"ceil", "__mips16_call_stub_df_2"},
{"ceilf", "__mips16_call_stub_sf_1"},
{"copysign", "__mips16_call_stub_df_10"},
{"copysignf", "__mips16_call_stub_sf_5"},
{"cos", "__mips16_call_stub_df_2"},
{"cosf", "__mips16_call_stub_sf_1"},
{"exp2", "__mips16_call_stub_df_2"},
{"exp2f", "__mips16_call_stub_sf_1"},
{"floor", "__mips16_call_stub_df_2"},
{"floorf", "__mips16_call_stub_sf_1"},
{"log2", "__mips16_call_stub_df_2"},
{"log2f", "__mips16_call_stub_sf_1"},
{"nearbyint", "__mips16_call_stub_df_2"},
{"nearbyintf", "__mips16_call_stub_sf_1"},
{"rint", "__mips16_call_stub_df_2"},
{"rintf", "__mips16_call_stub_sf_1"},
{"sin", "__mips16_call_stub_df_2"},
{"sinf", "__mips16_call_stub_sf_1"},
{"sqrt", "__mips16_call_stub_df_2"},
{"sqrtf", "__mips16_call_stub_sf_1"},
{"trunc", "__mips16_call_stub_df_2"},
{"truncf", "__mips16_call_stub_sf_1"},
}

Definition at line 94 of file Mips16ISelLowering.cpp.

◆ scMips16Helper

const char* scMips16Helper[MAX_STUB_NUMBER+1]
static
Initial value:
=
{ T }

Definition at line 355 of file Mips16ISelLowering.cpp.

◆ sfMips16Helper

const char* sfMips16Helper[MAX_STUB_NUMBER+1]
static
Initial value:
=
{ T }

Definition at line 347 of file Mips16ISelLowering.cpp.

◆ vMips16Helper

const char* vMips16Helper[MAX_STUB_NUMBER+1]
static
Initial value:
=
{nullptr, T1 }

Definition at line 343 of file Mips16ISelLowering.cpp.

T
T1
#define T1
Definition: Mips16ISelLowering.cpp:340