blob: 6eb6914f4b1f7aa68d36b2f131aa566158efbc97 [file] [log] [blame]
Rafael Espindola6024c972010-12-17 17:45:22 +00001//===-- MCELFObjectTargetWriter.cpp - ELF Target Writer Subclass ----------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
Akira Hatanaka00ca8882012-03-23 23:06:45 +000010#include "llvm/ADT/STLExtras.h"
Rafael Espindola6024c972010-12-17 17:45:22 +000011#include "llvm/MC/MCELFObjectWriter.h"
12
13using namespace llvm;
14
Rafael Espindolabff66a82010-12-18 03:27:34 +000015MCELFObjectTargetWriter::MCELFObjectTargetWriter(bool Is64Bit_,
Rafael Espindoladc9a8a32011-12-21 17:00:36 +000016 uint8_t OSABI_,
Rafael Espindolabff66a82010-12-18 03:27:34 +000017 uint16_t EMachine_,
Jack Carter93ee2862012-06-27 22:28:30 +000018 bool HasRelocationAddend_,
19 bool IsN64_)
Rafael Espindoladc9a8a32011-12-21 17:00:36 +000020 : OSABI(OSABI_), EMachine(EMachine_),
Jack Carter93ee2862012-06-27 22:28:30 +000021 HasRelocationAddend(HasRelocationAddend_), Is64Bit(Is64Bit_),
22 IsN64(IsN64_){
Rafael Espindola6024c972010-12-17 17:45:22 +000023}
24
Rafael Espindola69bbda02011-12-22 00:37:50 +000025/// Default e_flags = 0
26unsigned MCELFObjectTargetWriter::getEFlags() const {
27 return 0;
28}
29
30const MCSymbol *MCELFObjectTargetWriter::ExplicitRelSym(const MCAssembler &Asm,
31 const MCValue &Target,
32 const MCFragment &F,
33 const MCFixup &Fixup,
34 bool IsPCRel) const {
35 return NULL;
36}
37
38
Rafael Espindolaf3a86fb2011-12-22 01:57:09 +000039void MCELFObjectTargetWriter::adjustFixupOffset(const MCFixup &Fixup,
40 uint64_t &RelocOffset) {
41}
Akira Hatanaka00ca8882012-03-23 23:06:45 +000042
43void
44MCELFObjectTargetWriter::sortRelocs(const MCAssembler &Asm,
45 std::vector<ELFRelocationEntry> &Relocs) {
46 // Sort by the r_offset, just like gnu as does.
47 array_pod_sort(Relocs.begin(), Relocs.end());
48}