diff options
| author | Sam Clegg <sbc@chromium.org> | 2017-04-14 19:50:44 +0000 |
|---|---|---|
| committer | Sam Clegg <sbc@chromium.org> | 2017-04-14 19:50:44 +0000 |
| commit | 135a4b8ea1cdba8b7ee28782be21e7c172700d43 (patch) | |
| tree | 3c10e7340111cde2533e72de036d742150904174 /llvm/test/tools/llvm-readobj | |
| parent | 7cfe41659c15c911129e2229b8ab460886886bf0 (diff) | |
| download | bcm5719-llvm-135a4b8ea1cdba8b7ee28782be21e7c172700d43.tar.gz bcm5719-llvm-135a4b8ea1cdba8b7ee28782be21e7c172700d43.zip | |
[WebAssembly] Improve readobj and nm support for wasm
Now that the libObect support for wasm is better we can
have readobj and nm produce more useful output too.
Differential Revision: https://reviews.llvm.org/D31514
llvm-svn: 300365
Diffstat (limited to 'llvm/test/tools/llvm-readobj')
| -rw-r--r-- | llvm/test/tools/llvm-readobj/Inputs/trivial.obj.wasm | bin | 181 -> 221 bytes | |||
| -rw-r--r-- | llvm/test/tools/llvm-readobj/file-headers.test | 7 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-readobj/relocations.test | 25 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-readobj/sections.test | 95 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-readobj/symbols.test | 21 |
5 files changed, 102 insertions, 46 deletions
diff --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.wasm b/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.wasm Binary files differindex d3906eeaf6f..f14192f1798 100644 --- a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.wasm +++ b/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.wasm diff --git a/llvm/test/tools/llvm-readobj/file-headers.test b/llvm/test/tools/llvm-readobj/file-headers.test index 52485f7a34a..47fb24de1b6 100644 --- a/llvm/test/tools/llvm-readobj/file-headers.test +++ b/llvm/test/tools/llvm-readobj/file-headers.test @@ -26,10 +26,9 @@ RUN: llvm-readobj -h %p/Inputs/magic.coff-importlib \ RUN: | FileCheck %s -check-prefix COFF-IMPORTLIB RUN: llvm-readobj -h %p/Inputs/trivial.obj.elf-lanai \ RUN: | FileCheck %s -check-prefix ELF-LANAI -# trivial.obj.wasm was generated using wast2wasm which is part of the wabt -# project (https://github.com/WebAssembly/wabt) using the following command: -# $ wast2wasm --debug-names ./test/roundtrip/generate-some-names.txt -o \ -# trivial.obj.wasm +# trivial.obj.wasm was generated using the following command: +# echo "extern int bar, baz; int foo() { return bar + baz + (int)&foo; }" | \ +# ./bin/clang -c -o trivial.obj.wasm -target wasm32-unknown-unknown-wasm -x c - RUN: llvm-readobj -h %p/Inputs/trivial.obj.wasm \ RUN: | FileCheck %s -check-prefix WASM diff --git a/llvm/test/tools/llvm-readobj/relocations.test b/llvm/test/tools/llvm-readobj/relocations.test index 229fef54fb8..475ac1d7e29 100644 --- a/llvm/test/tools/llvm-readobj/relocations.test +++ b/llvm/test/tools/llvm-readobj/relocations.test @@ -16,6 +16,8 @@ RUN: llvm-readobj -r --expand-relocs %p/Inputs/trivial.obj.macho-ppc64 \ RUN: | FileCheck %s -check-prefix MACHO-PPC64 RUN: llvm-readobj -r -expand-relocs %p/Inputs/trivial.obj.macho-arm \ RUN: | FileCheck %s -check-prefix MACHO-ARM +RUN: llvm-readobj -r --expand-relocs %p/Inputs/trivial.obj.wasm \ +RUN: | FileCheck %s -check-prefix WASM COFF: Relocations [ COFF-NEXT: Section (1) .text { @@ -283,3 +285,26 @@ MACHO-ARM-NEXT: Value: 0x4 MACHO-ARM-NEXT: } MACHO-ARM-NEXT: } MACHO-ARM-NEXT: ] + +WASM: Relocations [ +WASM-NEXT: Section (8) CODE { +WASM-NEXT: Relocation { +WASM-NEXT: Type: R_WEBASSEMBLY_TABLE_INDEX_SLEB (1) +WASM-NEXT: Offset: 0x6 +WASM-NEXT: Index: 0x0 +WASM-NEXT: Addend: 0x0 +WASM-NEXT: } +WASM-NEXT: Relocation { +WASM-NEXT: Type: R_WEBASSEMBLY_GLOBAL_ADDR_LEB (3) +WASM-NEXT: Offset: 0x15 +WASM-NEXT: Index: 0x0 +WASM-NEXT: Addend: 0x0 +WASM-NEXT: } +WASM-NEXT: Relocation { +WASM-NEXT: Type: R_WEBASSEMBLY_GLOBAL_ADDR_LEB (3) +WASM-NEXT: Offset: 0x24 +WASM-NEXT: Index: 0x1 +WASM-NEXT: Addend: 0x0 +WASM-NEXT: } +WASM-NEXT: } +WASM-NEXT: ] diff --git a/llvm/test/tools/llvm-readobj/sections.test b/llvm/test/tools/llvm-readobj/sections.test index 53705a7a696..312c47fe4c8 100644 --- a/llvm/test/tools/llvm-readobj/sections.test +++ b/llvm/test/tools/llvm-readobj/sections.test @@ -494,45 +494,56 @@ MACHO-ARM-NEXT: } MACHO-ARM-NEXT:] WASM: Sections [ -WASM-NEXT: Section { -WASM-NEXT: Type: TYPE (0x1) -WASM-NEXT: Size: 15 -WASM-NEXT: Offset: 8 -WASM-NEXT: } -WASM-NEXT: Section { -WASM-NEXT: Type: IMPORT (0x2) -WASM-NEXT: Size: 11 -WASM-NEXT: Offset: 25 -WASM-NEXT: } -WASM-NEXT: Section { -WASM-NEXT: Type: FUNCTION (0x3) -WASM-NEXT: Size: 3 -WASM-NEXT: Offset: 38 -WASM-NEXT: } -WASM-NEXT: Section { -WASM-NEXT: Type: TABLE (0x4) -WASM-NEXT: Size: 5 -WASM-NEXT: Offset: 43 -WASM-NEXT: } -WASM-NEXT: Section { -WASM-NEXT: Type: EXPORT (0x7) -WASM-NEXT: Size: 14 -WASM-NEXT: Offset: 50 -WASM-NEXT: } -WASM-NEXT: Section { -WASM-NEXT: Type: ELEM (0x9) -WASM-NEXT: Size: 7 -WASM-NEXT: Offset: 66 -WASM-NEXT: } -WASM-NEXT: Section { -WASM-NEXT: Type: CODE (0xA) -WASM-NEXT: Size: 42 -WASM-NEXT: Offset: 75 -WASM-NEXT: } -WASM-NEXT: Section { -WASM-NEXT: Type: CUSTOM (0x0) -WASM-NEXT: Size: 60 -WASM-NEXT: Offset: 119 -WASM-NEXT: Name: name -WASM-NEXT: } -WASM-NEXT: ] +WASM-NEXT: Section { +WASM-NEXT: Type: TYPE (0x1) +WASM-NEXT: Size: 5 +WASM-NEXT: Offset: 8 +WASM-NEXT: } +WASM-NEXT: Section { +WASM-NEXT: Type: IMPORT (0x2) +WASM-NEXT: Size: 23 +WASM-NEXT: Offset: 19 +WASM-NEXT: } +WASM-NEXT: Section { +WASM-NEXT: Type: FUNCTION (0x3) +WASM-NEXT: Size: 2 +WASM-NEXT: Offset: 48 +WASM-NEXT: } +WASM-NEXT: Section { +WASM-NEXT: Type: TABLE (0x4) +WASM-NEXT: Size: 4 +WASM-NEXT: Offset: 56 +WASM-NEXT: } +WASM-NEXT: Section { +WASM-NEXT: Type: MEMORY (0x5) +WASM-NEXT: Size: 3 +WASM-NEXT: Offset: 66 +WASM-NEXT: } +WASM-NEXT: Section { +WASM-NEXT: Type: EXPORT (0x7) +WASM-NEXT: Size: 7 +WASM-NEXT: Offset: 75 +WASM-NEXT: } +WASM-NEXT: Section { +WASM-NEXT: Type: ELEM (0x9) +WASM-NEXT: Size: 7 +WASM-NEXT: Offset: 88 +WASM-NEXT: } +WASM-NEXT: Section { +WASM-NEXT: Type: CODE (0xA) +WASM-NEXT: Size: 61 +WASM-NEXT: Offset: 101 +WASM-NEXT: } +WASM-NEXT: Section { +WASM-NEXT: Type: CUSTOM (0x0) +WASM-NEXT: Size: 17 +WASM-NEXT: Offset: 168 +WASM-NEXT: Name: name +WASM-NEXT: } +WASM-NEXT: Section { +WASM-NEXT: Type: CUSTOM (0x0) +WASM-NEXT: Size: 24 +WASM-NEXT: Offset: 191 +WASM-NEXT: Name: reloc.CODE +WASM-NEXT: } +WASM-NEXT:] diff --git a/llvm/test/tools/llvm-readobj/symbols.test b/llvm/test/tools/llvm-readobj/symbols.test index 71955e0d823..1037c286602 100644 --- a/llvm/test/tools/llvm-readobj/symbols.test +++ b/llvm/test/tools/llvm-readobj/symbols.test @@ -2,6 +2,8 @@ RUN: llvm-readobj -t %p/Inputs/trivial.obj.coff-i386 \ RUN: | FileCheck %s -check-prefix COFF RUN: llvm-readobj -t %p/Inputs/trivial.obj.elf-i386 \ RUN: | FileCheck %s -check-prefix ELF +RUN: llvm-readobj -t %p/Inputs/trivial.obj.wasm \ +RUN: | FileCheck %s -check-prefix WASM COFF: Symbols [ COFF-NEXT: Symbol { @@ -68,3 +70,22 @@ ELF-NEXT: Type: Object (0x1) ELF-NEXT: Other: 0 ELF-NEXT: Section: .rodata.str1.1 (0x5) ELF-NEXT: } + +WASM: Symbols [ +WASM-NEXT: Symbol { +WASM-NEXT: Name: bar +WASM-NEXT: Type: GLOBAL_IMPORT (0x2) +WASM-NEXT: } +WASM-NEXT: Symbol { +WASM-NEXT: Name: baz +WASM-NEXT: Type: GLOBAL_IMPORT (0x2) +WASM-NEXT: } +WASM-NEXT: Symbol { +WASM-NEXT: Name: foo +WASM-NEXT: Type: FUNCTION_EXPORT (0x1) +WASM-NEXT: } +WASM-NEXT: Symbol { +WASM-NEXT: Name: foo +WASM-NEXT: Type: DEBUG_FUNCTION_NAME (0x4) +WASM-NEXT: } +WASM-NEXT: ] |

