1226584Sdim//===-- MCAsmBackend.cpp - Target MC Assembly Backend ----------------------==// 2226584Sdim// 3226584Sdim// The LLVM Compiler Infrastructure 4226584Sdim// 5226584Sdim// This file is distributed under the University of Illinois Open Source 6226584Sdim// License. See LICENSE.TXT for details. 7226584Sdim// 8226584Sdim//===----------------------------------------------------------------------===// 9226584Sdim 10226584Sdim#include "llvm/MC/MCAsmBackend.h" 11263509Sdim#include "llvm/ADT/STLExtras.h" 12235633Sdim#include "llvm/MC/MCFixupKindInfo.h" 13226584Sdimusing namespace llvm; 14226584Sdim 15226584SdimMCAsmBackend::MCAsmBackend() 16245431Sdim : HasReliableSymbolDifference(false), HasDataInCodeSupport(false) {} 17226584Sdim 18245431SdimMCAsmBackend::~MCAsmBackend() {} 19226584Sdim 20226584Sdimconst MCFixupKindInfo & 21226584SdimMCAsmBackend::getFixupKindInfo(MCFixupKind Kind) const { 22226584Sdim static const MCFixupKindInfo Builtins[] = { 23235633Sdim { "FK_Data_1", 0, 8, 0 }, 24235633Sdim { "FK_Data_2", 0, 16, 0 }, 25235633Sdim { "FK_Data_4", 0, 32, 0 }, 26235633Sdim { "FK_Data_8", 0, 64, 0 }, 27235633Sdim { "FK_PCRel_1", 0, 8, MCFixupKindInfo::FKF_IsPCRel }, 28226584Sdim { "FK_PCRel_2", 0, 16, MCFixupKindInfo::FKF_IsPCRel }, 29226584Sdim { "FK_PCRel_4", 0, 32, MCFixupKindInfo::FKF_IsPCRel }, 30235633Sdim { "FK_PCRel_8", 0, 64, MCFixupKindInfo::FKF_IsPCRel }, 31235633Sdim { "FK_GPRel_1", 0, 8, 0 }, 32235633Sdim { "FK_GPRel_2", 0, 16, 0 }, 33235633Sdim { "FK_GPRel_4", 0, 32, 0 }, 34235633Sdim { "FK_GPRel_8", 0, 64, 0 }, 35235633Sdim { "FK_SecRel_1", 0, 8, 0 }, 36235633Sdim { "FK_SecRel_2", 0, 16, 0 }, 37235633Sdim { "FK_SecRel_4", 0, 32, 0 }, 38235633Sdim { "FK_SecRel_8", 0, 64, 0 } 39226584Sdim }; 40245431Sdim 41263509Sdim assert((size_t)Kind <= array_lengthof(Builtins) && "Unknown fixup kind"); 42226584Sdim return Builtins[Kind]; 43226584Sdim} 44