diff options
author | Sam Clegg <sbc@chromium.org> | 2017-09-14 23:07:53 +0000 |
---|---|---|
committer | Sam Clegg <sbc@chromium.org> | 2017-09-14 23:07:53 +0000 |
commit | 0928882df3779c044049220f223af297fbc761be (patch) | |
tree | a588b95a41a796ecde7605593a471a3aa633d778 /test/MC | |
parent | fa58033db5bbbcc8d0a9b39b4cc141557cb50a15 (diff) | |
download | llvm-0928882df3779c044049220f223af297fbc761be.tar.gz |
[WebAssembly] Use a separate wasm data segment for each global symbol
This is stepping stone towards honoring -fdata-sections
and letting the assembler decide how many wasm data
segments to create.
Differential Revision: https://reviews.llvm.org/D37834
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313313 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC')
-rw-r--r-- | test/MC/WebAssembly/external-data.ll | 31 | ||||
-rw-r--r-- | test/MC/WebAssembly/reloc-data.ll | 53 | ||||
-rw-r--r-- | test/MC/WebAssembly/unnamed-data.ll | 24 |
3 files changed, 75 insertions, 33 deletions
diff --git a/test/MC/WebAssembly/external-data.ll b/test/MC/WebAssembly/external-data.ll index 6d0d3d12aba..81a7fdec91d 100644 --- a/test/MC/WebAssembly/external-data.ll +++ b/test/MC/WebAssembly/external-data.ll @@ -7,16 +7,21 @@ @foo = global i64 7, align 4 @bar = hidden global i32* @myimport, align 4 -; CHECK: - Type: DATA -; CHECK: Relocations: -; CHECK: - Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 -; CHECK: Index: 0 -; CHECK: Offset: 0x0000000E -; CHECK: Segments: -; CHECK: - SectionOffset: 6 -; CHECK: MemoryIndex: 0 -; CHECK: Offset: -; CHECK: Opcode: I32_CONST -; CHECK: Value: 0 -; CHECK: Content: 0700000000000000FFFFFFFF - +; CHECK: - Type: DATA +; CHECK-NEXT: Relocations: +; CHECK-NEXT: - Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 +; CHECK-NEXT: Index: 0 +; CHECK-NEXT: Offset: 0x00000013 +; CHECK-NEXT: Segments: +; CHECK-NEXT: - SectionOffset: 6 +; CHECK-NEXT: MemoryIndex: 0 +; CHECK-NEXT: Offset: +; CHECK-NEXT: Opcode: I32_CONST +; CHECK-NEXT: Value: 0 +; CHECK-NEXT: Content: '0700000000000000' +; CHECK-NEXT: - SectionOffset: 19 +; CHECK-NEXT: MemoryIndex: 0 +; CHECK-NEXT: Offset: +; CHECK-NEXT: Opcode: I32_CONST +; CHECK-NEXT: Value: 8 +; CHECK-NEXT: Content: FFFFFFFF diff --git a/test/MC/WebAssembly/reloc-data.ll b/test/MC/WebAssembly/reloc-data.ll index aa97b65a684..519df036751 100644 --- a/test/MC/WebAssembly/reloc-data.ll +++ b/test/MC/WebAssembly/reloc-data.ll @@ -6,21 +6,40 @@ @bar = global i64 7, align 4 @a = global i32* getelementptr (i32, i32* @foo, i32 2), align 8 @b = global i64* getelementptr (i64, i64* @bar, i64 -2), align 8 +@c = global [3 x i32*] [i32* @foo, i32* @foo, i32* @foo], align 16 -; CHECK: Format: WASM -; CHECK: Relocations [ -; CHECK: Section (6) DATA { -; CHECK: Relocation { -; CHECK: Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 (5) -; CHECK: Offset: 0xE -; CHECK: Index: 0x0 -; CHECK: Addend: 8 -; CHECK: } -; CHECK: Relocation { -; CHECK: Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 (5) -; CHECK: Offset: 0x16 -; CHECK: Index: 0x1 -; CHECK: Addend: -16 -; CHECK: } -; CHECK: } -; CHECK: ] +; CHECK: Format: WASM +; CHECK: Relocations [ +; CHECK-NEXT: Section (6) DATA { +; CHECK-NEXT: Relocation { +; CHECK-NEXT: Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 (5) +; CHECK-NEXT: Offset: 0x13 +; CHECK-NEXT: Index: 0x0 +; CHECK-NEXT: Addend: 8 +; CHECK-NEXT: } +; CHECK-NEXT: Relocation { +; CHECK-NEXT: Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 (5) +; CHECK-NEXT: Offset: 0x1C +; CHECK-NEXT: Index: 0x1 +; CHECK-NEXT: Addend: -16 +; CHECK-NEXT: } +; CHECK-NEXT: Relocation { +; CHECK-NEXT: Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 (5) +; CHECK-NEXT: Offset: 0x25 +; CHECK-NEXT: Index: 0x0 +; CHECK-NEXT: Addend: 0 +; CHECK-NEXT: } +; CHECK-NEXT: Relocation { +; CHECK-NEXT: Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 (5) +; CHECK-NEXT: Offset: 0x29 +; CHECK-NEXT: Index: 0x0 +; CHECK-NEXT: Addend: 0 +; CHECK-NEXT: } +; CHECK-NEXT: Relocation { +; CHECK-NEXT: Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 (5) +; CHECK-NEXT: Offset: 0x2D +; CHECK-NEXT: Index: 0x0 +; CHECK-NEXT: Addend: 0 +; CHECK-NEXT: } +; CHECK-NEXT: } +; CHECK-NEXT: ] diff --git a/test/MC/WebAssembly/unnamed-data.ll b/test/MC/WebAssembly/unnamed-data.ll index 49a4a88d2f9..b5f6d3c524c 100644 --- a/test/MC/WebAssembly/unnamed-data.ll +++ b/test/MC/WebAssembly/unnamed-data.ll @@ -41,17 +41,35 @@ ; CHECK-NEXT: Relocations: ; CHECK-NEXT: - Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 ; CHECK-NEXT: Index: 0 -; CHECK-NEXT: Offset: 0x00000016 +; CHECK-NEXT: Offset: 0x0000001C ; CHECK-NEXT: - Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 ; CHECK-NEXT: Index: 1 -; CHECK-NEXT: Offset: 0x0000001E +; CHECK-NEXT: Offset: 0x00000025 ; CHECK-NEXT: Segments: ; CHECK-NEXT: - SectionOffset: 6 ; CHECK-NEXT: MemoryIndex: 0 ; CHECK-NEXT: Offset: ; CHECK-NEXT: Opcode: I32_CONST ; CHECK-NEXT: Value: 0 -; CHECK-NEXT: Content: 68656C6C6F00776F726C640000000000000000000000000006000000 +; CHECK-NEXT: Content: 68656C6C6F00 +; CHECK-NEXT: - SectionOffset: 17 +; CHECK-NEXT: MemoryIndex: 0 +; CHECK-NEXT: Offset: +; CHECK-NEXT: Opcode: I32_CONST +; CHECK-NEXT: Value: 6 +; CHECK-NEXT: Content: 776F726C6400 +; CHECK-NEXT: - SectionOffset: 28 +; CHECK-NEXT: MemoryIndex: 0 +; CHECK-NEXT: Offset: +; CHECK-NEXT: Opcode: I32_CONST +; CHECK-NEXT: Value: 16 +; CHECK-NEXT: Content: '00000000' +; CHECK-NEXT: - SectionOffset: 37 +; CHECK-NEXT: MemoryIndex: 0 +; CHECK-NEXT: Offset: +; CHECK-NEXT: Opcode: I32_CONST +; CHECK-NEXT: Value: 24 +; CHECK-NEXT: Content: '06000000' ; CHECK-NEXT: - Type: CUSTOM ; CHECK-NEXT: Name: linking ; CHECK-NEXT: DataSize: 28 |