Home | History | Annotate | Download | only in Mips
      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 
     15 namespace mcld {
     16 
     17 class MipsGOTPLT;
     18 
     19 //===----------------------------------------------------------------------===//
     20 // MipsPLT
     21 //===----------------------------------------------------------------------===//
     22 /** \class MipsPLT
     23  *  \brief Mips Procedure Linkage Table
     24  */
     25 class 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