1f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines//===- HexagonGNUInfo.cpp -------------------------------------------------===// 2f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines// 3f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines// The MCLinker Project 4f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines// 5f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines// This file is distributed under the University of Illinois Open Source 6f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines// License. See LICENSE.TXT for details. 7f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines// 8f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines//===----------------------------------------------------------------------===// 9f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines#include "HexagonGNUInfo.h" 10f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines 11f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines#include <llvm/ADT/StringRef.h> 12f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines#include <llvm/ADT/StringSwitch.h> 13f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines 14f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hinesusing namespace mcld; 15f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines 16f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines//===----------------------------------------------------------------------===// 17f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines// HexagonGNUInfo 18f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines//===----------------------------------------------------------------------===// 19f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen HinesHexagonGNUInfo::HexagonGNUInfo(const TargetOptions& pTargetOptions) 20f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines : GNUInfo(pTargetOptions.triple()), m_Options(pTargetOptions) { 21f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines} 22f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines 23f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines/// flags - the value of ElfXX_Ehdr::e_flags 24f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hinesuint64_t HexagonGNUInfo::flags() const 25f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines{ 26f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines return llvm::StringSwitch<uint64_t>(m_Options.getTargetCPU()) 27f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines .Case("hexagonv4", V4) 28f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines .Case("hexagonv5", V5) 29f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines .Default(V4); 30f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines} 31f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines 32