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