blob: 9fc67cddd94c151e48a01c371329f8cb729d2054 [file] [log] [blame]
//===- HexagonGOTPLT.h ----------------------------------------------------===//
//
// The MCLinker Project
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef MCLD_HEXAGON_GOTPLT_H
#define MCLD_HEXAGON_GOTPLT_H
#ifdef ENABLE_UNITTEST
#include <gtest.h>
#endif
#include <llvm/ADT/DenseMap.h>
#include "HexagonGOT.h"
namespace mcld {
class HexagonPLT;
class LDSection;
// Hexagon creates 4 entries for the GOTPLT0 entry
const unsigned int HexagonGOTPLT0Num = 4;
/** \class HexagonGOTPLT
* \brief Hexagon .got.plt section.
*/
class HexagonGOTPLT : public HexagonGOT
{
public:
HexagonGOTPLT(LDSection &pSection);
~HexagonGOTPLT();
// hasGOT1 - return if this section has any GOT1 entry
bool hasGOT1() const;
void applyGOT0(uint64_t pAddress);
void applyAllGOTPLT(const HexagonPLT& pPLT);
};
} // namespace of mcld
#endif