MipsPLT.h revision cfcb22478ca64c308df58f9abe6fa2dedb213c16
1//===- MipsPLT.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_MIPS_MIPSPLT_H_
10#define TARGET_MIPS_MIPSPLT_H_
11
12#include "mcld/Support/MemoryRegion.h"
13#include "mcld/Target/PLT.h"
14
15namespace mcld {
16
17class MipsGOTPLT;
18
19//===----------------------------------------------------------------------===//
20// MipsPLT
21//===----------------------------------------------------------------------===//
22/** \class MipsPLT
23 *  \brief Mips Procedure Linkage Table
24 */
25class MipsPLT : public PLT {
26 public:
27  explicit MipsPLT(LDSection& pSection);
28
29  void finalizeSectionSize();
30
31  // hasPLT1 - return if this PLT has any PLTA/PLTB entries
32  bool hasPLT1() const;
33
34  uint64_t emit(MemoryRegion& pRegion);
35
36  PLTEntryBase* create();
37
38  void applyAllPLT(MipsGOTPLT& pGOTPLT);
39};
40
41}  // namespace mcld
42
43#endif  // TARGET_MIPS_MIPSPLT_H_
44