1//===- HexagonGOTPLT.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_HEXAGONGOTPLT_H
10#define TARGET_HEXAGON_HEXAGONGOTPLT_H
11
12#include <llvm/ADT/DenseMap.h>
13#include "HexagonGOT.h"
14
15namespace mcld {
16
17class HexagonPLT;
18class LDSection;
19
20// Hexagon creates 4 entries for the GOTPLT0 entry
21const unsigned int HexagonGOTPLT0Num = 4;
22
23/** \class HexagonGOTPLT
24 *  \brief Hexagon .got.plt section.
25 */
26class HexagonGOTPLT : public HexagonGOT
27{
28public:
29  HexagonGOTPLT(LDSection &pSection);
30
31  ~HexagonGOTPLT();
32
33  // hasGOT1 - return if this section has any GOT1 entry
34  bool hasGOT1() const;
35
36  void applyGOT0(uint64_t pAddress);
37
38  void applyAllGOTPLT(const HexagonPLT& pPLT);
39};
40
41} // namespace of mcld
42
43#endif
44