mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 04:30:23 +00:00
Redirect pointerSize query to the TargetMachine in ASMPrinter
Summary: Because llvm-dsymutil is using ASMPrinter without any MachineFunction of Module available. This change is part of a series of commits dedicated to have a single DataLayout during compilation by using always the one owned by the module. Reviewers: echristo Subscribers: yaron.keren, rafael, llvm-commits Differential Revision: http://reviews.llvm.org/D11078 From: Mehdi Amini <mehdi.amini@apple.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242384 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
45646075c3
commit
24e2a7c43f
@ -165,6 +165,9 @@ public:
|
||||
/// Return information about data layout.
|
||||
const DataLayout &getDataLayout() const;
|
||||
|
||||
/// Return the pointer size from the TargetMachine
|
||||
unsigned getPointerSize() const;
|
||||
|
||||
/// Return information about subtarget.
|
||||
const MCSubtargetInfo &getSubtargetInfo() const;
|
||||
|
||||
|
@ -140,6 +140,8 @@ const DataLayout &AsmPrinter::getDataLayout() const {
|
||||
return *TM.getDataLayout();
|
||||
}
|
||||
|
||||
unsigned AsmPrinter::getPointerSize() const { return TM.getDataLayout()->getPointerSize(); }
|
||||
|
||||
const MCSubtargetInfo &AsmPrinter::getSubtargetInfo() const {
|
||||
assert(MF && "getSubtargetInfo requires a valid MachineFunction!");
|
||||
return MF->getSubtarget<MCSubtargetInfo>();
|
||||
|
@ -264,7 +264,8 @@ void DIEInteger::EmitValue(const AsmPrinter *Asm, dwarf::Form Form) const {
|
||||
case dwarf::DW_FORM_udata: Asm->EmitULEB128(Integer); return;
|
||||
case dwarf::DW_FORM_sdata: Asm->EmitSLEB128(Integer); return;
|
||||
case dwarf::DW_FORM_addr:
|
||||
Size = Asm->getDataLayout().getPointerSize(); break;
|
||||
Size = Asm->getPointerSize();
|
||||
break;
|
||||
case dwarf::DW_FORM_ref_addr:
|
||||
Size = SizeOf(Asm, dwarf::DW_FORM_ref_addr);
|
||||
break;
|
||||
@ -294,10 +295,11 @@ unsigned DIEInteger::SizeOf(const AsmPrinter *AP, dwarf::Form Form) const {
|
||||
case dwarf::DW_FORM_GNU_addr_index: return getULEB128Size(Integer);
|
||||
case dwarf::DW_FORM_udata: return getULEB128Size(Integer);
|
||||
case dwarf::DW_FORM_sdata: return getSLEB128Size(Integer);
|
||||
case dwarf::DW_FORM_addr: return AP->getDataLayout().getPointerSize();
|
||||
case dwarf::DW_FORM_addr:
|
||||
return AP->getPointerSize();
|
||||
case dwarf::DW_FORM_ref_addr:
|
||||
if (AP->OutStreamer->getContext().getDwarfVersion() == 2)
|
||||
return AP->getDataLayout().getPointerSize();
|
||||
return AP->getPointerSize();
|
||||
return sizeof(int32_t);
|
||||
default: llvm_unreachable("DIE Value form not supported yet");
|
||||
}
|
||||
@ -326,7 +328,7 @@ unsigned DIEExpr::SizeOf(const AsmPrinter *AP, dwarf::Form Form) const {
|
||||
if (Form == dwarf::DW_FORM_data4) return 4;
|
||||
if (Form == dwarf::DW_FORM_sec_offset) return 4;
|
||||
if (Form == dwarf::DW_FORM_strp) return 4;
|
||||
return AP->getDataLayout().getPointerSize();
|
||||
return AP->getPointerSize();
|
||||
}
|
||||
|
||||
#ifndef NDEBUG
|
||||
@ -352,7 +354,7 @@ unsigned DIELabel::SizeOf(const AsmPrinter *AP, dwarf::Form Form) const {
|
||||
if (Form == dwarf::DW_FORM_data4) return 4;
|
||||
if (Form == dwarf::DW_FORM_sec_offset) return 4;
|
||||
if (Form == dwarf::DW_FORM_strp) return 4;
|
||||
return AP->getDataLayout().getPointerSize();
|
||||
return AP->getPointerSize();
|
||||
}
|
||||
|
||||
#ifndef NDEBUG
|
||||
@ -375,7 +377,7 @@ unsigned DIEDelta::SizeOf(const AsmPrinter *AP, dwarf::Form Form) const {
|
||||
if (Form == dwarf::DW_FORM_data4) return 4;
|
||||
if (Form == dwarf::DW_FORM_sec_offset) return 4;
|
||||
if (Form == dwarf::DW_FORM_strp) return 4;
|
||||
return AP->getDataLayout().getPointerSize();
|
||||
return AP->getPointerSize();
|
||||
}
|
||||
|
||||
#ifndef NDEBUG
|
||||
@ -472,7 +474,7 @@ unsigned DIEEntry::getRefAddrSize(const AsmPrinter *AP) {
|
||||
const DwarfDebug *DD = AP->getDwarfDebug();
|
||||
assert(DD && "Expected Dwarf Debug info to be available");
|
||||
if (DD->getDwarfVersion() == 2)
|
||||
return AP->getDataLayout().getPointerSize();
|
||||
return AP->getPointerSize();
|
||||
return sizeof(int32_t);
|
||||
}
|
||||
|
||||
@ -608,7 +610,7 @@ unsigned DIELocList::SizeOf(const AsmPrinter *AP, dwarf::Form Form) const {
|
||||
return 4;
|
||||
if (Form == dwarf::DW_FORM_sec_offset)
|
||||
return 4;
|
||||
return AP->getDataLayout().getPointerSize();
|
||||
return AP->getPointerSize();
|
||||
}
|
||||
|
||||
/// EmitValue - Emit label value.
|
||||
|
Loading…
Reference in New Issue
Block a user