LLVM
17.0.0git
lib
Target
LoongArch
MCTargetDesc
LoongArchBaseInfo.h
Go to the documentation of this file.
1
//=- LoongArchBaseInfo.h - Top level definitions for LoongArch MC -*- C++ -*-=//
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
// This file contains small standalone enum definitions and helper function
10
// definitions for the LoongArch target useful for the compiler back-end and the
11
// MC libraries.
12
//
13
//===----------------------------------------------------------------------===//
14
#ifndef LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHBASEINFO_H
15
#define LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHBASEINFO_H
16
17
#include "
MCTargetDesc/LoongArchMCTargetDesc.h
"
18
#include "
llvm/ADT/StringRef.h
"
19
#include "
llvm/ADT/StringSwitch.h
"
20
#include "
llvm/MC/MCInstrDesc.h
"
21
#include "
llvm/MC/SubtargetFeature.h
"
22
23
namespace
llvm
{
24
25
// This namespace holds all of the target specific flags that instruction info
26
// tracks.
27
namespace
LoongArchII {
28
enum
{
29
MO_None
,
30
MO_CALL
,
31
MO_CALL_PLT
,
32
MO_PCREL_HI
,
33
MO_PCREL_LO
,
34
MO_GOT_PC_HI
,
35
MO_GOT_PC_LO
,
36
MO_LE_HI
,
37
MO_LE_LO
,
38
MO_IE_PC_HI
,
39
MO_IE_PC_LO
,
40
MO_LD_PC_HI
,
41
MO_GD_PC_HI
,
42
// TODO: Add more flags.
43
};
44
}
// end namespace LoongArchII
45
46
namespace
LoongArchABI {
47
enum
ABI
{
48
ABI_ILP32S
,
49
ABI_ILP32F
,
50
ABI_ILP32D
,
51
ABI_LP64S
,
52
ABI_LP64F
,
53
ABI_LP64D
,
54
ABI_Unknown
55
};
56
57
ABI
computeTargetABI
(
const
Triple
&TT,
StringRef
ABIName);
58
ABI
getTargetABI
(
StringRef
ABIName);
59
60
// Returns the register used to hold the stack pointer after realignment.
61
MCRegister
getBPReg
();
62
}
// end namespace LoongArchABI
63
64
}
// end namespace llvm
65
66
#endif
// LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHBASEINFO_H
LoongArchMCTargetDesc.h
MCInstrDesc.h
StringRef.h
StringSwitch.h
This file implements the StringSwitch template, which mimics a switch() statement whose cases are str...
SubtargetFeature.h
llvm::MCRegister
Wrapper class representing physical registers. Should be passed by value.
Definition:
MCRegister.h:24
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition:
StringRef.h:50
llvm::Triple
Triple - Helper class for working with autoconf configuration names.
Definition:
Triple.h:44
llvm::LoongArchABI::ABI
ABI
Definition:
LoongArchBaseInfo.h:47
llvm::LoongArchABI::ABI_LP64F
@ ABI_LP64F
Definition:
LoongArchBaseInfo.h:52
llvm::LoongArchABI::ABI_LP64S
@ ABI_LP64S
Definition:
LoongArchBaseInfo.h:51
llvm::LoongArchABI::ABI_ILP32S
@ ABI_ILP32S
Definition:
LoongArchBaseInfo.h:48
llvm::LoongArchABI::ABI_ILP32F
@ ABI_ILP32F
Definition:
LoongArchBaseInfo.h:49
llvm::LoongArchABI::ABI_ILP32D
@ ABI_ILP32D
Definition:
LoongArchBaseInfo.h:50
llvm::LoongArchABI::ABI_Unknown
@ ABI_Unknown
Definition:
LoongArchBaseInfo.h:54
llvm::LoongArchABI::ABI_LP64D
@ ABI_LP64D
Definition:
LoongArchBaseInfo.h:53
llvm::LoongArchABI::getBPReg
MCRegister getBPReg()
Definition:
LoongArchBaseInfo.cpp:98
llvm::LoongArchABI::computeTargetABI
ABI computeTargetABI(const Triple &TT, StringRef ABIName)
Definition:
LoongArchBaseInfo.cpp:24
llvm::LoongArchABI::getTargetABI
ABI getTargetABI(StringRef ABIName)
Definition:
LoongArchBaseInfo.cpp:83
llvm::LoongArchII::MO_PCREL_LO
@ MO_PCREL_LO
Definition:
LoongArchBaseInfo.h:33
llvm::LoongArchII::MO_GOT_PC_LO
@ MO_GOT_PC_LO
Definition:
LoongArchBaseInfo.h:35
llvm::LoongArchII::MO_LD_PC_HI
@ MO_LD_PC_HI
Definition:
LoongArchBaseInfo.h:40
llvm::LoongArchII::MO_CALL
@ MO_CALL
Definition:
LoongArchBaseInfo.h:30
llvm::LoongArchII::MO_GD_PC_HI
@ MO_GD_PC_HI
Definition:
LoongArchBaseInfo.h:41
llvm::LoongArchII::MO_IE_PC_LO
@ MO_IE_PC_LO
Definition:
LoongArchBaseInfo.h:39
llvm::LoongArchII::MO_GOT_PC_HI
@ MO_GOT_PC_HI
Definition:
LoongArchBaseInfo.h:34
llvm::LoongArchII::MO_LE_LO
@ MO_LE_LO
Definition:
LoongArchBaseInfo.h:37
llvm::LoongArchII::MO_PCREL_HI
@ MO_PCREL_HI
Definition:
LoongArchBaseInfo.h:32
llvm::LoongArchII::MO_IE_PC_HI
@ MO_IE_PC_HI
Definition:
LoongArchBaseInfo.h:38
llvm::LoongArchII::MO_None
@ MO_None
Definition:
LoongArchBaseInfo.h:29
llvm::LoongArchII::MO_LE_HI
@ MO_LE_HI
Definition:
LoongArchBaseInfo.h:36
llvm::LoongArchII::MO_CALL_PLT
@ MO_CALL_PLT
Definition:
LoongArchBaseInfo.h:31
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:
AddressRanges.h:18
Generated on Thu Jun 8 2023 03:17:21 for LLVM by
1.9.6