blob: c2cc1459c4860eb32d3965c7f01b70c1b00678a8 [file] [log] [blame]
//===- X86GOT.h -----------------------------------------------------------===//
//
// The MCLinker Project
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef TARGET_X86_X86GOT_H_
#define TARGET_X86_X86GOT_H_
#include "mcld/Target/GOT.h"
namespace mcld {
class LDSection;
class SectionData;
/** \class X86_32GOTEntry
* \brief GOT Entry with size of 4 bytes
*/
class X86_32GOTEntry : public GOT::Entry<4> {
public:
X86_32GOTEntry(uint64_t pContent, SectionData* pParent)
: GOT::Entry<4>(pContent, pParent) {}
};
/** \class X86_32GOT
* \brief X86_32 Global Offset Table.
*/
class X86_32GOT : public GOT {
public:
explicit X86_32GOT(LDSection& pSection);
~X86_32GOT();
X86_32GOTEntry* create();
};
/** \class X86_64GOTEntry
* \brief GOT Entry with size of 8 bytes
*/
class X86_64GOTEntry : public GOT::Entry<8> {
public:
X86_64GOTEntry(uint64_t pContent, SectionData* pParent)
: GOT::Entry<8>(pContent, pParent) {}
};
/** \class X86_64GOT
* \brief X86_64 Global Offset Table.
*/
class X86_64GOT : public GOT {
public:
explicit X86_64GOT(LDSection& pSection);
~X86_64GOT();
X86_64GOTEntry* create();
};
} // namespace mcld
#endif // TARGET_X86_X86GOT_H_