//===-- MCAsmBackend.cpp - Target MC Assembly Backend ----------------------==//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

#include "llvm/MC/MCAsmBackend.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/MC/MCFixupKindInfo.h"
using namespace llvm;

MCAsmBackend::MCAsmBackend()
  : HasReliableSymbolDifference(false), HasDataInCodeSupport(false) {}

MCAsmBackend::~MCAsmBackend() {}

const MCFixupKindInfo &
MCAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
  static const MCFixupKindInfo Builtins[] = {
    { "FK_Data_1",  0,  8, 0 },
    { "FK_Data_2",  0, 16, 0 },
    { "FK_Data_4",  0, 32, 0 },
    { "FK_Data_8",  0, 64, 0 },
    { "FK_PCRel_1", 0,  8, MCFixupKindInfo::FKF_IsPCRel },
    { "FK_PCRel_2", 0, 16, MCFixupKindInfo::FKF_IsPCRel },
    { "FK_PCRel_4", 0, 32, MCFixupKindInfo::FKF_IsPCRel },
    { "FK_PCRel_8", 0, 64, MCFixupKindInfo::FKF_IsPCRel },
    { "FK_GPRel_1", 0,  8, 0 },
    { "FK_GPRel_2", 0, 16, 0 },
    { "FK_GPRel_4", 0, 32, 0 },
    { "FK_GPRel_8", 0, 64, 0 },
    { "FK_SecRel_1", 0,  8, 0 },
    { "FK_SecRel_2", 0, 16, 0 },
    { "FK_SecRel_4", 0, 32, 0 },
    { "FK_SecRel_8", 0, 64, 0 }
  };

  assert((size_t)Kind <= array_lengthof(Builtins) && "Unknown fixup kind");
  return Builtins[Kind];
}
