1d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao//===- X86GNUInfo.h -------------------------------------------------------===// 2d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao// 3d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao// The MCLinker Project 4d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao// 5d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao// This file is distributed under the University of Illinois Open Source 6d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao// License. See LICENSE.TXT for details. 7d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao// 8d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao//===----------------------------------------------------------------------===// 9551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines#ifndef TARGET_X86_X86GNUINFO_H 10551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines#define TARGET_X86_X86GNUINFO_H 11d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao#include <mcld/Target/GNUInfo.h> 12d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 13d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao#include <llvm/Support/ELF.h> 14d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 15d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liaonamespace mcld { 16d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 176f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinesclass X86_32GNUInfo : public GNUInfo 18d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao{ 19d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liaopublic: 206f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines X86_32GNUInfo(const llvm::Triple& pTriple) : GNUInfo(pTriple) { } 21d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 22d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao uint32_t machine() const { return llvm::ELF::EM_386; } 23d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 246f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines uint64_t defaultTextSegmentAddr() const { return 0x08048000; } 256f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 266f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines /// flags - the value of ElfXX_Ehdr::e_flags 276f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines /// FIXME 286f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines uint64_t flags() const { return 0x0; } 296f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 306f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines}; 316f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 326f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinesclass X86_64GNUInfo : public GNUInfo 336f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines{ 346f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinespublic: 356f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines X86_64GNUInfo(const llvm::Triple& pTriple) : GNUInfo(pTriple) { } 366f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 376f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines uint32_t machine() const { return llvm::ELF::EM_X86_64; } 386f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 396f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines uint64_t defaultTextSegmentAddr() const { return 0x400000; } 406f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 416f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines /// flags - the value of ElfXX_Ehdr::e_flags 426f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines /// FIXME 436f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines uint64_t flags() const { return 0x0; } 446f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 45d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao}; 46d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 47d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao} // namespace of mcld 48d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 49d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao#endif 50d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 51