16f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines//===- HexagonGOT.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_HEXAGONGOT_H 10551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines#define TARGET_HEXAGON_HEXAGONGOT_H 116f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 126f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines#include <mcld/Target/GOT.h> 136f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 146f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinesnamespace mcld { 156f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 166f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinesclass LDSection; 176f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinesclass SectionData; 186f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 196f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines/** \class HexagonGOTEntry 206f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines * \brief GOT Entry with size of 4 bytes 216f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines */ 226f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinesclass HexagonGOTEntry : public GOT::Entry<4> 236f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines{ 246f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinespublic: 256f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines HexagonGOTEntry(uint64_t pContent, SectionData* pParent) 266f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines : GOT::Entry<4>(pContent, pParent) 276f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines {} 286f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines}; 296f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 306f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines/** \class HexagonGOT 316f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines * \brief Hexagon Global Offset Table. 326f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines */ 336f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 346f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinesclass HexagonGOT : public GOT 356f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines{ 366f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinespublic: 376f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines HexagonGOT(LDSection& pSection); 386f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 396f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines ~HexagonGOT(); 406f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 4187f34658dec9097d987d254a990ea7f311bfc95fStephen Hines HexagonGOTEntry* create(); 426f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines}; 436f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 446f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines} // namespace of mcld 456f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 466f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines#endif 476f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 48