• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //===- HexagonGNUInfo.h ---------------------------------------------------===//
2 //
3 //                     The MCLinker Project
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 #ifndef TARGET_HEXAGON_HEXAGONGNUINFO_H_
10 #define TARGET_HEXAGON_HEXAGONGNUINFO_H_
11 #include "mcld/Target/GNUInfo.h"
12 #include "mcld/TargetOptions.h"
13 
14 #include <llvm/Support/ELF.h>
15 
16 namespace mcld {
17 
18 class HexagonGNUInfo : public GNUInfo {
19  public:
20   enum CPUType { V3 = 0x2, V4 = 0x3, V5 };
21 
22  public:
23   explicit HexagonGNUInfo(const TargetOptions& pTargetOptions);
24 
machine()25   uint32_t machine() const { return llvm::ELF::EM_HEXAGON; }
26 
defaultTextSegmentAddr()27   uint64_t defaultTextSegmentAddr() const { return 0x0; }
28 
29   /// flags - the value of ElfXX_Ehdr::e_flags
30   uint64_t flags() const;
31 
32  private:
33   const TargetOptions& m_Options;
34 };
35 
36 }  // namespace mcld
37 
38 #endif  // TARGET_HEXAGON_HEXAGONGNUINFO_H_
39