| 1 | //===-- ARMBuildAttrs.cpp - ARM Build Attributes --------------------------===// |
| 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 | #include "llvm/Support/ARMBuildAttributes.h" |
| 10 | |
| 11 | using namespace llvm; |
| 12 | |
| 13 | static const TagNameItem tagData[] = { |
| 14 | {.attr: ARMBuildAttrs::File, .tagName: "Tag_File" }, |
| 15 | {.attr: ARMBuildAttrs::Section, .tagName: "Tag_Section" }, |
| 16 | {.attr: ARMBuildAttrs::Symbol, .tagName: "Tag_Symbol" }, |
| 17 | {.attr: ARMBuildAttrs::CPU_raw_name, .tagName: "Tag_CPU_raw_name" }, |
| 18 | {.attr: ARMBuildAttrs::CPU_name, .tagName: "Tag_CPU_name" }, |
| 19 | {.attr: ARMBuildAttrs::CPU_arch, .tagName: "Tag_CPU_arch" }, |
| 20 | {.attr: ARMBuildAttrs::CPU_arch_profile, .tagName: "Tag_CPU_arch_profile" }, |
| 21 | {.attr: ARMBuildAttrs::ARM_ISA_use, .tagName: "Tag_ARM_ISA_use" }, |
| 22 | {.attr: ARMBuildAttrs::THUMB_ISA_use, .tagName: "Tag_THUMB_ISA_use" }, |
| 23 | {.attr: ARMBuildAttrs::FP_arch, .tagName: "Tag_FP_arch" }, |
| 24 | {.attr: ARMBuildAttrs::WMMX_arch, .tagName: "Tag_WMMX_arch" }, |
| 25 | {.attr: ARMBuildAttrs::Advanced_SIMD_arch, .tagName: "Tag_Advanced_SIMD_arch" }, |
| 26 | {.attr: ARMBuildAttrs::MVE_arch, .tagName: "Tag_MVE_arch" }, |
| 27 | {.attr: ARMBuildAttrs::PCS_config, .tagName: "Tag_PCS_config" }, |
| 28 | {.attr: ARMBuildAttrs::ABI_PCS_R9_use, .tagName: "Tag_ABI_PCS_R9_use" }, |
| 29 | {.attr: ARMBuildAttrs::ABI_PCS_RW_data, .tagName: "Tag_ABI_PCS_RW_data" }, |
| 30 | {.attr: ARMBuildAttrs::ABI_PCS_RO_data, .tagName: "Tag_ABI_PCS_RO_data" }, |
| 31 | {.attr: ARMBuildAttrs::ABI_PCS_GOT_use, .tagName: "Tag_ABI_PCS_GOT_use" }, |
| 32 | {.attr: ARMBuildAttrs::ABI_PCS_wchar_t, .tagName: "Tag_ABI_PCS_wchar_t" }, |
| 33 | {.attr: ARMBuildAttrs::ABI_FP_rounding, .tagName: "Tag_ABI_FP_rounding" }, |
| 34 | {.attr: ARMBuildAttrs::ABI_FP_denormal, .tagName: "Tag_ABI_FP_denormal" }, |
| 35 | {.attr: ARMBuildAttrs::ABI_FP_exceptions, .tagName: "Tag_ABI_FP_exceptions" }, |
| 36 | {.attr: ARMBuildAttrs::ABI_FP_user_exceptions, .tagName: "Tag_ABI_FP_user_exceptions" }, |
| 37 | {.attr: ARMBuildAttrs::ABI_FP_number_model, .tagName: "Tag_ABI_FP_number_model" }, |
| 38 | {.attr: ARMBuildAttrs::ABI_align_needed, .tagName: "Tag_ABI_align_needed" }, |
| 39 | {.attr: ARMBuildAttrs::ABI_align_preserved, .tagName: "Tag_ABI_align_preserved" }, |
| 40 | {.attr: ARMBuildAttrs::ABI_enum_size, .tagName: "Tag_ABI_enum_size" }, |
| 41 | {.attr: ARMBuildAttrs::ABI_HardFP_use, .tagName: "Tag_ABI_HardFP_use" }, |
| 42 | {.attr: ARMBuildAttrs::ABI_VFP_args, .tagName: "Tag_ABI_VFP_args" }, |
| 43 | {.attr: ARMBuildAttrs::ABI_WMMX_args, .tagName: "Tag_ABI_WMMX_args" }, |
| 44 | {.attr: ARMBuildAttrs::ABI_optimization_goals, .tagName: "Tag_ABI_optimization_goals" }, |
| 45 | {.attr: ARMBuildAttrs::ABI_FP_optimization_goals, .tagName: "Tag_ABI_FP_optimization_goals" }, |
| 46 | {.attr: ARMBuildAttrs::compatibility, .tagName: "Tag_compatibility" }, |
| 47 | {.attr: ARMBuildAttrs::CPU_unaligned_access, .tagName: "Tag_CPU_unaligned_access" }, |
| 48 | {.attr: ARMBuildAttrs::FP_HP_extension, .tagName: "Tag_FP_HP_extension" }, |
| 49 | {.attr: ARMBuildAttrs::ABI_FP_16bit_format, .tagName: "Tag_ABI_FP_16bit_format" }, |
| 50 | {.attr: ARMBuildAttrs::MPextension_use, .tagName: "Tag_MPextension_use" }, |
| 51 | {.attr: ARMBuildAttrs::DIV_use, .tagName: "Tag_DIV_use" }, |
| 52 | {.attr: ARMBuildAttrs::DSP_extension, .tagName: "Tag_DSP_extension" }, |
| 53 | {.attr: ARMBuildAttrs::PAC_extension, .tagName: "Tag_PAC_extension" }, |
| 54 | {.attr: ARMBuildAttrs::BTI_extension, .tagName: "Tag_BTI_extension" }, |
| 55 | {.attr: ARMBuildAttrs::BTI_use, .tagName: "Tag_BTI_use" }, |
| 56 | {.attr: ARMBuildAttrs::PACRET_use, .tagName: "Tag_PACRET_use" }, |
| 57 | {.attr: ARMBuildAttrs::nodefaults, .tagName: "Tag_nodefaults" }, |
| 58 | {.attr: ARMBuildAttrs::also_compatible_with, .tagName: "Tag_also_compatible_with" }, |
| 59 | {.attr: ARMBuildAttrs::T2EE_use, .tagName: "Tag_T2EE_use" }, |
| 60 | {.attr: ARMBuildAttrs::conformance, .tagName: "Tag_conformance" }, |
| 61 | {.attr: ARMBuildAttrs::Virtualization_use, .tagName: "Tag_Virtualization_use" }, |
| 62 | |
| 63 | // Legacy Names |
| 64 | {.attr: ARMBuildAttrs::FP_arch, .tagName: "Tag_VFP_arch" }, |
| 65 | {.attr: ARMBuildAttrs::FP_HP_extension, .tagName: "Tag_VFP_HP_extension" }, |
| 66 | {.attr: ARMBuildAttrs::ABI_align_needed, .tagName: "Tag_ABI_align8_needed" }, |
| 67 | {.attr: ARMBuildAttrs::ABI_align_preserved, .tagName: "Tag_ABI_align8_preserved" }, |
| 68 | }; |
| 69 | |
| 70 | constexpr TagNameMap ARMAttributeTags{tagData}; |
| 71 | const TagNameMap &llvm::ARMBuildAttrs::getARMAttributeTags() { |
| 72 | return ARMAttributeTags; |
| 73 | } |
| 74 | |