summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/lld/main_module.wat58
-rw-r--r--test/lld/main_module.wat.out165
-rw-r--r--test/lld/shared.wat.out36
-rw-r--r--test/lld/shared_add_to_table.wasm.out45
4 files changed, 253 insertions, 51 deletions
diff --git a/test/lld/main_module.wat b/test/lld/main_module.wat
new file mode 100644
index 000000000..fb3263424
--- /dev/null
+++ b/test/lld/main_module.wat
@@ -0,0 +1,58 @@
+(module
+ (type $0 (func (param i32) (result i32)))
+ (type $1 (func))
+ (type $2 (func (result i32)))
+ (import "env" "memory" (memory $0 0))
+ (data (global.get $gimport$2) "Hello, world\00\00\00\00\00\00\00\00\00\00\00\00")
+ (import "env" "__stack_pointer" (global $sp (mut i32)))
+ (import "env" "__indirect_function_table" (table $timport$1 0 funcref))
+ (import "env" "__memory_base" (global $gimport$2 i32))
+ (import "env" "__table_base" (global $gimport$3 i32))
+ (import "GOT.mem" "external_var" (global $gimport$5 (mut i32)))
+ (import "GOT.func" "puts" (global $gimport$6 (mut i32)))
+ (import "GOT.func" "_Z13print_messagev" (global $gimport$7 (mut i32)))
+ (import "env" "puts" (func $puts (param i32) (result i32)))
+ (global $global$0 i32 (i32.const 16))
+ (global $global$1 i32 (i32.const 20))
+ (global $global i32 (i32.const 42))
+ (export "__wasm_call_ctors" (func $__wasm_call_ctors))
+ (export "_Z13print_messagev" (func $print_message\28\29))
+ (export "ptr_puts" (global $global$0))
+ (export "ptr_local_func" (global $global$1))
+ (export "__data_end" (global $global))
+ (func $__wasm_call_ctors (; 1 ;) (type $1)
+ (call $__wasm_apply_relocs)
+ )
+ (func $__wasm_apply_relocs (; 2 ;) (type $1)
+ (i32.store
+ (i32.add
+ (global.get $gimport$2)
+ (i32.const 16)
+ )
+ (global.get $gimport$6)
+ )
+ (i32.store
+ (i32.add
+ (global.get $gimport$2)
+ (i32.const 20)
+ )
+ (global.get $gimport$7)
+ )
+ )
+ (func $print_message\28\29 (; 3 ;) (type $2) (result i32)
+ (drop
+ (call $puts
+ (i32.add
+ (global.get $gimport$2)
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.load
+ (global.get $gimport$5)
+ )
+ )
+ ;; custom section "dylink", size 5
+ ;; custom section "producers", size 112
+)
+
diff --git a/test/lld/main_module.wat.out b/test/lld/main_module.wat.out
new file mode 100644
index 000000000..478a7a08f
--- /dev/null
+++ b/test/lld/main_module.wat.out
@@ -0,0 +1,165 @@
+(module
+ (type $none_=>_i32 (func (result i32)))
+ (type $i32_=>_i32 (func (param i32) (result i32)))
+ (type $none_=>_none (func))
+ (type $i32_=>_none (func (param i32)))
+ (import "env" "memory" (memory $0 0))
+ (data (global.get $gimport$2) "Hello, world\00\00\00\00\00\00\00\00\00\00\00\00")
+ (import "env" "table" (table $0 1 funcref))
+ (elem (global.get $gimport$3) $print_message\28\29)
+ (import "env" "__stack_pointer" (global $sp_import i32))
+ (import "env" "__memory_base" (global $gimport$2 i32))
+ (import "env" "__table_base" (global $gimport$3 i32))
+ (import "env" "puts" (func $puts (param i32) (result i32)))
+ (import "env" "g$external_var" (func $g$external_var (result i32)))
+ (import "env" "fp$puts$ii" (func $fp$puts$ii (result i32)))
+ (global $gimport$5 (mut i32) (i32.const 0))
+ (global $gimport$6 (mut i32) (i32.const 0))
+ (global $gimport$7 (mut i32) (i32.const 0))
+ (global $global$0 i32 (i32.const 16))
+ (global $global$1 i32 (i32.const 20))
+ (global $global i32 (i32.const 42))
+ (global $sp (mut i32) (global.get $sp_import))
+ (export "__wasm_call_ctors" (func $__wasm_call_ctors))
+ (export "_Z13print_messagev" (func $print_message\28\29))
+ (export "ptr_puts" (global $global$0))
+ (export "ptr_local_func" (global $global$1))
+ (export "__data_end" (global $global))
+ (export "stackSave" (func $stackSave))
+ (export "stackAlloc" (func $stackAlloc))
+ (export "stackRestore" (func $stackRestore))
+ (export "__growWasmMemory" (func $__growWasmMemory))
+ (export "__assign_got_enties" (func $__assign_got_enties))
+ (export "dynCall_i" (func $dynCall_i))
+ (func $__wasm_call_ctors (; 3 ;)
+ (call $__wasm_apply_relocs)
+ )
+ (func $__wasm_apply_relocs (; 4 ;)
+ (i32.store
+ (i32.add
+ (global.get $gimport$2)
+ (i32.const 16)
+ )
+ (global.get $gimport$6)
+ )
+ (i32.store
+ (i32.add
+ (global.get $gimport$2)
+ (i32.const 20)
+ )
+ (global.get $gimport$7)
+ )
+ )
+ (func $print_message\28\29 (; 5 ;) (result i32)
+ (drop
+ (call $puts
+ (i32.add
+ (global.get $gimport$2)
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.load
+ (global.get $gimport$5)
+ )
+ )
+ (func $stackSave (; 6 ;) (result i32)
+ (global.get $sp)
+ )
+ (func $stackAlloc (; 7 ;) (param $0 i32) (result i32)
+ (local $1 i32)
+ (global.set $sp
+ (local.tee $1
+ (i32.and
+ (i32.sub
+ (global.get $sp)
+ (local.get $0)
+ )
+ (i32.const -16)
+ )
+ )
+ )
+ (local.get $1)
+ )
+ (func $stackRestore (; 8 ;) (param $0 i32)
+ (global.set $sp
+ (local.get $0)
+ )
+ )
+ (func $__growWasmMemory (; 9 ;) (param $newSize i32) (result i32)
+ (memory.grow
+ (local.get $newSize)
+ )
+ )
+ (func $__assign_got_enties (; 10 ;)
+ (global.set $gimport$5
+ (call $g$external_var)
+ )
+ (global.set $gimport$6
+ (call $fp$puts$ii)
+ )
+ (global.set $gimport$7
+ (i32.add
+ (global.get $gimport$3)
+ (i32.const 0)
+ )
+ )
+ )
+ (func $dynCall_i (; 11 ;) (param $fptr i32) (result i32)
+ (call_indirect (type $none_=>_i32)
+ (local.get $fptr)
+ )
+ )
+)
+(;
+--BEGIN METADATA --
+{
+ "staticBump": 4294966770,
+ "tableSize": 1,
+ "initializers": [
+ "__assign_got_enties",
+ "__wasm_call_ctors"
+ ],
+ "declares": [
+ "puts",
+ "g$external_var",
+ "fp$puts$ii"
+ ],
+ "externs": [
+ "___stack_pointer",
+ "___memory_base",
+ "___table_base"
+ ],
+ "implementedFunctions": [
+ "___wasm_call_ctors",
+ "__Z13print_messagev",
+ "_stackSave",
+ "_stackAlloc",
+ "_stackRestore",
+ "___growWasmMemory",
+ "___assign_got_enties",
+ "_dynCall_i"
+ ],
+ "exports": [
+ "__wasm_call_ctors",
+ "_Z13print_messagev",
+ "stackSave",
+ "stackAlloc",
+ "stackRestore",
+ "__growWasmMemory",
+ "__assign_got_enties",
+ "dynCall_i"
+ ],
+ "namedGlobals": {
+ "ptr_puts" : "16",
+ "ptr_local_func" : "20",
+ "__data_end" : "42"
+ },
+ "invokeFuncs": [
+ ],
+ "features": [
+ ],
+ "mainReadsParams": 0
+}
+-- END METADATA --
+;)
diff --git a/test/lld/shared.wat.out b/test/lld/shared.wat.out
index 64f97b984..5cc1cf88f 100644
--- a/test/lld/shared.wat.out
+++ b/test/lld/shared.wat.out
@@ -4,13 +4,13 @@
(type $i32_=>_i32 (func (param i32) (result i32)))
(import "env" "memory" (memory $0 0))
(data (global.get $gimport$2) "Hello, world\00\00\00\00\00\00\00\00\00\00\00\00")
- (import "env" "table" (table $0 1 funcref))
- (elem (global.get $gimport$3) $print_message\28\29)
+ (import "env" "table" (table $0 0 funcref))
(import "env" "__memory_base" (global $gimport$2 i32))
(import "env" "__table_base" (global $gimport$3 i32))
(import "env" "puts" (func $puts (param i32) (result i32)))
(import "env" "g$external_var" (func $g$external_var (result i32)))
(import "env" "fp$puts$ii" (func $fp$puts$ii (result i32)))
+ (import "env" "fp$_Z13print_messagev$i" (func $fp$_Z13print_messagev$i (result i32)))
(global $gimport$5 (mut i32) (i32.const 0))
(global $gimport$6 (mut i32) (i32.const 0))
(global $gimport$7 (mut i32) (i32.const 0))
@@ -20,11 +20,10 @@
(export "ptr_puts" (global $global$0))
(export "ptr_local_func" (global $global$1))
(export "__post_instantiate" (func $__post_instantiate))
- (export "dynCall_i" (func $dynCall_i))
- (func $__wasm_call_ctors (; 3 ;)
+ (func $__wasm_call_ctors (; 4 ;)
(call $__wasm_apply_relocs)
)
- (func $__wasm_apply_relocs (; 4 ;)
+ (func $__wasm_apply_relocs (; 5 ;)
(i32.store
(i32.add
(global.get $gimport$2)
@@ -40,7 +39,7 @@
(global.get $gimport$7)
)
)
- (func $print_message\28\29 (; 5 ;) (result i32)
+ (func $print_message\28\29 (; 6 ;) (result i32)
(drop
(call $puts
(i32.add
@@ -53,11 +52,11 @@
(global.get $gimport$5)
)
)
- (func $__post_instantiate (; 6 ;)
+ (func $__post_instantiate (; 7 ;)
(call $__assign_got_enties)
(call $__wasm_call_ctors)
)
- (func $__assign_got_enties (; 7 ;)
+ (func $__assign_got_enties (; 8 ;)
(global.set $gimport$5
(call $g$external_var)
)
@@ -65,15 +64,7 @@
(call $fp$puts$ii)
)
(global.set $gimport$7
- (i32.add
- (global.get $gimport$3)
- (i32.const 0)
- )
- )
- )
- (func $dynCall_i (; 8 ;) (param $fptr i32) (result i32)
- (call_indirect (type $none_=>_i32)
- (local.get $fptr)
+ (call $fp$_Z13print_messagev$i)
)
)
)
@@ -81,11 +72,12 @@
--BEGIN METADATA --
{
"staticBump": 0,
- "tableSize": 1,
+ "tableSize": 0,
"declares": [
"puts",
"g$external_var",
- "fp$puts$ii"
+ "fp$puts$ii",
+ "fp$_Z13print_messagev$i"
],
"externs": [
"___memory_base",
@@ -93,13 +85,11 @@
],
"implementedFunctions": [
"__Z13print_messagev",
- "___post_instantiate",
- "_dynCall_i"
+ "___post_instantiate"
],
"exports": [
"_Z13print_messagev",
- "__post_instantiate",
- "dynCall_i"
+ "__post_instantiate"
],
"namedGlobals": {
"ptr_puts" : "16",
diff --git a/test/lld/shared_add_to_table.wasm.out b/test/lld/shared_add_to_table.wasm.out
index c561a89d3..5343b7089 100644
--- a/test/lld/shared_add_to_table.wasm.out
+++ b/test/lld/shared_add_to_table.wasm.out
@@ -1,18 +1,18 @@
(module
- (type $none_=>_none (func))
(type $none_=>_i32 (func (result i32)))
+ (type $none_=>_none (func))
(type $i32_=>_i32 (func (param i32) (result i32)))
(type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
(import "env" "memory" (memory $0 0))
(data (global.get $gimport$3) "*\00\00\00")
- (import "env" "table" (table $timport$1 1 funcref))
- (elem (global.get $gimport$4) $waka_func_mine\28int\29)
+ (import "env" "table" (table $timport$1 0 funcref))
(import "env" "__memory_base" (global $gimport$3 i32))
(import "env" "__table_base" (global $gimport$4 i32))
(import "env" "_Z16waka_func_theirsi" (func $waka_func_theirs\28int\29 (param i32) (result i32)))
(import "env" "g$waka_mine" (func $g$waka_mine (result i32)))
(import "env" "g$waka_others" (func $g$waka_others (result i32)))
(import "env" "fp$_Z16waka_func_theirsi$ii" (func $fp$_Z16waka_func_theirsi$ii (result i32)))
+ (import "env" "fp$_Z14waka_func_minei$ii" (func $fp$_Z14waka_func_minei$ii (result i32)))
(global $gimport$6 (mut i32) (i32.const 0))
(global $gimport$7 (mut i32) (i32.const 0))
(global $gimport$8 (mut i32) (i32.const 0))
@@ -26,19 +26,18 @@
(export "main" (func $main))
(export "__dso_handle" (global $global$1))
(export "__post_instantiate" (func $__post_instantiate))
- (export "dynCall_ii" (func $dynCall_ii))
- (func $__wasm_call_ctors (; 4 ;)
+ (func $__wasm_call_ctors (; 5 ;)
(call $__wasm_apply_relocs)
)
- (func $__wasm_apply_relocs (; 5 ;)
+ (func $__wasm_apply_relocs (; 6 ;)
)
- (func $waka_func_mine\28int\29 (; 6 ;) (param $0 i32) (result i32)
+ (func $waka_func_mine\28int\29 (; 7 ;) (param $0 i32) (result i32)
(i32.add
(local.get $0)
(i32.const 1)
)
)
- (func $__original_main (; 7 ;) (result i32)
+ (func $__original_main (; 8 ;) (result i32)
(local $0 i32)
(local $1 i32)
(local.set $0
@@ -62,14 +61,14 @@
)
)
)
- (func $main (; 8 ;) (param $0 i32) (param $1 i32) (result i32)
+ (func $main (; 9 ;) (param $0 i32) (param $1 i32) (result i32)
(call $__original_main)
)
- (func $__post_instantiate (; 9 ;)
+ (func $__post_instantiate (; 10 ;)
(call $__assign_got_enties)
(call $__wasm_call_ctors)
)
- (func $__assign_got_enties (; 10 ;)
+ (func $__assign_got_enties (; 11 ;)
(global.set $gimport$8
(call $g$waka_mine)
)
@@ -80,22 +79,13 @@
(call $fp$_Z16waka_func_theirsi$ii)
)
(global.set $gimport$7
- (i32.add
- (global.get $gimport$4)
- (i32.const 0)
- )
- )
- )
- (func $dynCall_ii (; 11 ;) (param $fptr i32) (param $0 i32) (result i32)
- (call_indirect (type $i32_=>_i32)
- (local.get $0)
- (local.get $fptr)
+ (call $fp$_Z14waka_func_minei$ii)
)
)
;; dylink section
;; memorysize: 4
;; memoryalignment: 2
- ;; tablesize: 1
+ ;; tablesize: 0
;; tablealignment: 0
;; custom section "producers", size 157
)
@@ -103,12 +93,13 @@
--BEGIN METADATA --
{
"staticBump": 0,
- "tableSize": 1,
+ "tableSize": 0,
"declares": [
"_Z16waka_func_theirsi",
"g$waka_mine",
"g$waka_others",
- "fp$_Z16waka_func_theirsi$ii"
+ "fp$_Z16waka_func_theirsi$ii",
+ "fp$_Z14waka_func_minei$ii"
],
"externs": [
"___memory_base",
@@ -119,16 +110,14 @@
"__Z14waka_func_minei",
"___original_main",
"_main",
- "___post_instantiate",
- "_dynCall_ii"
+ "___post_instantiate"
],
"exports": [
"__wasm_apply_relocs",
"_Z14waka_func_minei",
"__original_main",
"main",
- "__post_instantiate",
- "dynCall_ii"
+ "__post_instantiate"
],
"namedGlobals": {
"waka_mine" : "0",