//===- lib/MC/MCDwarf.cpp - MCDwarf implementation ------------------------===////// The LLVM Compiler Infrastructure//// This file is distributed under the University of Illinois Open Source// License. See LICENSE.TXT for details.////===----------------------------------------------------------------------===//#include"llvm/MC/MCDwarf.h"#include"llvm/ADT/Hashing.h"#include"llvm/ADT/SmallString.h"#include"llvm/ADT/Twine.h"#include"llvm/Config/config.h"#include"llvm/MC/MCAsmInfo.h"#include"llvm/MC/MCContext.h"#include"llvm/MC/MCExpr.h"#include"llvm/MC/MCObjectFileInfo.h"#include"llvm/MC/MCObjectWriter.h"#include"llvm/MC/MCRegisterInfo.h"#include"llvm/MC/MCStreamer.h"#include"llvm/MC/MCSymbol.h"#include"llvm/Support/Debug.h"#include"llvm/Support/ErrorHandling.h"#include"llvm/Support/LEB128.h"#include"llvm/Support/Path.h"#include"llvm/Support/SourceMgr.h"#include"llvm/Support/raw_ostream.h"usingnamespacellvm;// Given a special op, return the address skip amount (in units of// DWARF2_LINE_MIN_INSN_LENGTH.#define SPECIAL_ADDR(op) (((op) - DWARF2_LINE_OPCODE_BASE)/DWARF2_LINE_RANGE)// The maximum address skip amount that can be encoded with a special op.#define MAX_SPECIAL_ADDR_DELTA SPECIAL_ADDR(255)// First special line opcode - leave room for the standard opcodes.// Note: If you want to change this, you'll have to update the// "standard_opcode_lengths" table that is emitted in DwarfFileTable::Emit().#define DWARF2_LINE_OPCODE_BASE 13// Minimum line offset in a special line info. opc