summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/wasm/InputChunks.h2
-rw-r--r--lld/wasm/InputFiles.cpp18
2 files changed, 5 insertions, 15 deletions
diff --git a/lld/wasm/InputChunks.h b/lld/wasm/InputChunks.h
index b816ff8468f..80a8ab4126e 100644
--- a/lld/wasm/InputChunks.h
+++ b/lld/wasm/InputChunks.h
@@ -134,8 +134,8 @@ public:
StringRef getName() const override { return Function->SymbolName; }
StringRef getDebugName() const override { return Function->DebugName; }
uint32_t getComdat() const override { return Function->Comdat; }
- const ArrayRef<uint8_t> getFunctionBody() const { return Function->Body; }
uint32_t getFunctionInputOffset() const { return getInputSectionOffset(); }
+ uint32_t getFunctionCodeOffset() const { return Function->CodeOffset; }
uint32_t getFunctionIndex() const { return FunctionIndex.getValue(); }
bool hasFunctionIndex() const { return FunctionIndex.hasValue(); }
void setFunctionIndex(uint32_t Index);
diff --git a/lld/wasm/InputFiles.cpp b/lld/wasm/InputFiles.cpp
index 5a798c7c2e8..dee8f07b4b6 100644
--- a/lld/wasm/InputFiles.cpp
+++ b/lld/wasm/InputFiles.cpp
@@ -16,7 +16,6 @@
#include "lld/Common/Memory.h"
#include "llvm/Object/Binary.h"
#include "llvm/Object/Wasm.h"
-#include "llvm/Support/LEB128.h"
#include "llvm/Support/raw_ostream.h"
#define DEBUG_TYPE "lld"
@@ -43,12 +42,6 @@ Optional<MemoryBufferRef> lld::wasm::readFile(StringRef Path) {
return MBRef;
}
-static size_t getFunctionCodeOffset(ArrayRef<uint8_t> FunctionBody) {
- unsigned Count;
- llvm::decodeULEB128(FunctionBody.data(), &Count);
- return Count;
-}
-
void ObjFile::dumpInfo() const {
log("info for: " + getName() +
"\n Symbols : " + Twine(Symbols.size()) +
@@ -105,10 +98,8 @@ uint32_t ObjFile::calcExpectedValue(const WasmRelocation &Reloc) const {
}
case R_WEBASSEMBLY_FUNCTION_OFFSET_I32:
if (auto *Sym = dyn_cast<DefinedFunction>(getFunctionSymbol(Reloc.Index))) {
- size_t FunctionCodeOffset =
- getFunctionCodeOffset(Sym->Function->getFunctionBody());
- return Sym->Function->getFunctionInputOffset() + FunctionCodeOffset +
- Reloc.Addend;
+ return Sym->Function->getFunctionInputOffset() +
+ Sym->Function->getFunctionCodeOffset() + Reloc.Addend;
}
return 0;
case R_WEBASSEMBLY_SECTION_OFFSET_I32:
@@ -145,9 +136,8 @@ uint32_t ObjFile::calcNewValue(const WasmRelocation &Reloc) const {
return getGlobalSymbol(Reloc.Index)->getGlobalIndex();
case R_WEBASSEMBLY_FUNCTION_OFFSET_I32:
if (auto *Sym = dyn_cast<DefinedFunction>(getFunctionSymbol(Reloc.Index))) {
- size_t FunctionCodeOffset =
- getFunctionCodeOffset(Sym->Function->getFunctionBody());
- return Sym->Function->OutputOffset + FunctionCodeOffset + Reloc.Addend;
+ return Sym->Function->OutputOffset +
+ Sym->Function->getFunctionCodeOffset() + Reloc.Addend;
}
return 0;
case R_WEBASSEMBLY_SECTION_OFFSET_I32:
OpenPOWER on IntegriCloud