summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/MC/MCAssembler.h33
-rw-r--r--lib/MC/MCAssembler.cpp9
2 files changed, 8 insertions, 34 deletions
diff --git a/include/llvm/MC/MCAssembler.h b/include/llvm/MC/MCAssembler.h
index 5b6f463ffe..63b5e49f2d 100644
--- a/include/llvm/MC/MCAssembler.h
+++ b/include/llvm/MC/MCAssembler.h
@@ -99,12 +99,6 @@ public:
MCSectionData *getParent() const { return Parent; }
void setParent(MCSectionData *Value) { Parent = Value; }
- // FIXME: This should be abstract, fix sentinel.
- virtual uint64_t getMaxFileSize() const {
- assert(0 && "Invalid getMaxFileSize call!");
- return 0;
- }
-
/// @name Assembler Backend Support
/// @{
//
@@ -116,10 +110,7 @@ public:
assert(FileSize != ~UINT64_C(0) && "File size not set!");
return FileSize;
}
- void setFileSize(uint64_t Value) {
- assert(Value <= getMaxFileSize() && "Invalid file size!");
- FileSize = Value;
- }
+ void setFileSize(uint64_t Value) { FileSize = Value; }
uint64_t getOffset() const {
assert(Offset != ~UINT64_C(0) && "File offset not set!");
@@ -150,10 +141,6 @@ public:
/// @name Accessors
/// @{
- uint64_t getMaxFileSize() const {
- return Contents.size();
- }
-
SmallString<32> &getContents() { return Contents; }
const SmallString<32> &getContents() const { return Contents; }
@@ -219,10 +206,6 @@ public:
/// @name Accessors
/// @{
- uint64_t getMaxFileSize() const {
- return std::max(Alignment - 1, MaxBytesToEmit);
- }
-
unsigned getAlignment() const { return Alignment; }
int64_t getValue() const { return Value; }
@@ -262,10 +245,6 @@ public:
/// @name Accessors
/// @{
- uint64_t getMaxFileSize() const {
- return ValueSize * Count;
- }
-
int64_t getValue() const { return Value; }
unsigned getValueSize() const { return ValueSize; }
@@ -297,11 +276,6 @@ public:
/// @name Accessors
/// @{
- uint64_t getMaxFileSize() const {
- // FIXME: This doesn't make much sense.
- return ~UINT64_C(0);
- }
-
const MCExpr &getOffset() const { return *Offset; }
uint8_t getValue() const { return Value; }
@@ -333,11 +307,6 @@ public:
/// @name Accessors
/// @{
- uint64_t getMaxFileSize() const {
- // FIXME: This also doesn't make much sense, this method is misnamed.
- return ~UINT64_C(0);
- }
-
uint64_t getSize() const { return Size; }
unsigned getAlignment() const { return Alignment; }
diff --git a/lib/MC/MCAssembler.cpp b/lib/MC/MCAssembler.cpp
index 0e4d3cc1ef..432e44a24a 100644
--- a/lib/MC/MCAssembler.cpp
+++ b/lib/MC/MCAssembler.cpp
@@ -320,10 +320,15 @@ void MCAssembler::LayoutSection(MCSectionData &SD,
}
case MCFragment::FT_Data:
- case MCFragment::FT_Fill:
- F.setFileSize(F.getMaxFileSize());
+ F.setFileSize(cast<MCDataFragment>(F).getContents().size());
break;
+ case MCFragment::FT_Fill: {
+ MCFillFragment &FF = cast<MCFillFragment>(F);
+ F.setFileSize(FF.getValueSize() * FF.getCount());
+ break;
+ }
+
case MCFragment::FT_Org: {
MCOrgFragment &OF = cast<MCOrgFragment>(F);