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