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