aboutsummaryrefslogtreecommitdiff
path: root/wasm/InputChunks.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'wasm/InputChunks.cpp')
-rw-r--r--wasm/InputChunks.cpp27
1 files changed, 12 insertions, 15 deletions
diff --git a/wasm/InputChunks.cpp b/wasm/InputChunks.cpp
index fcefac7d99b8..1145c670253c 100644
--- a/wasm/InputChunks.cpp
+++ b/wasm/InputChunks.cpp
@@ -25,7 +25,9 @@ using namespace lld::wasm;
static StringRef ReloctTypeToString(uint8_t RelocType) {
switch (RelocType) {
-#define WASM_RELOC(NAME, REL) case REL: return #NAME;
+#define WASM_RELOC(NAME, REL) \
+ case REL: \
+ return #NAME;
#include "llvm/BinaryFormat/WasmRelocs.def"
#undef WASM_RELOC
}
@@ -43,16 +45,6 @@ StringRef InputChunk::getComdatName() const {
return File->getWasmObj()->linkingData().Comdats[Index];
}
-void InputChunk::copyRelocations(const WasmSection &Section) {
- if (Section.Relocations.empty())
- return;
- size_t Start = getInputSectionOffset();
- size_t Size = getInputSize();
- for (const WasmRelocation &R : Section.Relocations)
- if (R.Offset >= Start && R.Offset < Start + Size)
- Relocations.push_back(R);
-}
-
void InputChunk::verifyRelocTargets() const {
for (const WasmRelocation &Rel : Relocations) {
uint32_t ExistingValue;
@@ -63,6 +55,7 @@ void InputChunk::verifyRelocTargets() const {
case R_WEBASSEMBLY_TYPE_INDEX_LEB:
case R_WEBASSEMBLY_FUNCTION_INDEX_LEB:
case R_WEBASSEMBLY_GLOBAL_INDEX_LEB:
+ case R_WEBASSEMBLY_EVENT_INDEX_LEB:
case R_WEBASSEMBLY_MEMORY_ADDR_LEB:
ExistingValue = decodeULEB128(Loc, &BytesRead);
break;
@@ -119,6 +112,7 @@ void InputChunk::writeTo(uint8_t *Buf) const {
case R_WEBASSEMBLY_TYPE_INDEX_LEB:
case R_WEBASSEMBLY_FUNCTION_INDEX_LEB:
case R_WEBASSEMBLY_GLOBAL_INDEX_LEB:
+ case R_WEBASSEMBLY_EVENT_INDEX_LEB:
case R_WEBASSEMBLY_MEMORY_ADDR_LEB:
encodeULEB128(Value, Loc, 5);
break;
@@ -188,6 +182,7 @@ static unsigned writeCompressedReloc(uint8_t *Buf, const WasmRelocation &Rel,
case R_WEBASSEMBLY_TYPE_INDEX_LEB:
case R_WEBASSEMBLY_FUNCTION_INDEX_LEB:
case R_WEBASSEMBLY_GLOBAL_INDEX_LEB:
+ case R_WEBASSEMBLY_EVENT_INDEX_LEB:
case R_WEBASSEMBLY_MEMORY_ADDR_LEB:
return encodeULEB128(Value, Buf);
case R_WEBASSEMBLY_TABLE_INDEX_SLEB:
@@ -203,6 +198,7 @@ static unsigned getRelocWidthPadded(const WasmRelocation &Rel) {
case R_WEBASSEMBLY_TYPE_INDEX_LEB:
case R_WEBASSEMBLY_FUNCTION_INDEX_LEB:
case R_WEBASSEMBLY_GLOBAL_INDEX_LEB:
+ case R_WEBASSEMBLY_EVENT_INDEX_LEB:
case R_WEBASSEMBLY_MEMORY_ADDR_LEB:
case R_WEBASSEMBLY_TABLE_INDEX_SLEB:
case R_WEBASSEMBLY_MEMORY_ADDR_SLEB:
@@ -228,7 +224,7 @@ static unsigned getRelocWidth(const WasmRelocation &Rel, uint32_t Value) {
// This function only computes the final output size. It must be called
// before getSize() is used to calculate of layout of the code section.
void InputFunction::calculateSize() {
- if (!File || !Config->CompressRelocTargets)
+ if (!File || !Config->CompressRelocations)
return;
LLVM_DEBUG(dbgs() << "calculateSize: " << getName() << "\n");
@@ -242,7 +238,7 @@ void InputFunction::calculateSize() {
uint32_t End = Start + Function->Size;
uint32_t LastRelocEnd = Start + FunctionSizeLength;
- for (WasmRelocation &Rel : Relocations) {
+ for (const WasmRelocation &Rel : Relocations) {
LLVM_DEBUG(dbgs() << " region: " << (Rel.Offset - LastRelocEnd) << "\n");
CompressedFuncSize += Rel.Offset - LastRelocEnd;
CompressedFuncSize += getRelocWidth(Rel, File->calcNewValue(Rel));
@@ -263,11 +259,12 @@ void InputFunction::calculateSize() {
// Override the default writeTo method so that we can (optionally) write the
// compressed version of the function.
void InputFunction::writeTo(uint8_t *Buf) const {
- if (!File || !Config->CompressRelocTargets)
+ if (!File || !Config->CompressRelocations)
return InputChunk::writeTo(Buf);
Buf += OutputOffset;
- uint8_t *Orig = Buf; (void)Orig;
+ uint8_t *Orig = Buf;
+ (void)Orig;
const uint8_t *SecStart = File->CodeSection->Content.data();
const uint8_t *FuncStart = SecStart + getInputSectionOffset();