]> granicus.if.org Git - llvm/commitdiff
[WebAssembly] Update relocation names to match spec
authorSam Clegg <sbc@chromium.org>
Fri, 1 Sep 2017 17:32:01 +0000 (17:32 +0000)
committerSam Clegg <sbc@chromium.org>
Fri, 1 Sep 2017 17:32:01 +0000 (17:32 +0000)
Summary: See https://github.com/WebAssembly/tool-conventions/blob/master/Linking.md

Differential Revision: https://reviews.llvm.org/D37385

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312342 91177308-0d34-0410-b5e6-96231b3b80d8

14 files changed:
include/llvm/BinaryFormat/WasmRelocs/WebAssembly.def
lib/MC/WasmObjectWriter.cpp
lib/Object/WasmObjectFile.cpp
lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp
test/MC/WebAssembly/external-data.ll
test/MC/WebAssembly/reloc-code.ll
test/MC/WebAssembly/reloc-data.ll
test/MC/WebAssembly/unnamed-data.ll
test/Object/objdump-relocations.test
test/ObjectYAML/wasm/data_section.yaml
test/tools/llvm-objdump/WebAssembly/relocations.test
test/tools/llvm-readobj/relocations.test
tools/llvm-readobj/WasmDumper.cpp
tools/yaml2obj/yaml2wasm.cpp

index da64e025478dee6077fffa0bedaea4b39852ade1..d6f0e42b33bf2724dd22731047d6ba538388d638 100644 (file)
@@ -6,8 +6,8 @@
 WASM_RELOC(R_WEBASSEMBLY_FUNCTION_INDEX_LEB,   0)
 WASM_RELOC(R_WEBASSEMBLY_TABLE_INDEX_SLEB,     1)
 WASM_RELOC(R_WEBASSEMBLY_TABLE_INDEX_I32,      2)
-WASM_RELOC(R_WEBASSEMBLY_GLOBAL_ADDR_LEB,      3)
-WASM_RELOC(R_WEBASSEMBLY_GLOBAL_ADDR_SLEB,     4)
-WASM_RELOC(R_WEBASSEMBLY_GLOBAL_ADDR_I32,      5)
+WASM_RELOC(R_WEBASSEMBLY_MEMORY_ADDR_LEB,      3)
+WASM_RELOC(R_WEBASSEMBLY_MEMORY_ADDR_SLEB,     4)
+WASM_RELOC(R_WEBASSEMBLY_MEMORY_ADDR_I32,      5)
 WASM_RELOC(R_WEBASSEMBLY_TYPE_INDEX_LEB,       6)
 WASM_RELOC(R_WEBASSEMBLY_GLOBAL_INDEX_LEB,     7)
index 0d31f65c49d9f11d5ddf1bd948c1d922ad257323..35d9a58f6d367dcca58cede13eed437939aa63dd 100644 (file)
@@ -142,9 +142,9 @@ struct WasmRelocationEntry {
 
   bool hasAddend() const {
     switch (Type) {
-    case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_LEB:
-    case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_SLEB:
-    case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_I32:
+    case wasm::R_WEBASSEMBLY_MEMORY_ADDR_LEB:
+    case wasm::R_WEBASSEMBLY_MEMORY_ADDR_SLEB:
+    case wasm::R_WEBASSEMBLY_MEMORY_ADDR_I32:
       return true;
     default:
       return false;
@@ -495,9 +495,9 @@ uint32_t WasmObjectWriter::getRelocationIndexValue(
     return IndirectSymbolIndices[RelEntry.Symbol];
   case wasm::R_WEBASSEMBLY_FUNCTION_INDEX_LEB:
   case wasm::R_WEBASSEMBLY_GLOBAL_INDEX_LEB:
-  case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_LEB:
-  case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_SLEB:
-  case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_I32:
+  case wasm::R_WEBASSEMBLY_MEMORY_ADDR_LEB:
+  case wasm::R_WEBASSEMBLY_MEMORY_ADDR_SLEB:
+  case wasm::R_WEBASSEMBLY_MEMORY_ADDR_I32:
     if (!SymbolIndices.count(RelEntry.Symbol))
       report_fatal_error("symbol not found function/global index space: " +
                          RelEntry.Symbol->getName());
@@ -537,17 +537,17 @@ void WasmObjectWriter::applyRelocations(
       WriteI32(Stream, Index, Offset);
       break;
     }
-    case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_SLEB: {
+    case wasm::R_WEBASSEMBLY_MEMORY_ADDR_SLEB: {
       uint32_t Value = ProvisionalValue(RelEntry);
       WritePatchableSLEB(Stream, Value, Offset);
       break;
     }
-    case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_LEB: {
+    case wasm::R_WEBASSEMBLY_MEMORY_ADDR_LEB: {
       uint32_t Value = ProvisionalValue(RelEntry);
       WritePatchableLEB(Stream, Value, Offset);
       break;
     }
-    case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_I32: {
+    case wasm::R_WEBASSEMBLY_MEMORY_ADDR_I32: {
       uint32_t Value = ProvisionalValue(RelEntry);
       WriteI32(Stream, Value, Offset);
       break;
@@ -967,7 +967,7 @@ void WasmObjectWriter::writeObject(MCAssembler &Asm,
   for (const WasmRelocationEntry &RelEntry : CodeRelocations) {
     switch (RelEntry.Type) {
     case wasm::R_WEBASSEMBLY_TABLE_INDEX_SLEB:
-    case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_SLEB:
+    case wasm::R_WEBASSEMBLY_MEMORY_ADDR_SLEB:
       IsAddressTaken.insert(RelEntry.Symbol);
       break;
     default:
@@ -977,7 +977,7 @@ void WasmObjectWriter::writeObject(MCAssembler &Asm,
   for (const WasmRelocationEntry &RelEntry : DataRelocations) {
     switch (RelEntry.Type) {
     case wasm::R_WEBASSEMBLY_TABLE_INDEX_I32:
-    case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_I32:
+    case wasm::R_WEBASSEMBLY_MEMORY_ADDR_I32:
       IsAddressTaken.insert(RelEntry.Symbol);
       break;
     default:
index e1bab727f17602670f157a3ac7d7a58022ca7d89..93097518d60782f3110cdb8d3d4f3a4656a9c0ae 100644 (file)
@@ -395,9 +395,9 @@ Error WasmObjectFile::parseRelocSection(StringRef Name, const uint8_t *Ptr,
     case wasm::R_WEBASSEMBLY_TYPE_INDEX_LEB:
     case wasm::R_WEBASSEMBLY_GLOBAL_INDEX_LEB:
       break;
-    case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_LEB:
-    case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_SLEB:
-    case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_I32:
+    case wasm::R_WEBASSEMBLY_MEMORY_ADDR_LEB:
+    case wasm::R_WEBASSEMBLY_MEMORY_ADDR_SLEB:
+    case wasm::R_WEBASSEMBLY_MEMORY_ADDR_I32:
       Reloc.Addend = readVarint32(Ptr);
       break;
     default:
index 9cf77829f3bc26f94961b3f29a5c4d373a416a8b..995984b0361646194921bca410268abf5acb9695 100644 (file)
@@ -73,7 +73,7 @@ WebAssemblyWasmObjectWriter::getRelocType(const MCValue &Target,
   case WebAssembly::fixup_code_sleb128_i32:
     if (IsFunction)
       return wasm::R_WEBASSEMBLY_TABLE_INDEX_SLEB;
-    return wasm::R_WEBASSEMBLY_GLOBAL_ADDR_SLEB;
+    return wasm::R_WEBASSEMBLY_MEMORY_ADDR_SLEB;
   case WebAssembly::fixup_code_sleb128_i64:
     llvm_unreachable("fixup_sleb128_i64 not implemented yet");
   case WebAssembly::fixup_code_uleb128_i32:
@@ -81,11 +81,11 @@ WebAssemblyWasmObjectWriter::getRelocType(const MCValue &Target,
       return wasm::R_WEBASSEMBLY_TYPE_INDEX_LEB;
     if (IsFunction)
       return wasm::R_WEBASSEMBLY_FUNCTION_INDEX_LEB;
-    return wasm::R_WEBASSEMBLY_GLOBAL_ADDR_LEB;
+    return wasm::R_WEBASSEMBLY_MEMORY_ADDR_LEB;
   case FK_Data_4:
     if (IsFunction)
       return wasm::R_WEBASSEMBLY_TABLE_INDEX_I32;
-    return wasm::R_WEBASSEMBLY_GLOBAL_ADDR_I32;
+    return wasm::R_WEBASSEMBLY_MEMORY_ADDR_I32;
   case FK_Data_8:
     llvm_unreachable("FK_Data_8 not implemented yet");
   default:
index b8c97453413e23cf87c024efbd5e8507c2141421..6d0d3d12aba1cbeccdc69b3c45c3f37bc0164f8d 100644 (file)
@@ -9,7 +9,7 @@
 
 ; CHECK:   - Type:            DATA
 ; CHECK:     Relocations:
-; CHECK:       - Type:            R_WEBASSEMBLY_GLOBAL_ADDR_I32
+; CHECK:       - Type:            R_WEBASSEMBLY_MEMORY_ADDR_I32
 ; CHECK:         Index:           0
 ; CHECK:         Offset:          0x0000000E
 ; CHECK:     Segments:
index 5fcd9b403811f4b719cd8418e8691c68cf520deb..f007b63ca83e5d988d4623fba3e6317993693aad 100644 (file)
@@ -24,13 +24,13 @@ entry:
 ; CHECK: Relocations [
 ; CHECK-NEXT:   Section (8) CODE {
 ; CHECK-NEXT:     Relocation {
-; CHECK-NEXT:       Type: R_WEBASSEMBLY_GLOBAL_ADDR_LEB (3)
+; CHECK-NEXT:       Type: R_WEBASSEMBLY_MEMORY_ADDR_LEB (3)
 ; CHECK-NEXT:       Offset: 0x9
 ; CHECK-NEXT:       Index: 0x0
 ; CHECK-NEXT:       Addend: 0
 ; CHECK-NEXT:     }
 ; CHECK-NEXT:     Relocation {
-; CHECK-NEXT:       Type: R_WEBASSEMBLY_GLOBAL_ADDR_LEB (3)
+; CHECK-NEXT:       Type: R_WEBASSEMBLY_MEMORY_ADDR_LEB (3)
 ; CHECK-NEXT:       Offset: 0x14
 ; CHECK-NEXT:       Index: 0x1
 ; CHECK-NEXT:       Addend: 0
index 5bd18fa82e8ee1d1b1a0157bbada5c3e9c6e1f82..aa97b65a6841817bcfb6a5b4e5a3bfd0db0c6924 100644 (file)
 ; CHECK: Relocations [
 ; CHECK:   Section (6) DATA {
 ; CHECK:     Relocation {
-; CHECK:       Type: R_WEBASSEMBLY_GLOBAL_ADDR_I32 (5)
+; CHECK:       Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 (5)
 ; CHECK:       Offset: 0xE
 ; CHECK:       Index: 0x0
 ; CHECK:       Addend: 8
 ; CHECK:     }
 ; CHECK:     Relocation {
-; CHECK:       Type: R_WEBASSEMBLY_GLOBAL_ADDR_I32 (5)
+; CHECK:       Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 (5)
 ; CHECK:       Offset: 0x16
 ; CHECK:       Index: 0x1
 ; CHECK:       Addend: -16
index fa0ff966a79fd1242fb983f8f61773e60b39f1fc..21ac823e95797c428715642fdbd88b1ef61298c9 100644 (file)
 ; CHECK-NEXT:         Index:           3
 ; CHECK-NEXT:   - Type:            DATA
 ; CHECK-NEXT:     Relocations:     
-; CHECK-NEXT:       - Type:            R_WEBASSEMBLY_GLOBAL_ADDR_I32
+; CHECK-NEXT:       - Type:            R_WEBASSEMBLY_MEMORY_ADDR_I32
 ; CHECK-NEXT:         Index:           0
 ; CHECK-NEXT:         Offset:          0x00000016
-; CHECK-NEXT:       - Type:            R_WEBASSEMBLY_GLOBAL_ADDR_I32
+; CHECK-NEXT:       - Type:            R_WEBASSEMBLY_MEMORY_ADDR_I32
 ; CHECK-NEXT:         Index:           1
 ; CHECK-NEXT:         Offset:          0x0000001E
 ; CHECK-NEXT:     Segments:        
index 29f0019628758f574b621a5060aa5abd5ea0dc8b..b461f561db425c11e4c4e599efa35fc18cad4db3 100644 (file)
@@ -60,7 +60,7 @@ ELF-MIPSEL: R_MIPS_CALL16 puts
 ELF-MIPSEL: R_MIPS_CALL16 SomeOtherFunction
 
 WASM:      CODE
-WASM-NEXT: R_WEBASSEMBLY_GLOBAL_ADDR_SLEB 0+0
+WASM-NEXT: R_WEBASSEMBLY_MEMORY_ADDR_SLEB 0+0
 WASM-NEXT: R_WEBASSEMBLY_FUNCTION_INDEX_LEB 0+0
 WASM-NEXT: R_WEBASSEMBLY_FUNCTION_INDEX_LEB 1+0
 
index 521aa54027841a066fa958a1863d6e4f93f58573..d2595ddedb2ade1372da0f7127bef537b5678fc8 100644 (file)
@@ -14,11 +14,11 @@ Sections:
           Value:           4
         Content:         '10001000'
     Relocations:
-      - Type:            R_WEBASSEMBLY_GLOBAL_ADDR_I32
+      - Type:            R_WEBASSEMBLY_MEMORY_ADDR_I32
         Index:           0
         Offset:          0x00000006
         Addend:          8
-      - Type:            R_WEBASSEMBLY_GLOBAL_ADDR_I32
+      - Type:            R_WEBASSEMBLY_MEMORY_ADDR_I32
         Index:           0
         Offset:          0x00000006
         Addend:          -6
@@ -29,11 +29,11 @@ Sections:
 # CHECK: Sections:
 # CHECK:   - Type:            DATA
 # CHECK-NEXT:     Relocations:
-# CHECK-NEXT:      - Type:            R_WEBASSEMBLY_GLOBAL_ADDR_I32
+# CHECK-NEXT:      - Type:            R_WEBASSEMBLY_MEMORY_ADDR_I32
 # CHECK-NEXT:        Index:           0
 # CHECK-NEXT:        Offset:          0x00000006
 # CHECK-NEXT:        Addend:          8
-# CHECK-NEXT:      - Type:            R_WEBASSEMBLY_GLOBAL_ADDR_I32
+# CHECK-NEXT:      - Type:            R_WEBASSEMBLY_MEMORY_ADDR_I32
 # CHECK-NEXT:        Index:           0
 # CHECK-NEXT:        Offset:          0x00000006
 # CHECK-NEXT:        Addend:          -6
index 07a167c550f9798a484b7f5d0deb4f18435c34ed..78a987bb3185f916bd52e5fe91473b559cb9f362 100644 (file)
@@ -5,4 +5,4 @@
 @bar = hidden global i32* @foo2, align 4
 
 ; CHECK:      RELOCATION RECORDS FOR [DATA]:
-; CHECK-NEXT: 0000000e R_WEBASSEMBLY_GLOBAL_ADDR_I32 1+0
+; CHECK-NEXT: 0000000e R_WEBASSEMBLY_MEMORY_ADDR_I32 1+0
index 85ccd3cefa1b96a72de750021a3e63d8d9d27540..400aeeaa70439d1944dd9c4c48301190e1021098 100644 (file)
@@ -289,7 +289,7 @@ MACHO-ARM-NEXT:  ]
 WASM:      Relocations [
 WASM-NEXT:   Section (8) CODE {
 WASM-NEXT:     Relocation {
-WASM-NEXT:       Type: R_WEBASSEMBLY_GLOBAL_ADDR_SLEB (4)
+WASM-NEXT:       Type: R_WEBASSEMBLY_MEMORY_ADDR_SLEB (4)
 WASM-NEXT:       Offset: 0x4
 WASM-NEXT:       Index: 0x0
 WASM-NEXT:       Addend: 0
index 266226d59ee878be988003c973c282479748ba2a..88fcbf61a6a78c6fb84bdb6cc0fe48a9d3319c75 100644 (file)
@@ -83,9 +83,9 @@ void WasmDumper::printRelocation(const SectionRef &Section,
 
   bool HasAddend = false;
   switch (RelocType) {
-  case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_LEB:
-  case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_SLEB:
-  case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_I32:
+  case wasm::R_WEBASSEMBLY_MEMORY_ADDR_LEB:
+  case wasm::R_WEBASSEMBLY_MEMORY_ADDR_SLEB:
+  case wasm::R_WEBASSEMBLY_MEMORY_ADDR_I32:
     HasAddend = true;
     break;
   default:
index 059ec5f9edcdafd46690dbd703cfcd01893d1eee..0bd882911f9c2e5f291c6bff4bc8bdbb1512290c 100644 (file)
@@ -370,9 +370,9 @@ int WasmWriter::writeRelocSection(raw_ostream &OS,
     encodeULEB128(Reloc.Offset, OS);
     encodeULEB128(Reloc.Index, OS);
     switch (Reloc.Type) {
-      case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_LEB:
-      case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_SLEB:
-      case wasm::R_WEBASSEMBLY_GLOBAL_ADDR_I32:
+      case wasm::R_WEBASSEMBLY_MEMORY_ADDR_LEB:
+      case wasm::R_WEBASSEMBLY_MEMORY_ADDR_SLEB:
+      case wasm::R_WEBASSEMBLY_MEMORY_ADDR_I32:
         encodeULEB128(Reloc.Addend, OS);
     }
   }