summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/dump/relocations-all-features.txt90
-rw-r--r--test/dump/relocations.txt46
-rw-r--r--test/dump/symbol-tables-all-features.txt74
-rw-r--r--test/dump/symbol-tables.txt50
4 files changed, 236 insertions, 24 deletions
diff --git a/test/dump/relocations-all-features.txt b/test/dump/relocations-all-features.txt
new file mode 100644
index 00000000..19f940a4
--- /dev/null
+++ b/test/dump/relocations-all-features.txt
@@ -0,0 +1,90 @@
+;;; TOOL: run-objdump
+;;; ARGS0: -r --enable-all
+;;; ARGS1: --headers --details
+(module
+ (type $t (func (param i32)))
+ (import "__extern" "foo" (func (param i32) (result i32)))
+ (import "__extern" "bar" (func (param i32) (param i32) (result i32)))
+ (global $g i32 (i32.const 0))
+ (func $f (param i32) (result i32)
+ get_global 0
+ call 2
+ call 0
+ i32.const 1234
+ i32.const 0
+ call_indirect (param i32) (param i32) (result i32))
+ (export "f" (func $f))
+ (table anyfunc (elem 1)))
+(;; STDOUT ;;;
+
+relocations-all-features.wasm: file format wasm 0x1
+
+Sections:
+
+ Type start=0x0000000a end=0x0000001a (size=0x00000010) count: 3
+ Import start=0x0000001c end=0x0000003b (size=0x0000001f) count: 2
+ Function start=0x0000003d end=0x0000003f (size=0x00000002) count: 1
+ Table start=0x00000041 end=0x00000046 (size=0x00000005) count: 1
+ Global start=0x00000048 end=0x0000004e (size=0x00000006) count: 1
+ Export start=0x00000050 end=0x00000055 (size=0x00000005) count: 1
+ Elem start=0x00000057 end=0x0000005e (size=0x00000007) count: 1
+ Code start=0x00000060 end=0x00000086 (size=0x00000026) count: 1
+ Custom start=0x00000088 end=0x000000a9 (size=0x00000021) "linking"
+ Custom start=0x000000ab end=0x000000c7 (size=0x0000001c) "reloc.Code"
+
+Section Details:
+
+Type[3]:
+ - type[0] (i32) -> nil
+ - type[1] (i32) -> i32
+ - type[2] (i32, i32) -> i32
+Import[2]:
+ - func[0] sig=1 <__extern.foo> <- __extern.foo
+ - func[1] sig=2 <__extern.bar> <- __extern.bar
+Function[1]:
+ - func[2] sig=1 <f>
+Table[1]:
+ - table[0] type=funcref initial=1 max=1
+Global[1]:
+ - global[0] i32 mutable=0 <g> - init i32=0
+Export[1]:
+ - func[2] <f> -> "f"
+Elem[1]:
+ - segment[0] flags=0 table=0 count=1 - init i32=0
+ - elem[0] = func[1] <__extern.bar>
+Code[1]:
+ - func[2] size=36 <f>
+Custom:
+ - name: "linking"
+ - symbol table [count=5]
+ - 0: F <__extern.foo> func=0 undefined binding=global vis=default
+ - 1: F <__extern.bar> func=1 undefined binding=global vis=default
+ - 2: F <f> func=2 exported no_strip binding=global vis=hidden
+ - 3: T <> table=0 binding=local vis=hidden
+ - 4: G <g> global=0 binding=global vis=default
+Custom:
+ - name: "reloc.Code"
+ - relocations for section: 7 (Code) [5]
+ - R_WASM_GLOBAL_INDEX_LEB offset=0x000004(file=0x000064) symbol=4 <g>
+ - R_WASM_FUNCTION_INDEX_LEB offset=0x00000a(file=0x00006a) symbol=2 <f>
+ - R_WASM_FUNCTION_INDEX_LEB offset=0x000010(file=0x000070) symbol=0 <__extern.foo>
+ - R_WASM_TYPE_INDEX_LEB offset=0x00001b(file=0x00007b) type=2
+ - R_WASM_TABLE_NUMBER_LEB offset=0x000020(file=0x000080) symbol=3 <>
+
+Code Disassembly:
+
+000062 func[2] <f>:
+ 000063: 23 80 80 80 80 00 | global.get 0 <g>
+ 000064: R_WASM_GLOBAL_INDEX_LEB 4 <g>
+ 000069: 10 82 80 80 80 00 | call 2 <f>
+ 00006a: R_WASM_FUNCTION_INDEX_LEB 2 <f>
+ 00006f: 10 80 80 80 80 00 | call 0 <__extern.foo>
+ 000070: R_WASM_FUNCTION_INDEX_LEB 0 <__extern.foo>
+ 000075: 41 d2 09 | i32.const 1234
+ 000078: 41 00 | i32.const 0
+ 00007a: 11 82 80 80 80 00 80 80 80 | call_indirect 2 0
+ 000083: 80 00 |
+ 00007b: R_WASM_TYPE_INDEX_LEB 2
+ 000085: 0b | end
+ 000080: R_WASM_TABLE_NUMBER_LEB 3 <>
+;;; STDOUT ;;)
diff --git a/test/dump/relocations.txt b/test/dump/relocations.txt
index d856413a..1fb5e708 100644
--- a/test/dump/relocations.txt
+++ b/test/dump/relocations.txt
@@ -1,6 +1,6 @@
;;; TOOL: run-objdump
;;; ARGS0: -r
-;;; ARGS1: --headers
+;;; ARGS1: --headers --details
(module
(type $t (func (param i32)))
(import "__extern" "foo" (func (param i32) (result i32)))
@@ -29,14 +29,52 @@ Sections:
Export start=0x00000050 end=0x00000055 (size=0x00000005) count: 1
Elem start=0x00000057 end=0x0000005e (size=0x00000007) count: 1
Code start=0x00000060 end=0x00000082 (size=0x00000022) count: 1
- Custom start=0x00000084 end=0x000000a1 (size=0x0000001d) "linking"
- Custom start=0x000000a3 end=0x000000bc (size=0x00000019) "reloc.Code"
+ Custom start=0x00000084 end=0x000000a5 (size=0x00000021) "linking"
+ Custom start=0x000000a7 end=0x000000c0 (size=0x00000019) "reloc.Code"
+
+Section Details:
+
+Type[3]:
+ - type[0] (i32) -> nil
+ - type[1] (i32) -> i32
+ - type[2] (i32, i32) -> i32
+Import[2]:
+ - func[0] sig=1 <__extern.foo> <- __extern.foo
+ - func[1] sig=2 <__extern.bar> <- __extern.bar
+Function[1]:
+ - func[2] sig=1 <f>
+Table[1]:
+ - table[0] type=funcref initial=1 max=1
+Global[1]:
+ - global[0] i32 mutable=0 <g> - init i32=0
+Export[1]:
+ - func[2] <f> -> "f"
+Elem[1]:
+ - segment[0] flags=0 table=0 count=1 - init i32=0
+ - elem[0] = func[1] <__extern.bar>
+Code[1]:
+ - func[2] size=32 <f>
+Custom:
+ - name: "linking"
+ - symbol table [count=5]
+ - 0: F <__extern.foo> func=0 undefined binding=global vis=default
+ - 1: F <__extern.bar> func=1 undefined binding=global vis=default
+ - 2: F <f> func=2 exported no_strip binding=global vis=hidden
+ - 3: T <> table=0 binding=local vis=hidden
+ - 4: G <g> global=0 binding=global vis=default
+Custom:
+ - name: "reloc.Code"
+ - relocations for section: 7 (Code) [4]
+ - R_WASM_GLOBAL_INDEX_LEB offset=0x000004(file=0x000064) symbol=4 <g>
+ - R_WASM_FUNCTION_INDEX_LEB offset=0x00000a(file=0x00006a) symbol=2 <f>
+ - R_WASM_FUNCTION_INDEX_LEB offset=0x000010(file=0x000070) symbol=0 <__extern.foo>
+ - R_WASM_TYPE_INDEX_LEB offset=0x00001b(file=0x00007b) type=2
Code Disassembly:
000062 func[2] <f>:
000063: 23 80 80 80 80 00 | global.get 0 <g>
- 000064: R_WASM_GLOBAL_INDEX_LEB 3 <g>
+ 000064: R_WASM_GLOBAL_INDEX_LEB 4 <g>
000069: 10 82 80 80 80 00 | call 2 <f>
00006a: R_WASM_FUNCTION_INDEX_LEB 2 <f>
00006f: 10 80 80 80 80 00 | call 0 <__extern.foo>
diff --git a/test/dump/symbol-tables-all-features.txt b/test/dump/symbol-tables-all-features.txt
new file mode 100644
index 00000000..562c62a2
--- /dev/null
+++ b/test/dump/symbol-tables-all-features.txt
@@ -0,0 +1,74 @@
+;;; TOOL: run-objdump
+;;; ARGS0: -r --enable-all
+;;; ARGS1: -x
+(module
+ (type (;0;) (func))
+ (import "env" "b" (func (;0;) (type 0)))
+ (func $a (type 0)
+ call 0)
+ (func (type 0)
+ call 0)
+ (func $b (type 0)
+ (call_indirect (type 0) (i32.const 0))
+ call 0)
+ (export "a" (func $a))
+ (table $t 0 funcref))
+(;; STDOUT ;;;
+
+symbol-tables-all-features.wasm: file format wasm 0x1
+
+Section Details:
+
+Type[1]:
+ - type[0] () -> nil
+Import[1]:
+ - func[0] sig=0 <env.b> <- env.b
+Function[3]:
+ - func[1] sig=0 <a>
+ - func[2] sig=0
+ - func[3] sig=0 <b>
+Table[1]:
+ - table[0] type=funcref initial=0
+Export[1]:
+ - func[1] <a> -> "a"
+Code[3]:
+ - func[1] size=8 <a>
+ - func[2] size=8
+ - func[3] size=21 <b>
+Custom:
+ - name: "linking"
+ - symbol table [count=5]
+ - 0: F <env.b> func=0 undefined binding=global vis=default
+ - 1: F <a> func=1 exported no_strip binding=global vis=hidden
+ - 2: F <> func=2 binding=local vis=hidden
+ - 3: F <b> func=3 binding=global vis=default
+ - 4: T <t> table=0 binding=global vis=default
+Custom:
+ - name: "reloc.Code"
+ - relocations for section: 5 (Code) [5]
+ - R_WASM_FUNCTION_INDEX_LEB offset=0x000004(file=0x000032) symbol=0 <env.b>
+ - R_WASM_FUNCTION_INDEX_LEB offset=0x00000d(file=0x00003b) symbol=0 <env.b>
+ - R_WASM_TYPE_INDEX_LEB offset=0x000018(file=0x000046) type=0
+ - R_WASM_TABLE_NUMBER_LEB offset=0x00001d(file=0x00004b) symbol=4 <t>
+ - R_WASM_FUNCTION_INDEX_LEB offset=0x000023(file=0x000051) symbol=0 <env.b>
+
+Code Disassembly:
+
+000030 func[1] <a>:
+ 000031: 10 80 80 80 80 00 | call 0 <env.b>
+ 000032: R_WASM_FUNCTION_INDEX_LEB 0 <env.b>
+ 000037: 0b | end
+000039 func[2]:
+ 00003a: 10 80 80 80 80 00 | call 0 <env.b>
+ 00003b: R_WASM_FUNCTION_INDEX_LEB 0 <env.b>
+ 000040: 0b | end
+000042 func[3] <b>:
+ 000043: 41 00 | i32.const 0
+ 000045: 11 80 80 80 80 00 80 80 80 | call_indirect 0 0
+ 00004e: 80 00 |
+ 000046: R_WASM_TYPE_INDEX_LEB 0
+ 000050: 10 80 80 80 80 00 | call 0 <env.b>
+ 00004b: R_WASM_TABLE_NUMBER_LEB 4 <t>
+ 000056: 0b | end
+ 000051: R_WASM_FUNCTION_INDEX_LEB 0 <env.b>
+;;; STDOUT ;;)
diff --git a/test/dump/symbol-tables.txt b/test/dump/symbol-tables.txt
index 26385d4f..7d6555e2 100644
--- a/test/dump/symbol-tables.txt
+++ b/test/dump/symbol-tables.txt
@@ -9,8 +9,10 @@
(func (type 0)
call 0)
(func $b (type 0)
+ (call_indirect (type 0) (i32.const 0))
call 0)
- (export "a" (func $a)))
+ (export "a" (func $a))
+ (table $t 0 funcref))
(;; STDOUT ;;;
symbol-tables.wasm: file format wasm 0x1
@@ -25,37 +27,45 @@ Function[3]:
- func[1] sig=0 <a>
- func[2] sig=0
- func[3] sig=0 <b>
+Table[1]:
+ - table[0] type=funcref initial=0
Export[1]:
- func[1] <a> -> "a"
Code[3]:
- func[1] size=8 <a>
- func[2] size=8
- - func[3] size=8 <b>
+ - func[3] size=17 <b>
Custom:
- name: "linking"
- - symbol table [count=3]
+ - symbol table [count=5]
- 0: F <env.b> func=0 undefined binding=global vis=default
- 1: F <a> func=1 exported no_strip binding=global vis=hidden
- - 2: F <b> func=3 binding=global vis=default
+ - 2: F <> func=2 binding=local vis=hidden
+ - 3: F <b> func=3 binding=global vis=default
+ - 4: T <t> table=0 binding=global vis=default
Custom:
- name: "reloc.Code"
- - relocations for section: 4 (Code) [3]
- - R_WASM_FUNCTION_INDEX_LEB offset=0x000004(file=0x00002c) symbol=0 <env.b>
- - R_WASM_FUNCTION_INDEX_LEB offset=0x00000d(file=0x000035) symbol=0 <env.b>
- - R_WASM_FUNCTION_INDEX_LEB offset=0x000016(file=0x00003e) symbol=0 <env.b>
+ - relocations for section: 5 (Code) [4]
+ - R_WASM_FUNCTION_INDEX_LEB offset=0x000004(file=0x000032) symbol=0 <env.b>
+ - R_WASM_FUNCTION_INDEX_LEB offset=0x00000d(file=0x00003b) symbol=0 <env.b>
+ - R_WASM_TYPE_INDEX_LEB offset=0x000018(file=0x000046) type=0
+ - R_WASM_FUNCTION_INDEX_LEB offset=0x00001f(file=0x00004d) symbol=0 <env.b>
Code Disassembly:
-00002a func[1] <a>:
- 00002b: 10 80 80 80 80 00 | call 0 <env.b>
- 00002c: R_WASM_FUNCTION_INDEX_LEB 0 <env.b>
- 000031: 0b | end
-000033 func[2]:
- 000034: 10 80 80 80 80 00 | call 0 <env.b>
- 000035: R_WASM_FUNCTION_INDEX_LEB 0 <env.b>
- 00003a: 0b | end
-00003c func[3] <b>:
- 00003d: 10 80 80 80 80 00 | call 0 <env.b>
- 00003e: R_WASM_FUNCTION_INDEX_LEB 0 <env.b>
- 000043: 0b | end
+000030 func[1] <a>:
+ 000031: 10 80 80 80 80 00 | call 0 <env.b>
+ 000032: R_WASM_FUNCTION_INDEX_LEB 0 <env.b>
+ 000037: 0b | end
+000039 func[2]:
+ 00003a: 10 80 80 80 80 00 | call 0 <env.b>
+ 00003b: R_WASM_FUNCTION_INDEX_LEB 0 <env.b>
+ 000040: 0b | end
+000042 func[3] <b>:
+ 000043: 41 00 | i32.const 0
+ 000045: 11 80 80 80 80 00 00 | call_indirect 0 0
+ 000046: R_WASM_TYPE_INDEX_LEB 0
+ 00004c: 10 80 80 80 80 00 | call 0 <env.b>
+ 00004d: R_WASM_FUNCTION_INDEX_LEB 0 <env.b>
+ 000052: 0b | end
;;; STDOUT ;;)