HexagonGNUInfo.h revision 551ae4ebd3e9d137ea668fb83ae4a55b8cfba451
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
16namespace mcld {
17
18class HexagonGNUInfo : public GNUInfo
19{
20public:
21  enum CPUType {
22    V3 = 0x2,
23    V4 = 0x3,
24    V5
25  };
26
27public:
28  HexagonGNUInfo(const TargetOptions& pTargetOptions);
29
30  uint32_t machine() const { return llvm::ELF::EM_HEXAGON; }
31
32  uint64_t defaultTextSegmentAddr() const { return 0x0; }
33
34  /// flags - the value of ElfXX_Ehdr::e_flags
35  uint64_t flags() const;
36
37private:
38  const TargetOptions& m_Options;
39};
40
41} // namespace of mcld
42
43#endif
44
45