annotate llvm/lib/Target/Hexagon/HexagonDepArch.h @ 207:2e18cbf3894f

LLVM12
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Jun 2021 06:07:14 +0900
parents 1d019706d866
children c4bab56944e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 //===----------------------------------------------------------------------===//
anatofuz
parents:
diff changeset
2 //
anatofuz
parents:
diff changeset
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
anatofuz
parents:
diff changeset
4 // See https://llvm.org/LICENSE.txt for license information.
anatofuz
parents:
diff changeset
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
anatofuz
parents:
diff changeset
6 //
anatofuz
parents:
diff changeset
7 //===----------------------------------------------------------------------===//
anatofuz
parents:
diff changeset
8 // Automatically generated file, do not edit!
anatofuz
parents:
diff changeset
9 //===----------------------------------------------------------------------===//
anatofuz
parents:
diff changeset
10
anatofuz
parents:
diff changeset
11
anatofuz
parents:
diff changeset
12 #ifndef LLVM_LIB_TARGET_HEXAGON_HEXAGONDEPARCH_H
anatofuz
parents:
diff changeset
13 #define LLVM_LIB_TARGET_HEXAGON_HEXAGONDEPARCH_H
anatofuz
parents:
diff changeset
14
anatofuz
parents:
diff changeset
15 #include "llvm/ADT/ArrayRef.h"
anatofuz
parents:
diff changeset
16 #include "llvm/ADT/StringRef.h"
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
17 #include "llvm/BinaryFormat/ELF.h"
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
18
150
anatofuz
parents:
diff changeset
19 #include <map>
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
20 #include <string>
150
anatofuz
parents:
diff changeset
21
anatofuz
parents:
diff changeset
22 namespace llvm {
anatofuz
parents:
diff changeset
23 namespace Hexagon {
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
24 enum class ArchEnum { NoArch, Generic, V5, V55, V60, V62, V65, V66, V67, V68 };
150
anatofuz
parents:
diff changeset
25
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
26 static constexpr unsigned ArchValsNumArray[] = {5, 55, 60, 62, 65, 66, 67, 68};
150
anatofuz
parents:
diff changeset
27 static constexpr ArrayRef<unsigned> ArchValsNum(ArchValsNumArray);
anatofuz
parents:
diff changeset
28
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
29 static constexpr StringLiteral ArchValsTextArray[] = { "v5", "v55", "v60", "v62", "v65", "v66", "v67", "v68" };
150
anatofuz
parents:
diff changeset
30 static constexpr ArrayRef<StringLiteral> ArchValsText(ArchValsTextArray);
anatofuz
parents:
diff changeset
31
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
32 static constexpr StringLiteral CpuValsTextArray[] = { "hexagonv5", "hexagonv55", "hexagonv60", "hexagonv62", "hexagonv65", "hexagonv66", "hexagonv67", "hexagonv67t", "hexagonv68" };
150
anatofuz
parents:
diff changeset
33 static constexpr ArrayRef<StringLiteral> CpuValsText(CpuValsTextArray);
anatofuz
parents:
diff changeset
34
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
35 static constexpr StringLiteral CpuNickTextArray[] = { "v5", "v55", "v60", "v62", "v65", "v66", "v67", "v67t", "v68" };
150
anatofuz
parents:
diff changeset
36 static constexpr ArrayRef<StringLiteral> CpuNickText(CpuNickTextArray);
anatofuz
parents:
diff changeset
37
anatofuz
parents:
diff changeset
38 static const std::map<std::string, ArchEnum> CpuTable{
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
39 {"generic", Hexagon::ArchEnum::V5},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
40 {"hexagonv5", Hexagon::ArchEnum::V5},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
41 {"hexagonv55", Hexagon::ArchEnum::V55},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
42 {"hexagonv60", Hexagon::ArchEnum::V60},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
43 {"hexagonv62", Hexagon::ArchEnum::V62},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
44 {"hexagonv65", Hexagon::ArchEnum::V65},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
45 {"hexagonv66", Hexagon::ArchEnum::V66},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
46 {"hexagonv67", Hexagon::ArchEnum::V67},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
47 {"hexagonv67t", Hexagon::ArchEnum::V67},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
48 {"hexagonv68", Hexagon::ArchEnum::V68},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
49 };
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
50
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
51 static const std::map<std::string, unsigned> ElfFlagsByCpuStr = {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
52 {"generic", llvm::ELF::EF_HEXAGON_MACH_V5},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
53 {"hexagonv5", llvm::ELF::EF_HEXAGON_MACH_V5},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
54 {"hexagonv55", llvm::ELF::EF_HEXAGON_MACH_V55},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
55 {"hexagonv60", llvm::ELF::EF_HEXAGON_MACH_V60},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
56 {"hexagonv62", llvm::ELF::EF_HEXAGON_MACH_V62},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
57 {"hexagonv65", llvm::ELF::EF_HEXAGON_MACH_V65},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
58 {"hexagonv66", llvm::ELF::EF_HEXAGON_MACH_V66},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
59 {"hexagonv67", llvm::ELF::EF_HEXAGON_MACH_V67},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
60 {"hexagonv67t", llvm::ELF::EF_HEXAGON_MACH_V67T},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
61 {"hexagonv68", llvm::ELF::EF_HEXAGON_MACH_V68},
150
anatofuz
parents:
diff changeset
62 };
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
63 static const std::map<unsigned, std::string> ElfArchByMachFlags = {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
64 {llvm::ELF::EF_HEXAGON_MACH_V5, "V5"},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
65 {llvm::ELF::EF_HEXAGON_MACH_V55, "V55"},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
66 {llvm::ELF::EF_HEXAGON_MACH_V60, "V60"},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
67 {llvm::ELF::EF_HEXAGON_MACH_V62, "V62"},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
68 {llvm::ELF::EF_HEXAGON_MACH_V65, "V65"},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
69 {llvm::ELF::EF_HEXAGON_MACH_V66, "V66"},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
70 {llvm::ELF::EF_HEXAGON_MACH_V67, "V67"},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
71 {llvm::ELF::EF_HEXAGON_MACH_V67T, "V67T"},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
72 {llvm::ELF::EF_HEXAGON_MACH_V68, "V68"},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
73 };
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
74 static const std::map<unsigned, std::string> ElfCpuByMachFlags = {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
75 {llvm::ELF::EF_HEXAGON_MACH_V5, "hexagonv5"},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
76 {llvm::ELF::EF_HEXAGON_MACH_V55, "hexagonv55"},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
77 {llvm::ELF::EF_HEXAGON_MACH_V60, "hexagonv60"},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
78 {llvm::ELF::EF_HEXAGON_MACH_V62, "hexagonv62"},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
79 {llvm::ELF::EF_HEXAGON_MACH_V65, "hexagonv65"},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
80 {llvm::ELF::EF_HEXAGON_MACH_V66, "hexagonv66"},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
81 {llvm::ELF::EF_HEXAGON_MACH_V67, "hexagonv67"},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
82 {llvm::ELF::EF_HEXAGON_MACH_V67T, "hexagonv67t"},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
83 {llvm::ELF::EF_HEXAGON_MACH_V68, "hexagonv68"},
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
84 };
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
85
150
anatofuz
parents:
diff changeset
86 } // namespace Hexagon
anatofuz
parents:
diff changeset
87 } // namespace llvm;
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
88
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
89 #endif // LLVM_LIB_TARGET_HEXAGON_HEXAGONDEPARCH_H