1551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines//===- AArch64GNUInfo.h ---------------------------------------------------===//
2551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines//
3551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines//                     The MCLinker Project
4551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines//
5551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines// This file is distributed under the University of Illinois Open Source
6551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines// License. See LICENSE.TXT for details.
7551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines//
8551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines//===----------------------------------------------------------------------===//
937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#ifndef TARGET_AARCH64_AARCH64GNUINFO_H_
1037b74a387bb3993387029859c2d9d051c41c724eStephen Hines#define TARGET_AARCH64_AARCH64GNUINFO_H_
1137b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/Target/GNUInfo.h"
12551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines
13551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines#include <llvm/Support/ELF.h>
14551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines
15551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hinesnamespace mcld {
16551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines
1737b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass AArch64GNUInfo : public GNUInfo {
1837b74a387bb3993387029859c2d9d051c41c724eStephen Hines public:
1937b74a387bb3993387029859c2d9d051c41c724eStephen Hines  explicit AArch64GNUInfo(const llvm::Triple& pTriple) : GNUInfo(pTriple) {}
20551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines
21551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines  uint32_t machine() const { return llvm::ELF::EM_AARCH64; }
22551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines
23551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines  uint64_t defaultTextSegmentAddr() const { return 0x400000; }
24551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines
25551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines  // There are no processor-specific flags so this field shall contain zero.
26551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines  uint64_t flags() const { return 0x0; }
27551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines};
28551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines
2937b74a387bb3993387029859c2d9d051c41c724eStephen Hines}  // namespace mcld
30551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines
3137b74a387bb3993387029859c2d9d051c41c724eStephen Hines#endif  // TARGET_AARCH64_AARCH64GNUINFO_H_
32