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