//===- X86GNUInfo.h -------------------------------------------------------===// // // The MCLinker Project // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef TARGET_X86_X86GNUINFO_H_ #define TARGET_X86_X86GNUINFO_H_ #include "mcld/Target/GNUInfo.h" #include <llvm/Support/ELF.h> namespace mcld { class X86_32GNUInfo : public GNUInfo { public: explicit X86_32GNUInfo(const llvm::Triple& pTriple) : GNUInfo(pTriple) {} uint32_t machine() const { return llvm::ELF::EM_386; } uint64_t defaultTextSegmentAddr() const { return 0x08048000; } /// flags - the value of ElfXX_Ehdr::e_flags /// FIXME uint64_t flags() const { return 0x0; } }; class X86_64GNUInfo : public GNUInfo { public: explicit X86_64GNUInfo(const llvm::Triple& pTriple) : GNUInfo(pTriple) {} uint32_t machine() const { return llvm::ELF::EM_X86_64; } uint64_t defaultTextSegmentAddr() const { return 0x400000; } /// flags - the value of ElfXX_Ehdr::e_flags /// FIXME uint64_t flags() const { return 0x0; } }; } // namespace mcld #endif // TARGET_X86_X86GNUINFO_H_