16f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines//===- HexagonGNUInfo.h ---------------------------------------------------===// 26f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines// 36f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines// The MCLinker Project 46f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines// 56f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines// This file is distributed under the University of Illinois Open Source 66f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines// License. See LICENSE.TXT for details. 76f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines// 86f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines//===----------------------------------------------------------------------===// 9551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines#ifndef TARGET_HEXAGON_HEXAGONGNUINFO_H 10551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines#define TARGET_HEXAGON_HEXAGONGNUINFO_H 116f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines#include <mcld/Target/GNUInfo.h> 12f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines#include <mcld/TargetOptions.h> 136f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 146f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines#include <llvm/Support/ELF.h> 156f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 166f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinesnamespace mcld { 176f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 186f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinesclass HexagonGNUInfo : public GNUInfo 196f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines{ 206f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinespublic: 21f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines enum CPUType { 22f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines V3 = 0x2, 23f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines V4 = 0x3, 24f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines V5 25f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines }; 26f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines 27f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hinespublic: 28f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines HexagonGNUInfo(const TargetOptions& pTargetOptions); 296f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 306f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines uint32_t machine() const { return llvm::ELF::EM_HEXAGON; } 316f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 326f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines uint64_t defaultTextSegmentAddr() const { return 0x0; } 336f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 346f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines /// flags - the value of ElfXX_Ehdr::e_flags 35f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines uint64_t flags() const; 36f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines 37f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hinesprivate: 38f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines const TargetOptions& m_Options; 396f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines}; 406f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 416f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines} // namespace of mcld 426f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 436f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines#endif 446f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 45