178c10eeaa57d1c6c4b7781d3c0bcb0cfbbc43b5cEvan Cheng//===-- MCAsmBackend.cpp - Target MC Assembly Backend ----------------------==// 2e7bd886cb8b69b8f787e7aadd097663632153436Daniel Dunbar// 3e7bd886cb8b69b8f787e7aadd097663632153436Daniel Dunbar// The LLVM Compiler Infrastructure 4e7bd886cb8b69b8f787e7aadd097663632153436Daniel Dunbar// 5e7bd886cb8b69b8f787e7aadd097663632153436Daniel Dunbar// This file is distributed under the University of Illinois Open Source 6e7bd886cb8b69b8f787e7aadd097663632153436Daniel Dunbar// License. See LICENSE.TXT for details. 7e7bd886cb8b69b8f787e7aadd097663632153436Daniel Dunbar// 8e7bd886cb8b69b8f787e7aadd097663632153436Daniel Dunbar//===----------------------------------------------------------------------===// 9e7bd886cb8b69b8f787e7aadd097663632153436Daniel Dunbar 1078c10eeaa57d1c6c4b7781d3c0bcb0cfbbc43b5cEvan Cheng#include "llvm/MC/MCAsmBackend.h" 11b9df53a40b22c74ce3f3a7b4a7c0676a38cf5e73Craig Topper#include "llvm/ADT/STLExtras.h" 12f1d0f7781e766df878bec4e7977fa3204374f394Craig Topper#include "llvm/MC/MCFixupKindInfo.h" 13e7bd886cb8b69b8f787e7aadd097663632153436Daniel Dunbarusing namespace llvm; 14e7bd886cb8b69b8f787e7aadd097663632153436Daniel Dunbar 1536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen HinesMCAsmBackend::MCAsmBackend() : HasDataInCodeSupport(false) {} 16e7bd886cb8b69b8f787e7aadd097663632153436Daniel Dunbar 17b4316028b3978e65cc2b97042292637857dfad49Jim GrosbachMCAsmBackend::~MCAsmBackend() {} 182761fc427082215c2affcc9d8db8491400bc9e5dDaniel Dunbar 192761fc427082215c2affcc9d8db8491400bc9e5dDaniel Dunbarconst MCFixupKindInfo & 2078c10eeaa57d1c6c4b7781d3c0bcb0cfbbc43b5cEvan ChengMCAsmBackend::getFixupKindInfo(MCFixupKind Kind) const { 212761fc427082215c2affcc9d8db8491400bc9e5dDaniel Dunbar static const MCFixupKindInfo Builtins[] = { 2284bfc2f090639f933df06cc675c4385511516befAkira Hatanaka { "FK_Data_1", 0, 8, 0 }, 2384bfc2f090639f933df06cc675c4385511516befAkira Hatanaka { "FK_Data_2", 0, 16, 0 }, 2484bfc2f090639f933df06cc675c4385511516befAkira Hatanaka { "FK_Data_4", 0, 32, 0 }, 2584bfc2f090639f933df06cc675c4385511516befAkira Hatanaka { "FK_Data_8", 0, 64, 0 }, 2684bfc2f090639f933df06cc675c4385511516befAkira Hatanaka { "FK_PCRel_1", 0, 8, MCFixupKindInfo::FKF_IsPCRel }, 272761fc427082215c2affcc9d8db8491400bc9e5dDaniel Dunbar { "FK_PCRel_2", 0, 16, MCFixupKindInfo::FKF_IsPCRel }, 283a83c40ab61d5ca624f2bbadd70237c6adbdb304Rafael Espindola { "FK_PCRel_4", 0, 32, MCFixupKindInfo::FKF_IsPCRel }, 2984bfc2f090639f933df06cc675c4385511516befAkira Hatanaka { "FK_PCRel_8", 0, 64, MCFixupKindInfo::FKF_IsPCRel }, 3084bfc2f090639f933df06cc675c4385511516befAkira Hatanaka { "FK_GPRel_1", 0, 8, 0 }, 3184bfc2f090639f933df06cc675c4385511516befAkira Hatanaka { "FK_GPRel_2", 0, 16, 0 }, 3284bfc2f090639f933df06cc675c4385511516befAkira Hatanaka { "FK_GPRel_4", 0, 32, 0 }, 33ce618af3e880ae0ec0ddd81aca8ed5bbd4096ae4Rafael Espindola { "FK_GPRel_8", 0, 64, 0 }, 34ce618af3e880ae0ec0ddd81aca8ed5bbd4096ae4Rafael Espindola { "FK_SecRel_1", 0, 8, 0 }, 35ce618af3e880ae0ec0ddd81aca8ed5bbd4096ae4Rafael Espindola { "FK_SecRel_2", 0, 16, 0 }, 36ce618af3e880ae0ec0ddd81aca8ed5bbd4096ae4Rafael Espindola { "FK_SecRel_4", 0, 32, 0 }, 37ce618af3e880ae0ec0ddd81aca8ed5bbd4096ae4Rafael Espindola { "FK_SecRel_8", 0, 64, 0 } 382761fc427082215c2affcc9d8db8491400bc9e5dDaniel Dunbar }; 392684d9e3c702b2ef9fd430155d94671d12fa994fJim Grosbach 40b9df53a40b22c74ce3f3a7b4a7c0676a38cf5e73Craig Topper assert((size_t)Kind <= array_lengthof(Builtins) && "Unknown fixup kind"); 412761fc427082215c2affcc9d8db8491400bc9e5dDaniel Dunbar return Builtins[Kind]; 422761fc427082215c2affcc9d8db8491400bc9e5dDaniel Dunbar} 43