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