mirror of
https://github.com/intel/llvm.git
synced 2026-01-18 16:21:34 +08:00
Remove big-endianness from =<fillexp> code.
llvm-svn: 300005
This commit is contained in:
@@ -221,15 +221,13 @@ void OutputSection::sortCtorsDtors() {
|
||||
std::stable_sort(Sections.begin(), Sections.end(), compCtors);
|
||||
}
|
||||
|
||||
// Fill [Buf, Buf + Size) with Filler. Filler is written in big
|
||||
// endian order. This is used for linker script "=fillexp" command.
|
||||
// Fill [Buf, Buf + Size) with Filler.
|
||||
// This is used for linker script "=fillexp" command.
|
||||
static void fill(uint8_t *Buf, size_t Size, uint32_t Filler) {
|
||||
uint8_t V[4];
|
||||
write32be(V, Filler);
|
||||
size_t I = 0;
|
||||
for (; I + 4 < Size; I += 4)
|
||||
memcpy(Buf + I, V, 4);
|
||||
memcpy(Buf + I, V, Size - I);
|
||||
memcpy(Buf + I, &Filler, 4);
|
||||
memcpy(Buf + I, &Filler, Size - I);
|
||||
}
|
||||
|
||||
uint32_t OutputSection::getFiller() {
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
|
||||
using namespace llvm;
|
||||
using namespace llvm::ELF;
|
||||
using namespace llvm::support::endian;
|
||||
using namespace lld;
|
||||
using namespace lld::elf;
|
||||
|
||||
@@ -637,11 +638,13 @@ ScriptParser::readOutputSectionDescription(StringRef OutSec) {
|
||||
// as 32-bit big-endian values. We will do the same as ld.gold does
|
||||
// because it's simpler than what ld.bfd does.
|
||||
uint32_t ScriptParser::readOutputSectionFiller(StringRef Tok) {
|
||||
uint32_t V;
|
||||
if (!Tok.getAsInteger(0, V))
|
||||
return V;
|
||||
setError("invalid filler expression: " + Tok);
|
||||
return 0;
|
||||
uint32_t V = 0;
|
||||
if (Tok.getAsInteger(0, V))
|
||||
setError("invalid filler expression: " + Tok);
|
||||
|
||||
uint32_t Buf;
|
||||
write32be(&Buf, V);
|
||||
return Buf;
|
||||
}
|
||||
|
||||
SymbolAssignment *ScriptParser::readProvideHidden(bool Provide, bool Hidden) {
|
||||
|
||||
Reference in New Issue
Block a user