HexagonGNUInfo.h revision 37b74a387bb3993387029859c2d9d051c41c724e
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 public: 20 enum CPUType { V3 = 0x2, V4 = 0x3, V5 }; 21 22 public: 23 explicit HexagonGNUInfo(const TargetOptions& pTargetOptions); 24 25 uint32_t machine() const { return llvm::ELF::EM_HEXAGON; } 26 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