mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-02 10:33:53 +00:00
eliminate AsmPrinter::EmitZeros: just use MCStreamer directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93918 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
18b8323de7
commit
6449abfbc8
@ -377,10 +377,6 @@ namespace llvm {
|
||||
/// EmitGlobalConstant - Print a general LLVM constant to the .s file.
|
||||
void EmitGlobalConstant(const Constant* CV, unsigned AddrSpace = 0);
|
||||
|
||||
/// EmitZeros - Emit a block of zeros.
|
||||
///
|
||||
void EmitZeros(uint64_t NumZeros, unsigned AddrSpace = 0) const;
|
||||
|
||||
/// EmitString - Emit a zero-byte-terminated string constant.
|
||||
///
|
||||
virtual void EmitString(const ConstantArray *CVA) const;
|
||||
|
@ -174,6 +174,12 @@ namespace llvm {
|
||||
virtual void EmitFill(uint64_t NumBytes, uint8_t FillValue,
|
||||
unsigned AddrSpace);
|
||||
|
||||
/// EmitZeros - Emit NumBytes worth of zeros. This is a convenience
|
||||
/// function that just wraps EmitFill.
|
||||
void EmitZeros(uint64_t NumBytes, unsigned AddrSpace) {
|
||||
EmitFill(NumBytes, 0, AddrSpace);
|
||||
}
|
||||
|
||||
|
||||
/// EmitValueToAlignment - Emit some number of copies of @param Value until
|
||||
/// the byte alignment @param ByteAlignment is reached.
|
||||
|
@ -1058,12 +1058,6 @@ void AsmPrinter::EmitConstantValueOnly(const Constant *CV) {
|
||||
}
|
||||
}
|
||||
|
||||
/// EmitZeros - Emit a block of zeros.
|
||||
///
|
||||
void AsmPrinter::EmitZeros(uint64_t NumZeros, unsigned AddrSpace) const {
|
||||
OutStreamer.EmitFill(NumZeros, 0, AddrSpace);
|
||||
}
|
||||
|
||||
/// printAsCString - Print the specified array as a C compatible string, only if
|
||||
/// the predicate isString is true.
|
||||
///
|
||||
@ -1134,7 +1128,7 @@ static void EmitGlobalConstantStruct(const ConstantStruct *CS,
|
||||
// Insert padding - this may include padding to increase the size of the
|
||||
// current field up to the ABI size (if the struct is not packed) as well
|
||||
// as padding to ensure that the next field starts at the right offset.
|
||||
AP.EmitZeros(padSize, AddrSpace);
|
||||
AP.OutStreamer.EmitZeros(padSize, AddrSpace);
|
||||
}
|
||||
assert(SizeSoFar == cvsLayout->getSizeInBytes() &&
|
||||
"Layout of constant struct may be incorrect!");
|
||||
@ -1283,9 +1277,8 @@ void AsmPrinter::EmitGlobalConstantFP(const ConstantFP *CFP,
|
||||
}
|
||||
O << '\n';
|
||||
}
|
||||
LLVMContext &Context = CFP->getContext();
|
||||
EmitZeros(TD.getTypeAllocSize(Type::getX86_FP80Ty(Context)) -
|
||||
TD.getTypeStoreSize(Type::getX86_FP80Ty(Context)), AddrSpace);
|
||||
OutStreamer.EmitZeros(TD.getTypeAllocSize(CFP->getType()) -
|
||||
TD.getTypeStoreSize(CFP->getType()), AddrSpace);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1412,7 +1405,7 @@ void AsmPrinter::EmitGlobalConstant(const Constant *CV, unsigned AddrSpace) {
|
||||
unsigned Size = TD->getTypeAllocSize(type);
|
||||
|
||||
if (CV->isNullValue() || isa<UndefValue>(CV))
|
||||
return EmitZeros(Size, AddrSpace);
|
||||
return OutStreamer.EmitZeros(Size, AddrSpace);
|
||||
|
||||
if (const ConstantArray *CVA = dyn_cast<ConstantArray>(CV))
|
||||
return EmitGlobalConstantArray(CVA, AddrSpace, *this);
|
||||
|
@ -174,15 +174,13 @@ void XCoreAsmPrinter::EmitGlobalVariable(const GlobalVariable *GV) {
|
||||
|
||||
EmitGlobalConstant(C);
|
||||
if (GV->isThreadLocal()) {
|
||||
for (unsigned i = 1; i < MaxThreads; ++i) {
|
||||
for (unsigned i = 1; i < MaxThreads; ++i)
|
||||
EmitGlobalConstant(C);
|
||||
}
|
||||
}
|
||||
if (Size < 4) {
|
||||
// The ABI requires that unsigned scalar types smaller than 32 bits
|
||||
// are are padded to 32 bits.
|
||||
EmitZeros(4 - Size);
|
||||
}
|
||||
// The ABI requires that unsigned scalar types smaller than 32 bits
|
||||
// are are padded to 32 bits.
|
||||
if (Size < 4)
|
||||
OutStreamer.EmitZeros(4 - Size, 0);
|
||||
|
||||
// Mark the end of the global
|
||||
O << "\t.cc_bottom " << *GVSym << ".data\n";
|
||||
|
Loading…
x
Reference in New Issue
Block a user