LLVM
20.0.0git
include
llvm
Support
RISCVAttributes.h
Go to the documentation of this file.
1
//===-- RISCVAttributes.h - RISCV Attributes --------------------*- 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 enumerations for RISCV attributes as defined in RISC-V
10
// ELF psABI specification.
11
//
12
// RISC-V ELF psABI specification
13
//
14
// https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md
15
//
16
//===----------------------------------------------------------------------===//
17
#ifndef LLVM_SUPPORT_RISCVATTRIBUTES_H
18
#define LLVM_SUPPORT_RISCVATTRIBUTES_H
19
20
#include "
llvm/Support/ELFAttributes.h
"
21
22
namespace
llvm
{
23
namespace
RISCVAttrs {
24
25
const
TagNameMap
&
getRISCVAttributeTags
();
26
27
enum
AttrType
:
unsigned
{
28
// Attribute types in ELF/.riscv.attributes.
29
STACK_ALIGN
= 4,
30
ARCH
= 5,
31
UNALIGNED_ACCESS
= 6,
32
PRIV_SPEC
= 8,
33
PRIV_SPEC_MINOR
= 10,
34
PRIV_SPEC_REVISION
= 12,
35
ATOMIC_ABI
= 14,
36
};
37
38
enum class
RISCVAtomicAbiTag
:
unsigned
{
39
// Values for Tag_RISCV_atomic_abi
40
// Defined at
41
// https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-elf.adoc#tag_riscv_atomic_abi-14-uleb128version
42
UNKNOWN
= 0,
43
A6C
= 1,
44
A6S
= 2,
45
A7
= 3,
46
};
47
48
enum
{
NOT_ALLOWED
= 0,
ALLOWED
= 1 };
49
50
}
// namespace RISCVAttrs
51
}
// namespace llvm
52
53
#endif
ELFAttributes.h
llvm::ArrayRef< TagNameItem >
llvm::RISCVAttrs::NOT_ALLOWED
@ NOT_ALLOWED
Definition:
RISCVAttributes.h:48
llvm::RISCVAttrs::ALLOWED
@ ALLOWED
Definition:
RISCVAttributes.h:48
llvm::RISCVAttrs::RISCVAtomicAbiTag
RISCVAtomicAbiTag
Definition:
RISCVAttributes.h:38
llvm::RISCVAttrs::RISCVAtomicAbiTag::A6S
@ A6S
llvm::RISCVAttrs::RISCVAtomicAbiTag::UNKNOWN
@ UNKNOWN
llvm::RISCVAttrs::RISCVAtomicAbiTag::A6C
@ A6C
llvm::RISCVAttrs::RISCVAtomicAbiTag::A7
@ A7
llvm::RISCVAttrs::AttrType
AttrType
Definition:
RISCVAttributes.h:27
llvm::RISCVAttrs::ARCH
@ ARCH
Definition:
RISCVAttributes.h:30
llvm::RISCVAttrs::PRIV_SPEC_MINOR
@ PRIV_SPEC_MINOR
Definition:
RISCVAttributes.h:33
llvm::RISCVAttrs::STACK_ALIGN
@ STACK_ALIGN
Definition:
RISCVAttributes.h:29
llvm::RISCVAttrs::ATOMIC_ABI
@ ATOMIC_ABI
Definition:
RISCVAttributes.h:35
llvm::RISCVAttrs::PRIV_SPEC
@ PRIV_SPEC
Definition:
RISCVAttributes.h:32
llvm::RISCVAttrs::UNALIGNED_ACCESS
@ UNALIGNED_ACCESS
Definition:
RISCVAttributes.h:31
llvm::RISCVAttrs::PRIV_SPEC_REVISION
@ PRIV_SPEC_REVISION
Definition:
RISCVAttributes.h:34
llvm::RISCVAttrs::getRISCVAttributeTags
const TagNameMap & getRISCVAttributeTags()
Definition:
RISCVAttributes.cpp:25
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:
AddressRanges.h:18
Generated on Fri Nov 22 2024 15:44:16 for LLVM by
1.9.6