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 1437b74a387bb3993387029859c2d9d051c41c724eStephen Hinesnamespace mcld { 15f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines 16f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines//===----------------------------------------------------------------------===// 17f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines// HexagonGNUInfo 18f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines//===----------------------------------------------------------------------===// 19f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen HinesHexagonGNUInfo::HexagonGNUInfo(const TargetOptions& pTargetOptions) 2037b74a387bb3993387029859c2d9d051c41c724eStephen Hines : GNUInfo(pTargetOptions.triple()), m_Options(pTargetOptions) { 21f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines} 22f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines 23f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines/// flags - the value of ElfXX_Ehdr::e_flags 2437b74a387bb3993387029859c2d9d051c41c724eStephen Hinesuint64_t HexagonGNUInfo::flags() const { 25f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines return llvm::StringSwitch<uint64_t>(m_Options.getTargetCPU()) 2637b74a387bb3993387029859c2d9d051c41c724eStephen Hines .Case("hexagonv4", V4) 2737b74a387bb3993387029859c2d9d051c41c724eStephen Hines .Case("hexagonv5", V5) 2837b74a387bb3993387029859c2d9d051c41c724eStephen Hines .Default(V4); 29f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines} 30f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines 3137b74a387bb3993387029859c2d9d051c41c724eStephen Hines} // namespace mcld 32