mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-27 21:50:40 +00:00
Distinguish between code pointer size and DataLayout::getPointerSize() in DWARF info generation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300463 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a017dc6965
commit
0c79d1f4e0
@ -65,8 +65,8 @@ protected:
|
||||
// Properties to be set by the target writer, used to configure asm printer.
|
||||
//
|
||||
|
||||
/// Pointer size in bytes. Default is 4.
|
||||
unsigned PointerSize = 4;
|
||||
/// Code pointer size in bytes. Default is 4.
|
||||
unsigned CodePointerSize = 4;
|
||||
|
||||
/// Size of the stack slot reserved for callee-saved registers, in bytes.
|
||||
/// Default is same as pointer size.
|
||||
@ -384,8 +384,8 @@ public:
|
||||
explicit MCAsmInfo();
|
||||
virtual ~MCAsmInfo();
|
||||
|
||||
/// Get the pointer size in bytes.
|
||||
unsigned getPointerSize() const { return PointerSize; }
|
||||
/// Get the code pointer size in bytes.
|
||||
unsigned getCodePointerSize() const { return CodePointerSize; }
|
||||
|
||||
/// Get the callee-saved register stack slot
|
||||
/// size in bytes.
|
||||
|
@ -1356,7 +1356,7 @@ bool AsmPrinter::doFinalization(Module &M) {
|
||||
OutContext.getOrCreateSymbol(StringRef("__morestack_addr"));
|
||||
OutStreamer->EmitLabel(AddrSymbol);
|
||||
|
||||
unsigned PtrSize = M.getDataLayout().getPointerSize(0);
|
||||
unsigned PtrSize = MAI->getCodePointerSize();
|
||||
OutStreamer->EmitSymbolValue(GetExternalSymbolSymbol("__morestack"),
|
||||
PtrSize);
|
||||
}
|
||||
@ -2781,7 +2781,7 @@ void AsmPrinter::emitXRayTable() {
|
||||
// before the function's end, we assume that this is happening after
|
||||
// the last return instruction.
|
||||
|
||||
auto WordSizeBytes = TM.getPointerSize();
|
||||
auto WordSizeBytes = MAI->getCodePointerSize();
|
||||
MCSymbol *Tmp = OutContext.createTempSymbol("xray_synthetic_", true);
|
||||
OutStreamer->EmitCodeAlignment(16);
|
||||
OutStreamer->EmitSymbolValue(Tmp, WordSizeBytes, false);
|
||||
|
@ -1136,7 +1136,7 @@ TypeIndex CodeViewDebug::lowerTypeArray(const DICompositeType *Ty) {
|
||||
DITypeRef ElementTypeRef = Ty->getBaseType();
|
||||
TypeIndex ElementTypeIndex = getTypeIndex(ElementTypeRef);
|
||||
// IndexType is size_t, which depends on the bitness of the target.
|
||||
TypeIndex IndexType = Asm->MAI->getPointerSize() == 8
|
||||
TypeIndex IndexType = Asm->TM.getPointerSize() == 8
|
||||
? TypeIndex(SimpleTypeKind::UInt64Quad)
|
||||
: TypeIndex(SimpleTypeKind::UInt32Long);
|
||||
|
||||
@ -1342,8 +1342,8 @@ TypeIndex CodeViewDebug::lowerTypeMemberPointer(const DIDerivedType *Ty) {
|
||||
assert(Ty->getTag() == dwarf::DW_TAG_ptr_to_member_type);
|
||||
TypeIndex ClassTI = getTypeIndex(Ty->getClassType());
|
||||
TypeIndex PointeeTI = getTypeIndex(Ty->getBaseType(), Ty->getClassType());
|
||||
PointerKind PK = Asm->MAI->getPointerSize() == 8 ? PointerKind::Near64
|
||||
: PointerKind::Near32;
|
||||
PointerKind PK = Asm->TM.getPointerSize() == 8 ? PointerKind::Near64
|
||||
: PointerKind::Near32;
|
||||
bool IsPMF = isa<DISubroutineType>(Ty->getBaseType());
|
||||
PointerMode PM = IsPMF ? PointerMode::PointerToMemberFunction
|
||||
: PointerMode::PointerToDataMember;
|
||||
@ -1458,7 +1458,8 @@ TypeIndex CodeViewDebug::lowerTypeMemberFunction(const DISubroutineType *Ty,
|
||||
}
|
||||
|
||||
TypeIndex CodeViewDebug::lowerTypeVFTableShape(const DIDerivedType *Ty) {
|
||||
unsigned VSlotCount = Ty->getSizeInBits() / (8 * Asm->MAI->getPointerSize());
|
||||
unsigned VSlotCount =
|
||||
Ty->getSizeInBits() / (8 * Asm->MAI->getCodePointerSize());
|
||||
SmallVector<VFTableSlotKind, 4> Slots(VSlotCount, VFTableSlotKind::Near);
|
||||
|
||||
VFTableShapeRecord VFTSR(Slots);
|
||||
|
@ -518,7 +518,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->getPointerSize();
|
||||
return AP->MAI->getCodePointerSize();
|
||||
}
|
||||
|
||||
LLVM_DUMP_METHOD
|
||||
@ -540,7 +540,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->getPointerSize();
|
||||
return AP->MAI->getCodePointerSize();
|
||||
}
|
||||
|
||||
LLVM_DUMP_METHOD
|
||||
@ -682,7 +682,7 @@ unsigned DIEEntry::SizeOf(const AsmPrinter *AP, dwarf::Form Form) const {
|
||||
return getULEB128Size(Entry->getOffset());
|
||||
case dwarf::DW_FORM_ref_addr:
|
||||
if (AP->getDwarfVersion() == 2)
|
||||
return AP->getPointerSize();
|
||||
return AP->MAI->getCodePointerSize();
|
||||
switch (AP->OutStreamer->getContext().getDwarfFormat()) {
|
||||
case dwarf::DWARF32:
|
||||
return 4;
|
||||
@ -808,7 +808,7 @@ unsigned DIELocList::SizeOf(const AsmPrinter *AP, dwarf::Form Form) const {
|
||||
return 4;
|
||||
if (Form == dwarf::DW_FORM_sec_offset)
|
||||
return 4;
|
||||
return AP->getPointerSize();
|
||||
return AP->MAI->getCodePointerSize();
|
||||
}
|
||||
|
||||
/// EmitValue - Emit label value.
|
||||
|
@ -1578,7 +1578,7 @@ void DwarfDebug::emitDebugLoc() {
|
||||
// Start the dwarf loc section.
|
||||
Asm->OutStreamer->SwitchSection(
|
||||
Asm->getObjFileLowering().getDwarfLocSection());
|
||||
unsigned char Size = Asm->getDataLayout().getPointerSize();
|
||||
unsigned char Size = Asm->MAI->getCodePointerSize();
|
||||
for (const auto &List : DebugLocs.getLists()) {
|
||||
Asm->OutStreamer->EmitLabel(List.Label);
|
||||
const DwarfCompileUnit *CU = List.CU;
|
||||
@ -1708,7 +1708,7 @@ void DwarfDebug::emitDebugARanges() {
|
||||
Asm->OutStreamer->SwitchSection(
|
||||
Asm->getObjFileLowering().getDwarfARangesSection());
|
||||
|
||||
unsigned PtrSize = Asm->getDataLayout().getPointerSize();
|
||||
unsigned PtrSize = Asm->MAI->getCodePointerSize();
|
||||
|
||||
// Build a list of CUs used.
|
||||
std::vector<DwarfCompileUnit *> CUs;
|
||||
@ -1791,7 +1791,7 @@ void DwarfDebug::emitDebugRanges() {
|
||||
Asm->getObjFileLowering().getDwarfRangesSection());
|
||||
|
||||
// Size for our labels.
|
||||
unsigned char Size = Asm->getDataLayout().getPointerSize();
|
||||
unsigned char Size = Asm->MAI->getCodePointerSize();
|
||||
|
||||
// Grab the specific ranges for the compile units in the module.
|
||||
for (const auto &I : CUMap) {
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include "llvm/IR/GlobalValue.h"
|
||||
#include "llvm/IR/Metadata.h"
|
||||
#include "llvm/MC/MachineLocation.h"
|
||||
#include "llvm/MC/MCAsmInfo.h"
|
||||
#include "llvm/MC/MCDwarf.h"
|
||||
#include "llvm/MC/MCSection.h"
|
||||
#include "llvm/MC/MCStreamer.h"
|
||||
@ -73,8 +74,8 @@ bool DIEDwarfExpression::isFrameRegister(const TargetRegisterInfo &TRI,
|
||||
|
||||
DwarfUnit::DwarfUnit(dwarf::Tag UnitTag, const DICompileUnit *Node,
|
||||
AsmPrinter *A, DwarfDebug *DW, DwarfFile *DWU)
|
||||
: DIEUnit(A->getDwarfVersion(), A->getPointerSize(), UnitTag), CUNode(Node),
|
||||
Asm(A), DD(DW), DU(DWU), IndexTyDie(nullptr) {
|
||||
: DIEUnit(A->getDwarfVersion(), A->MAI->getCodePointerSize(), UnitTag),
|
||||
CUNode(Node), Asm(A), DD(DW), DU(DWU), IndexTyDie(nullptr) {
|
||||
}
|
||||
|
||||
DwarfTypeUnit::DwarfTypeUnit(DwarfCompileUnit &CU, AsmPrinter *A,
|
||||
@ -1546,7 +1547,7 @@ void DwarfUnit::emitCommonHeader(bool UseOffsets, dwarf::UnitType UT) {
|
||||
Asm->OutStreamer->AddComment("DWARF Unit Type");
|
||||
Asm->EmitInt8(UT);
|
||||
Asm->OutStreamer->AddComment("Address Size (in bytes)");
|
||||
Asm->EmitInt8(Asm->getDataLayout().getPointerSize());
|
||||
Asm->EmitInt8(Asm->MAI->getCodePointerSize());
|
||||
}
|
||||
|
||||
// We share one abbreviations table across all units so it's always at the
|
||||
@ -1562,7 +1563,7 @@ void DwarfUnit::emitCommonHeader(bool UseOffsets, dwarf::UnitType UT) {
|
||||
|
||||
if (Version <= 4) {
|
||||
Asm->OutStreamer->AddComment("Address Size (in bytes)");
|
||||
Asm->EmitInt8(Asm->getDataLayout().getPointerSize());
|
||||
Asm->EmitInt8(Asm->MAI->getCodePointerSize());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -168,7 +168,7 @@ EmitDwarfLineTable(MCObjectStreamer *MCOS, MCSection *Section,
|
||||
// and the current Label.
|
||||
const MCAsmInfo *asmInfo = MCOS->getContext().getAsmInfo();
|
||||
MCOS->EmitDwarfAdvanceLineAddr(LineDelta, LastLabel, Label,
|
||||
asmInfo->getPointerSize());
|
||||
asmInfo->getCodePointerSize());
|
||||
|
||||
Discriminator = 0;
|
||||
LastLine = LineEntry.getLine();
|
||||
@ -188,7 +188,7 @@ EmitDwarfLineTable(MCObjectStreamer *MCOS, MCSection *Section,
|
||||
|
||||
const MCAsmInfo *AsmInfo = Ctx.getAsmInfo();
|
||||
MCOS->EmitDwarfAdvanceLineAddr(INT64_MAX, LastLabel, SectionEnd,
|
||||
AsmInfo->getPointerSize());
|
||||
AsmInfo->getCodePointerSize());
|
||||
}
|
||||
|
||||
//
|
||||
@ -594,7 +594,7 @@ static void EmitGenDwarfAranges(MCStreamer *MCOS,
|
||||
// Figure the padding after the header before the table of address and size
|
||||
// pairs who's values are PointerSize'ed.
|
||||
const MCAsmInfo *asmInfo = context.getAsmInfo();
|
||||
int AddrSize = asmInfo->getPointerSize();
|
||||
int AddrSize = asmInfo->getCodePointerSize();
|
||||
int Pad = 2 * AddrSize - (Length & (2 * AddrSize - 1));
|
||||
if (Pad == 2 * AddrSize)
|
||||
Pad = 0;
|
||||
@ -677,7 +677,7 @@ static void EmitGenDwarfInfo(MCStreamer *MCOS,
|
||||
// The DWARF v5 header has unit type, address size, abbrev offset.
|
||||
// Earlier versions have abbrev offset, address size.
|
||||
const MCAsmInfo &AsmInfo = *context.getAsmInfo();
|
||||
int AddrSize = AsmInfo.getPointerSize();
|
||||
int AddrSize = AsmInfo.getCodePointerSize();
|
||||
if (context.getDwarfVersion() >= 5) {
|
||||
MCOS->EmitIntValue(dwarf::DW_UT_compile, 1);
|
||||
MCOS->EmitIntValue(AddrSize, 1);
|
||||
@ -823,7 +823,7 @@ static void EmitGenDwarfRanges(MCStreamer *MCOS) {
|
||||
auto &Sections = context.getGenDwarfSectionSyms();
|
||||
|
||||
const MCAsmInfo *AsmInfo = context.getAsmInfo();
|
||||
int AddrSize = AsmInfo->getPointerSize();
|
||||
int AddrSize = AsmInfo->getCodePointerSize();
|
||||
|
||||
MCOS->SwitchSection(context.getObjectFileInfo()->getDwarfRangesSection());
|
||||
|
||||
@ -981,7 +981,7 @@ static unsigned getSizeForEncoding(MCStreamer &streamer,
|
||||
default: llvm_unreachable("Unknown Encoding");
|
||||
case dwarf::DW_EH_PE_absptr:
|
||||
case dwarf::DW_EH_PE_signed:
|
||||
return context.getAsmInfo()->getPointerSize();
|
||||
return context.getAsmInfo()->getCodePointerSize();
|
||||
case dwarf::DW_EH_PE_udata2:
|
||||
case dwarf::DW_EH_PE_sdata2:
|
||||
return 2;
|
||||
@ -1318,7 +1318,7 @@ const MCSymbol &FrameEmitterImpl::EmitCIE(const MCSymbol *personality,
|
||||
|
||||
if (CIEVersion >= 4) {
|
||||
// Address Size
|
||||
Streamer.EmitIntValue(context.getAsmInfo()->getPointerSize(), 1);
|
||||
Streamer.EmitIntValue(context.getAsmInfo()->getCodePointerSize(), 1);
|
||||
|
||||
// Segment Descriptor Size
|
||||
Streamer.EmitIntValue(0, 1);
|
||||
@ -1384,7 +1384,7 @@ const MCSymbol &FrameEmitterImpl::EmitCIE(const MCSymbol *personality,
|
||||
InitialCFAOffset = CFAOffset;
|
||||
|
||||
// Padding
|
||||
Streamer.EmitValueToAlignment(IsEH ? 4 : MAI->getPointerSize());
|
||||
Streamer.EmitValueToAlignment(IsEH ? 4 : MAI->getCodePointerSize());
|
||||
|
||||
Streamer.EmitLabel(sectionEnd);
|
||||
return *sectionStart;
|
||||
@ -1453,7 +1453,7 @@ void FrameEmitterImpl::EmitFDE(const MCSymbol &cieStart,
|
||||
// The size of a .eh_frame section has to be a multiple of the alignment
|
||||
// since a null CIE is interpreted as the end. Old systems overaligned
|
||||
// .eh_frame, so we do too and account for it in the last FDE.
|
||||
unsigned Align = LastInSection ? asmInfo->getPointerSize() : PCSize;
|
||||
unsigned Align = LastInSection ? asmInfo->getCodePointerSize() : PCSize;
|
||||
Streamer.EmitValueToAlignment(Align);
|
||||
|
||||
Streamer.EmitLabel(fdeEnd);
|
||||
@ -1514,6 +1514,7 @@ void MCDwarfFrameEmitter::Emit(MCObjectStreamer &Streamer, MCAsmBackend *MAB,
|
||||
|
||||
MCContext &Context = Streamer.getContext();
|
||||
const MCObjectFileInfo *MOFI = Context.getObjectFileInfo();
|
||||
const MCAsmInfo *AsmInfo = Context.getAsmInfo();
|
||||
FrameEmitterImpl Emitter(IsEH, Streamer);
|
||||
ArrayRef<MCDwarfFrameInfo> FrameArray = Streamer.getDwarfFrameInfos();
|
||||
|
||||
@ -1525,7 +1526,7 @@ void MCDwarfFrameEmitter::Emit(MCObjectStreamer &Streamer, MCAsmBackend *MAB,
|
||||
if (Frame.CompactUnwindEncoding == 0) continue;
|
||||
if (!SectionEmitted) {
|
||||
Streamer.SwitchSection(MOFI->getCompactUnwindSection());
|
||||
Streamer.EmitValueToAlignment(Context.getAsmInfo()->getPointerSize());
|
||||
Streamer.EmitValueToAlignment(AsmInfo->getCodePointerSize());
|
||||
SectionEmitted = true;
|
||||
}
|
||||
NeedsEHFrameSection |=
|
||||
|
@ -1755,8 +1755,8 @@ bool AsmParser::parseStatement(ParseStatementInfo &Info,
|
||||
case DK_8BYTE:
|
||||
return parseDirectiveValue(IDVal, 8);
|
||||
case DK_DC_A:
|
||||
return parseDirectiveValue(IDVal,
|
||||
getContext().getAsmInfo()->getPointerSize());
|
||||
return parseDirectiveValue(
|
||||
IDVal, getContext().getAsmInfo()->getCodePointerSize());
|
||||
case DK_OCTA:
|
||||
return parseDirectiveOctaValue(IDVal);
|
||||
case DK_SINGLE:
|
||||
|
@ -39,7 +39,7 @@ AArch64MCAsmInfoDarwin::AArch64MCAsmInfoDarwin() {
|
||||
PrivateLabelPrefix = "L";
|
||||
SeparatorString = "%%";
|
||||
CommentString = ";";
|
||||
PointerSize = CalleeSaveStackSlotSize = 8;
|
||||
CodePointerSize = CalleeSaveStackSlotSize = 8;
|
||||
|
||||
AlignmentIsInBytes = false;
|
||||
UsesELFSectionDirectiveForBSS = true;
|
||||
@ -71,7 +71,7 @@ AArch64MCAsmInfoELF::AArch64MCAsmInfoELF(const Triple &T) {
|
||||
// We prefer NEON instructions to be printed in the short form.
|
||||
AssemblerDialect = AsmWriterVariant == Default ? 0 : AsmWriterVariant;
|
||||
|
||||
PointerSize = 8;
|
||||
CodePointerSize = 8;
|
||||
|
||||
// ".comm align is in bytes but .align is pow-2."
|
||||
AlignmentIsInBytes = false;
|
||||
|
@ -42,7 +42,7 @@ public:
|
||||
// messed up in random places by 4 bytes. .debug_line
|
||||
// section will be parsable, but with odd offsets and
|
||||
// line numbers, etc.
|
||||
PointerSize = 8;
|
||||
CodePointerSize = 8;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ using namespace llvm;
|
||||
void MSP430MCAsmInfo::anchor() { }
|
||||
|
||||
MSP430MCAsmInfo::MSP430MCAsmInfo(const Triple &TT) {
|
||||
PointerSize = CalleeSaveStackSlotSize = 2;
|
||||
CodePointerSize = CalleeSaveStackSlotSize = 2;
|
||||
|
||||
CommentString = ";";
|
||||
|
||||
|
@ -23,7 +23,7 @@ MipsMCAsmInfo::MipsMCAsmInfo(const Triple &TheTriple) {
|
||||
|
||||
if ((TheTriple.getArch() == Triple::mips64el) ||
|
||||
(TheTriple.getArch() == Triple::mips64)) {
|
||||
PointerSize = CalleeSaveStackSlotSize = 8;
|
||||
CodePointerSize = CalleeSaveStackSlotSize = 8;
|
||||
}
|
||||
|
||||
// FIXME: This condition isn't quite right but it's the best we can do until
|
||||
|
@ -27,7 +27,7 @@ void NVPTXMCAsmInfo::anchor() {}
|
||||
|
||||
NVPTXMCAsmInfo::NVPTXMCAsmInfo(const Triple &TheTriple) {
|
||||
if (TheTriple.getArch() == Triple::nvptx64) {
|
||||
PointerSize = CalleeSaveStackSlotSize = 8;
|
||||
CodePointerSize = CalleeSaveStackSlotSize = 8;
|
||||
}
|
||||
|
||||
CommentString = "//";
|
||||
|
@ -20,7 +20,7 @@ void PPCMCAsmInfoDarwin::anchor() { }
|
||||
|
||||
PPCMCAsmInfoDarwin::PPCMCAsmInfoDarwin(bool is64Bit, const Triple& T) {
|
||||
if (is64Bit) {
|
||||
PointerSize = CalleeSaveStackSlotSize = 8;
|
||||
CodePointerSize = CalleeSaveStackSlotSize = 8;
|
||||
}
|
||||
IsLittleEndian = false;
|
||||
|
||||
@ -50,7 +50,7 @@ PPCELFMCAsmInfo::PPCELFMCAsmInfo(bool is64Bit, const Triple& T) {
|
||||
NeedsLocalForSize = true;
|
||||
|
||||
if (is64Bit) {
|
||||
PointerSize = CalleeSaveStackSlotSize = 8;
|
||||
CodePointerSize = CalleeSaveStackSlotSize = 8;
|
||||
}
|
||||
IsLittleEndian = T.getArch() == Triple::ppc64le;
|
||||
|
||||
|
@ -18,7 +18,7 @@ using namespace llvm;
|
||||
void RISCVMCAsmInfo::anchor() {}
|
||||
|
||||
RISCVMCAsmInfo::RISCVMCAsmInfo(const Triple &TT) {
|
||||
PointerSize = CalleeSaveStackSlotSize = TT.isArch64Bit() ? 8 : 4;
|
||||
CodePointerSize = CalleeSaveStackSlotSize = TT.isArch64Bit() ? 8 : 4;
|
||||
CommentString = "#";
|
||||
AlignmentIsInBytes = false;
|
||||
SupportsDebugInformation = true;
|
||||
|
@ -28,7 +28,7 @@ SparcELFMCAsmInfo::SparcELFMCAsmInfo(const Triple &TheTriple) {
|
||||
IsLittleEndian = (TheTriple.getArch() == Triple::sparcel);
|
||||
|
||||
if (isV9) {
|
||||
PointerSize = CalleeSaveStackSlotSize = 8;
|
||||
CodePointerSize = CalleeSaveStackSlotSize = 8;
|
||||
}
|
||||
|
||||
Data16bitsDirective = "\t.half\t";
|
||||
|
@ -14,7 +14,7 @@
|
||||
using namespace llvm;
|
||||
|
||||
SystemZMCAsmInfo::SystemZMCAsmInfo(const Triple &TT) {
|
||||
PointerSize = 8;
|
||||
CodePointerSize = 8;
|
||||
CalleeSaveStackSlotSize = 8;
|
||||
IsLittleEndian = false;
|
||||
|
||||
|
@ -43,7 +43,7 @@ void X86MCAsmInfoDarwin::anchor() { }
|
||||
X86MCAsmInfoDarwin::X86MCAsmInfoDarwin(const Triple &T) {
|
||||
bool is64Bit = T.getArch() == Triple::x86_64;
|
||||
if (is64Bit)
|
||||
PointerSize = CalleeSaveStackSlotSize = 8;
|
||||
CodePointerSize = CalleeSaveStackSlotSize = 8;
|
||||
|
||||
AssemblerDialect = AsmWriterFlavor;
|
||||
|
||||
@ -92,7 +92,7 @@ X86ELFMCAsmInfo::X86ELFMCAsmInfo(const Triple &T) {
|
||||
// For ELF, x86-64 pointer size depends on the ABI.
|
||||
// For x86-64 without the x32 ABI, pointer size is 8. For x86 and for x86-64
|
||||
// with the x32 ABI, pointer size remains the default 4.
|
||||
PointerSize = (is64Bit && !isX32) ? 8 : 4;
|
||||
CodePointerSize = (is64Bit && !isX32) ? 8 : 4;
|
||||
|
||||
// OTOH, stack slot size is always 8 for x86-64, even with the x32 ABI.
|
||||
CalleeSaveStackSlotSize = is64Bit ? 8 : 4;
|
||||
@ -129,7 +129,7 @@ X86MCAsmInfoMicrosoft::X86MCAsmInfoMicrosoft(const Triple &Triple) {
|
||||
if (Triple.getArch() == Triple::x86_64) {
|
||||
PrivateGlobalPrefix = ".L";
|
||||
PrivateLabelPrefix = ".L";
|
||||
PointerSize = 8;
|
||||
CodePointerSize = 8;
|
||||
WinEHEncodingType = WinEH::EncodingType::Itanium;
|
||||
} else {
|
||||
// 32-bit X86 doesn't use CFI, so this isn't a real encoding type. It's just
|
||||
@ -156,7 +156,7 @@ X86MCAsmInfoGNUCOFF::X86MCAsmInfoGNUCOFF(const Triple &Triple) {
|
||||
if (Triple.getArch() == Triple::x86_64) {
|
||||
PrivateGlobalPrefix = ".L";
|
||||
PrivateLabelPrefix = ".L";
|
||||
PointerSize = 8;
|
||||
CodePointerSize = 8;
|
||||
WinEHEncodingType = WinEH::EncodingType::Itanium;
|
||||
ExceptionsType = ExceptionHandling::WinEH;
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user