Pull in r322108 from upstream llvm trunk (by Rafael Espíndola):
Make one of the emitFill methods non virtual. NFC. This is just preparatory work to fix [LLVM] PR35858.
This commit is contained in:
parent
893c3ece10
commit
00da656e30
@ -161,7 +161,6 @@ public:
|
|||||||
bool EmitRelocDirective(const MCExpr &Offset, StringRef Name,
|
bool EmitRelocDirective(const MCExpr &Offset, StringRef Name,
|
||||||
const MCExpr *Expr, SMLoc Loc) override;
|
const MCExpr *Expr, SMLoc Loc) override;
|
||||||
using MCStreamer::emitFill;
|
using MCStreamer::emitFill;
|
||||||
void emitFill(uint64_t NumBytes, uint8_t FillValue) override;
|
|
||||||
void emitFill(const MCExpr &NumBytes, uint64_t FillValue,
|
void emitFill(const MCExpr &NumBytes, uint64_t FillValue,
|
||||||
SMLoc Loc = SMLoc()) override;
|
SMLoc Loc = SMLoc()) override;
|
||||||
void emitFill(const MCExpr &NumValues, int64_t Size, int64_t Expr,
|
void emitFill(const MCExpr &NumValues, int64_t Size, int64_t Expr,
|
||||||
|
@ -662,7 +662,7 @@ public:
|
|||||||
|
|
||||||
/// \brief Emit NumBytes bytes worth of the value specified by FillValue.
|
/// \brief Emit NumBytes bytes worth of the value specified by FillValue.
|
||||||
/// This implements directives such as '.space'.
|
/// This implements directives such as '.space'.
|
||||||
virtual void emitFill(uint64_t NumBytes, uint8_t FillValue);
|
void emitFill(uint64_t NumBytes, uint8_t FillValue);
|
||||||
|
|
||||||
/// \brief Emit \p Size bytes worth of the value specified by \p FillValue.
|
/// \brief Emit \p Size bytes worth of the value specified by \p FillValue.
|
||||||
///
|
///
|
||||||
|
@ -192,9 +192,6 @@ public:
|
|||||||
|
|
||||||
void EmitGPRel32Value(const MCExpr *Value) override;
|
void EmitGPRel32Value(const MCExpr *Value) override;
|
||||||
|
|
||||||
|
|
||||||
void emitFill(uint64_t NumBytes, uint8_t FillValue) override;
|
|
||||||
|
|
||||||
void emitFill(const MCExpr &NumBytes, uint64_t FillValue,
|
void emitFill(const MCExpr &NumBytes, uint64_t FillValue,
|
||||||
SMLoc Loc = SMLoc()) override;
|
SMLoc Loc = SMLoc()) override;
|
||||||
|
|
||||||
@ -965,17 +962,12 @@ void MCAsmStreamer::EmitGPRel32Value(const MCExpr *Value) {
|
|||||||
EmitEOL();
|
EmitEOL();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// emitFill - Emit NumBytes bytes worth of the value specified by
|
|
||||||
/// FillValue. This implements directives such as '.space'.
|
|
||||||
void MCAsmStreamer::emitFill(uint64_t NumBytes, uint8_t FillValue) {
|
|
||||||
if (NumBytes == 0) return;
|
|
||||||
|
|
||||||
const MCExpr *E = MCConstantExpr::create(NumBytes, getContext());
|
|
||||||
emitFill(*E, FillValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
void MCAsmStreamer::emitFill(const MCExpr &NumBytes, uint64_t FillValue,
|
void MCAsmStreamer::emitFill(const MCExpr &NumBytes, uint64_t FillValue,
|
||||||
SMLoc Loc) {
|
SMLoc Loc) {
|
||||||
|
int64_t IntNumBytes;
|
||||||
|
if (NumBytes.evaluateAsAbsolute(IntNumBytes) && IntNumBytes == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
if (const char *ZeroDirective = MAI->getZeroDirective()) {
|
if (const char *ZeroDirective = MAI->getZeroDirective()) {
|
||||||
// FIXME: Emit location directives
|
// FIXME: Emit location directives
|
||||||
OS << ZeroDirective;
|
OS << ZeroDirective;
|
||||||
|
@ -577,11 +577,6 @@ bool MCObjectStreamer::EmitRelocDirective(const MCExpr &Offset, StringRef Name,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MCObjectStreamer::emitFill(uint64_t NumBytes, uint8_t FillValue) {
|
|
||||||
assert(getCurrentSectionOnly() && "need a section");
|
|
||||||
insert(new MCFillFragment(FillValue, NumBytes));
|
|
||||||
}
|
|
||||||
|
|
||||||
void MCObjectStreamer::emitFill(const MCExpr &NumBytes, uint64_t FillValue,
|
void MCObjectStreamer::emitFill(const MCExpr &NumBytes, uint64_t FillValue,
|
||||||
SMLoc Loc) {
|
SMLoc Loc) {
|
||||||
MCDataFragment *DF = getOrCreateDataFragment();
|
MCDataFragment *DF = getOrCreateDataFragment();
|
||||||
@ -593,12 +588,13 @@ void MCObjectStreamer::emitFill(const MCExpr &NumBytes, uint64_t FillValue,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IntNumBytes <= 0) {
|
if (IntNumBytes < 0) {
|
||||||
getContext().reportError(Loc, "invalid number of bytes");
|
getContext().reportError(Loc, "invalid number of bytes");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
emitFill(IntNumBytes, FillValue);
|
assert(getCurrentSectionOnly() && "need a section");
|
||||||
|
insert(new MCFillFragment(FillValue, IntNumBytes));
|
||||||
}
|
}
|
||||||
|
|
||||||
void MCObjectStreamer::emitFill(const MCExpr &NumValues, int64_t Size,
|
void MCObjectStreamer::emitFill(const MCExpr &NumValues, int64_t Size,
|
||||||
|
@ -184,8 +184,7 @@ void MCStreamer::EmitGPRel32Value(const MCExpr *Value) {
|
|||||||
/// Emit NumBytes bytes worth of the value specified by FillValue.
|
/// Emit NumBytes bytes worth of the value specified by FillValue.
|
||||||
/// This implements directives such as '.space'.
|
/// This implements directives such as '.space'.
|
||||||
void MCStreamer::emitFill(uint64_t NumBytes, uint8_t FillValue) {
|
void MCStreamer::emitFill(uint64_t NumBytes, uint8_t FillValue) {
|
||||||
for (uint64_t i = 0, e = NumBytes; i != e; ++i)
|
emitFill(*MCConstantExpr::create(NumBytes, getContext()), FillValue);
|
||||||
EmitIntValue(FillValue, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MCStreamer::emitFill(uint64_t NumValues, int64_t Size, int64_t Expr) {
|
void MCStreamer::emitFill(uint64_t NumValues, int64_t Size, int64_t Expr) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user