LLVM
8.0.1
include
llvm
Support
MipsABIFlags.h
Go to the documentation of this file.
1
//===--- MipsABIFlags.h - MIPS ABI flags ----------------------------------===//
2
//
3
// The LLVM Compiler Infrastructure
4
//
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
7
//
8
//===----------------------------------------------------------------------===//
9
//
10
// This file defines the constants for the ABI flags structure contained
11
// in the .MIPS.abiflags section.
12
//
13
// https://dmz-portal.mips.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking
14
//
15
//===----------------------------------------------------------------------===//
16
17
#ifndef LLVM_SUPPORT_MIPSABIFLAGS_H
18
#define LLVM_SUPPORT_MIPSABIFLAGS_H
19
20
namespace
llvm
{
21
namespace
Mips {
22
23
// Values for the xxx_size bytes of an ABI flags structure.
24
enum
AFL_REG
{
25
AFL_REG_NONE
= 0x00,
// No registers
26
AFL_REG_32
= 0x01,
// 32-bit registers
27
AFL_REG_64
= 0x02,
// 64-bit registers
28
AFL_REG_128
= 0x03
// 128-bit registers
29
};
30
31
// Masks for the ases word of an ABI flags structure.
32
enum
AFL_ASE
{
33
AFL_ASE_DSP
= 0x00000001,
// DSP ASE
34
AFL_ASE_DSPR2
= 0x00000002,
// DSP R2 ASE
35
AFL_ASE_EVA
= 0x00000004,
// Enhanced VA Scheme
36
AFL_ASE_MCU
= 0x00000008,
// MCU (MicroController) ASE
37
AFL_ASE_MDMX
= 0x00000010,
// MDMX ASE
38
AFL_ASE_MIPS3D
= 0x00000020,
// MIPS-3D ASE
39
AFL_ASE_MT
= 0x00000040,
// MT ASE
40
AFL_ASE_SMARTMIPS
= 0x00000080,
// SmartMIPS ASE
41
AFL_ASE_VIRT
= 0x00000100,
// VZ ASE
42
AFL_ASE_MSA
= 0x00000200,
// MSA ASE
43
AFL_ASE_MIPS16
= 0x00000400,
// MIPS16 ASE
44
AFL_ASE_MICROMIPS
= 0x00000800,
// MICROMIPS ASE
45
AFL_ASE_XPA
= 0x00001000,
// XPA ASE
46
AFL_ASE_CRC
= 0x00008000,
// CRC ASE
47
AFL_ASE_GINV
= 0x00020000
// GINV ASE
48
};
49
50
// Values for the isa_ext word of an ABI flags structure.
51
enum
AFL_EXT
{
52
AFL_EXT_NONE
= 0,
// None
53
AFL_EXT_XLR
= 1,
// RMI Xlr instruction
54
AFL_EXT_OCTEON2
= 2,
// Cavium Networks Octeon2
55
AFL_EXT_OCTEONP
= 3,
// Cavium Networks OcteonP
56
AFL_EXT_LOONGSON_3A
= 4,
// Loongson 3A
57
AFL_EXT_OCTEON
= 5,
// Cavium Networks Octeon
58
AFL_EXT_5900
= 6,
// MIPS R5900 instruction
59
AFL_EXT_4650
= 7,
// MIPS R4650 instruction
60
AFL_EXT_4010
= 8,
// LSI R4010 instruction
61
AFL_EXT_4100
= 9,
// NEC VR4100 instruction
62
AFL_EXT_3900
= 10,
// Toshiba R3900 instruction
63
AFL_EXT_10000
= 11,
// MIPS R10000 instruction
64
AFL_EXT_SB1
= 12,
// Broadcom SB-1 instruction
65
AFL_EXT_4111
= 13,
// NEC VR4111/VR4181 instruction
66
AFL_EXT_4120
= 14,
// NEC VR4120 instruction
67
AFL_EXT_5400
= 15,
// NEC VR5400 instruction
68
AFL_EXT_5500
= 16,
// NEC VR5500 instruction
69
AFL_EXT_LOONGSON_2E
= 17,
// ST Microelectronics Loongson 2E
70
AFL_EXT_LOONGSON_2F
= 18,
// ST Microelectronics Loongson 2F
71
AFL_EXT_OCTEON3
= 19
// Cavium Networks Octeon3
72
};
73
74
// Values for the flags1 word of an ABI flags structure.
75
enum
AFL_FLAGS1
{
AFL_FLAGS1_ODDSPREG
= 1 };
76
77
// MIPS object attribute tags
78
enum
{
79
Tag_GNU_MIPS_ABI_FP
= 4,
// Floating-point ABI used by this object file
80
Tag_GNU_MIPS_ABI_MSA
= 8,
// MSA ABI used by this object file
81
};
82
83
// Values for the fp_abi word of an ABI flags structure
84
// and for the Tag_GNU_MIPS_ABI_FP attribute tag.
85
enum
Val_GNU_MIPS_ABI_FP
{
86
Val_GNU_MIPS_ABI_FP_ANY
= 0,
// not tagged
87
Val_GNU_MIPS_ABI_FP_DOUBLE
= 1,
// hard float / -mdouble-float
88
Val_GNU_MIPS_ABI_FP_SINGLE
= 2,
// hard float / -msingle-float
89
Val_GNU_MIPS_ABI_FP_SOFT
= 3,
// soft float
90
Val_GNU_MIPS_ABI_FP_OLD_64
= 4,
// -mips32r2 -mfp64
91
Val_GNU_MIPS_ABI_FP_XX
= 5,
// -mfpxx
92
Val_GNU_MIPS_ABI_FP_64
= 6,
// -mips32r2 -mfp64
93
Val_GNU_MIPS_ABI_FP_64A
= 7
// -mips32r2 -mfp64 -mno-odd-spreg
94
};
95
96
// Values for the Tag_GNU_MIPS_ABI_MSA attribute tag.
97
enum
Val_GNU_MIPS_ABI_MSA
{
98
Val_GNU_MIPS_ABI_MSA_ANY
= 0,
// not tagged
99
Val_GNU_MIPS_ABI_MSA_128
= 1
// 128-bit MSA
100
};
101
}
102
}
103
104
#endif
llvm
This class represents lattice values for constants.
Definition:
AllocatorList.h:24
llvm::Mips::AFL_EXT_4111
Definition:
MipsABIFlags.h:65
llvm::Mips::Val_GNU_MIPS_ABI_FP_DOUBLE
Definition:
MipsABIFlags.h:87
llvm::Mips::Val_GNU_MIPS_ABI_FP_64A
Definition:
MipsABIFlags.h:93
llvm::Mips::Tag_GNU_MIPS_ABI_FP
Definition:
MipsABIFlags.h:79
llvm::Mips::AFL_ASE_MDMX
Definition:
MipsABIFlags.h:37
llvm::Mips::AFL_EXT_4120
Definition:
MipsABIFlags.h:66
llvm::Mips::AFL_EXT_OCTEON
Definition:
MipsABIFlags.h:57
llvm::Mips::AFL_ASE_DSPR2
Definition:
MipsABIFlags.h:34
llvm::Mips::AFL_EXT_OCTEONP
Definition:
MipsABIFlags.h:55
llvm::Mips::Tag_GNU_MIPS_ABI_MSA
Definition:
MipsABIFlags.h:80
llvm::Mips::AFL_REG_32
Definition:
MipsABIFlags.h:26
llvm::Mips::AFL_EXT_4650
Definition:
MipsABIFlags.h:59
llvm::Mips::AFL_EXT_LOONGSON_2F
Definition:
MipsABIFlags.h:70
llvm::Mips::AFL_FLAGS1
AFL_FLAGS1
Definition:
MipsABIFlags.h:75
llvm::Mips::AFL_ASE_GINV
Definition:
MipsABIFlags.h:47
llvm::Mips::AFL_EXT_OCTEON2
Definition:
MipsABIFlags.h:54
llvm::Mips::AFL_ASE_DSP
Definition:
MipsABIFlags.h:33
llvm::Mips::Val_GNU_MIPS_ABI_MSA
Val_GNU_MIPS_ABI_MSA
Definition:
MipsABIFlags.h:97
llvm::Mips::AFL_REG_128
Definition:
MipsABIFlags.h:28
llvm::Mips::AFL_ASE
AFL_ASE
Definition:
MipsABIFlags.h:32
llvm::Mips::Val_GNU_MIPS_ABI_FP_64
Definition:
MipsABIFlags.h:92
llvm::Mips::AFL_ASE_SMARTMIPS
Definition:
MipsABIFlags.h:40
llvm::Mips::AFL_ASE_MT
Definition:
MipsABIFlags.h:39
llvm::Mips::Val_GNU_MIPS_ABI_FP_SINGLE
Definition:
MipsABIFlags.h:88
llvm::Mips::AFL_ASE_MCU
Definition:
MipsABIFlags.h:36
llvm::Mips::AFL_FLAGS1_ODDSPREG
Definition:
MipsABIFlags.h:75
llvm::Mips::AFL_ASE_VIRT
Definition:
MipsABIFlags.h:41
llvm::Mips::Val_GNU_MIPS_ABI_FP_OLD_64
Definition:
MipsABIFlags.h:90
llvm::Mips::AFL_EXT_NONE
Definition:
MipsABIFlags.h:52
llvm::Mips::AFL_REG_NONE
Definition:
MipsABIFlags.h:25
llvm::Mips::AFL_ASE_MIPS3D
Definition:
MipsABIFlags.h:38
llvm::Mips::AFL_ASE_MIPS16
Definition:
MipsABIFlags.h:43
llvm::Mips::AFL_ASE_CRC
Definition:
MipsABIFlags.h:46
llvm::Mips::AFL_EXT_10000
Definition:
MipsABIFlags.h:63
llvm::Mips::AFL_EXT_5500
Definition:
MipsABIFlags.h:68
llvm::Mips::AFL_EXT_5400
Definition:
MipsABIFlags.h:67
llvm::Mips::Val_GNU_MIPS_ABI_FP_XX
Definition:
MipsABIFlags.h:91
llvm::Mips::AFL_EXT_LOONGSON_3A
Definition:
MipsABIFlags.h:56
llvm::Mips::AFL_EXT_3900
Definition:
MipsABIFlags.h:62
llvm::Mips::AFL_EXT_SB1
Definition:
MipsABIFlags.h:64
llvm::Mips::AFL_EXT_OCTEON3
Definition:
MipsABIFlags.h:71
llvm::Mips::AFL_EXT_5900
Definition:
MipsABIFlags.h:58
llvm::Mips::AFL_ASE_MICROMIPS
Definition:
MipsABIFlags.h:44
llvm::Mips::AFL_ASE_MSA
Definition:
MipsABIFlags.h:42
llvm::Mips::Val_GNU_MIPS_ABI_FP
Val_GNU_MIPS_ABI_FP
Definition:
MipsABIFlags.h:85
llvm::Mips::Val_GNU_MIPS_ABI_MSA_ANY
Definition:
MipsABIFlags.h:98
llvm::Mips::AFL_EXT_XLR
Definition:
MipsABIFlags.h:53
llvm::Mips::Val_GNU_MIPS_ABI_FP_SOFT
Definition:
MipsABIFlags.h:89
llvm::Mips::AFL_REG_64
Definition:
MipsABIFlags.h:27
llvm::Mips::AFL_EXT_LOONGSON_2E
Definition:
MipsABIFlags.h:69
llvm::Mips::Val_GNU_MIPS_ABI_MSA_128
Definition:
MipsABIFlags.h:99
llvm::Mips::AFL_EXT
AFL_EXT
Definition:
MipsABIFlags.h:51
llvm::Mips::AFL_REG
AFL_REG
Definition:
MipsABIFlags.h:24
llvm::Mips::AFL_ASE_EVA
Definition:
MipsABIFlags.h:35
llvm::Mips::AFL_EXT_4010
Definition:
MipsABIFlags.h:60
llvm::Mips::AFL_EXT_4100
Definition:
MipsABIFlags.h:61
llvm::Mips::Val_GNU_MIPS_ABI_FP_ANY
Definition:
MipsABIFlags.h:86
llvm::Mips::AFL_ASE_XPA
Definition:
MipsABIFlags.h:45
Generated on Sun Dec 20 2020 13:53:36 for LLVM by
1.8.13