summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xscripts/test/generate_lld_tests.py5
-rw-r--r--test/lld/em_asm.wast157
-rw-r--r--test/lld/em_asm.wast.mem.membin84 -> 90 bytes
-rw-r--r--test/lld/em_asm.wast.mem.out170
-rw-r--r--test/lld/em_asm.wast.out172
-rw-r--r--test/lld/em_asm_shared.wast168
-rw-r--r--test/lld/em_asm_shared.wast.out205
-rw-r--r--test/lld/hello_world.wast8
-rw-r--r--test/lld/hello_world.wast.mem.out7
-rw-r--r--test/lld/hello_world.wast.out7
-rw-r--r--test/lld/init.wast9
-rw-r--r--test/lld/init.wast.out8
-rw-r--r--test/lld/recursive.wast14
-rw-r--r--test/lld/recursive.wast.out15
-rw-r--r--test/lld/reserved_func_ptr.wast8
-rw-r--r--test/lld/reserved_func_ptr.wast.out7
-rw-r--r--test/lld/shared.wast17
-rw-r--r--test/lld/shared.wast.out39
18 files changed, 185 insertions, 831 deletions
diff --git a/scripts/test/generate_lld_tests.py b/scripts/test/generate_lld_tests.py
index c16415d7e..64fcff2ac 100755
--- a/scripts/test/generate_lld_tests.py
+++ b/scripts/test/generate_lld_tests.py
@@ -19,8 +19,8 @@ from __future__ import print_function
import os
import sys
-from . import shared
-from . import support
+import shared
+import support
def files_with_extensions(path, extensions):
@@ -67,6 +67,7 @@ def generate_wast_files(llvm_bin, emscripten_root):
obj_path, '-o', wasm_path,
'--allow-undefined',
'--export', '__wasm_call_ctors',
+ '--export', '__data_end',
'--global-base=568',
]
if is_shared:
diff --git a/test/lld/em_asm.wast b/test/lld/em_asm.wast
index 83aa63582..84250b6ac 100644
--- a/test/lld/em_asm.wast
+++ b/test/lld/em_asm.wast
@@ -2,27 +2,21 @@
(type $0 (func (param i32 i32 i32) (result i32)))
(type $1 (func))
(type $2 (func (result i32)))
- (type $3 (func (param i32 i32 i32)))
- (type $4 (func (param i32 i32)))
- (type $5 (func (param i32) (result i32)))
- (type $6 (func (param i32 i32) (result i32)))
+ (type $3 (func (param i32 i32) (result i32)))
(import "env" "emscripten_asm_const_int" (func $emscripten_asm_const_int (param i32 i32 i32) (result i32)))
(memory $0 2)
- (data (i32.const 568) "{ Module.print(\"Hello world\"); }\00{ return $0 + $1; }\00{ Module.print(\"Got \" + $0); }\00")
+ (data (i32.const 568) "{ Module.print(\"Hello world\"); }\00\00{ return $0 + $1; }\00ii\00{ Module.print(\"Got \" + $0); }\00i\00")
(table $0 1 1 funcref)
- (global $global$0 (mut i32) (i32.const 66192))
- (global $global$1 i32 (i32.const 66192))
- (global $global$2 i32 (i32.const 652))
+ (global $global$0 (mut i32) (i32.const 66208))
+ (global $global$1 i32 (i32.const 658))
(export "memory" (memory $0))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
- (export "__heap_base" (global $global$1))
- (export "__data_end" (global $global$2))
(export "main" (func $main))
+ (export "__data_end" (global $global$1))
(func $__wasm_call_ctors (; 1 ;) (type $1)
)
(func $__original_main (; 2 ;) (type $2) (result i32)
(local $0 i32)
- (local $1 i32)
(global.set $global$0
(local.tee $0
(i32.sub
@@ -31,163 +25,46 @@
)
)
)
- (i32.store8 offset=24
- (local.get $0)
- (call $__em_asm_sig_builder::inner<>\20const\20__em_asm_sig_builder::__em_asm_sig<>\28\29)
- )
(drop
(call $emscripten_asm_const_int
(i32.const 568)
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
+ (i32.const 601)
(i32.const 0)
)
)
- (call $__em_asm_sig_builder::inner<int\2c\20int>\20const\20__em_asm_sig_builder::__em_asm_sig<int\2c\20int>\28int\2c\20int\29
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
- (i32.const 13)
- (i32.const 27)
- )
(i64.store offset=16
(local.get $0)
(i64.const 115964117005)
)
- (call $__em_asm_sig_builder::inner<int>\20const\20__em_asm_sig_builder::__em_asm_sig<int>\28int\29
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
- (local.tee $1
- (call $emscripten_asm_const_int
- (i32.const 601)
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
- )
- )
- )
(i32.store
(local.get $0)
- (local.get $1)
- )
- (drop
(call $emscripten_asm_const_int
- (i32.const 621)
+ (i32.const 602)
+ (i32.const 622)
(i32.add
(local.get $0)
- (i32.const 24)
- )
- (local.get $0)
- )
- )
- (global.set $global$0
- (i32.add
- (local.get $0)
- (i32.const 32)
- )
- )
- (i32.const 0)
- )
- (func $__em_asm_sig_builder::inner<>\20const\20__em_asm_sig_builder::__em_asm_sig<>\28\29 (; 3 ;) (type $2) (result i32)
- (i32.const 0)
- )
- (func $__em_asm_sig_builder::inner<int\2c\20int>\20const\20__em_asm_sig_builder::__em_asm_sig<int\2c\20int>\28int\2c\20int\29 (; 4 ;) (type $3) (param $0 i32) (param $1 i32) (param $2 i32)
- (local $3 i32)
- (global.set $global$0
- (local.tee $3
- (i32.sub
- (global.get $global$0)
(i32.const 16)
)
)
)
- (i32.store8 offset=13
- (local.get $3)
- (call $__em_asm_sig_builder::sig_char\28int\29
- (local.get $1)
- )
- )
- (local.set $2
- (call $__em_asm_sig_builder::sig_char\28int\29
- (local.get $2)
- )
- )
- (i32.store8
- (i32.add
+ (drop
+ (call $emscripten_asm_const_int
+ (i32.const 625)
+ (i32.const 656)
(local.get $0)
- (i32.const 2)
- )
- (i32.const 0)
- )
- (i32.store8 offset=14
- (local.get $3)
- (local.get $2)
- )
- (i32.store16 align=1
- (local.get $0)
- (i32.load16_u offset=13 align=1
- (local.get $3)
- )
- )
- (global.set $global$0
- (i32.add
- (local.get $3)
- (i32.const 16)
- )
- )
- )
- (func $__em_asm_sig_builder::inner<int>\20const\20__em_asm_sig_builder::__em_asm_sig<int>\28int\29 (; 5 ;) (type $4) (param $0 i32) (param $1 i32)
- (local $2 i32)
- (global.set $global$0
- (local.tee $2
- (i32.sub
- (global.get $global$0)
- (i32.const 16)
- )
- )
- )
- (local.set $1
- (call $__em_asm_sig_builder::sig_char\28int\29
- (local.get $1)
- )
- )
- (i32.store8 offset=15
- (local.get $2)
- (i32.const 0)
- )
- (i32.store8 offset=14
- (local.get $2)
- (local.get $1)
- )
- (i32.store16 align=1
- (local.get $0)
- (i32.load16_u offset=14
- (local.get $2)
)
)
(global.set $global$0
(i32.add
- (local.get $2)
- (i32.const 16)
+ (local.get $0)
+ (i32.const 32)
)
)
+ (i32.const 0)
)
- (func $__em_asm_sig_builder::sig_char\28int\29 (; 6 ;) (type $5) (param $0 i32) (result i32)
- (i32.const 105)
- )
- (func $main (; 7 ;) (type $6) (param $0 i32) (param $1 i32) (result i32)
+ (func $main (; 3 ;) (type $3) (param $0 i32) (param $1 i32) (result i32)
(call $__original_main)
)
- ;; custom section "producers", size 111
+ ;; custom section "producers", size 112
)
diff --git a/test/lld/em_asm.wast.mem.mem b/test/lld/em_asm.wast.mem.mem
index 9249eb195..e06dbba87 100644
--- a/test/lld/em_asm.wast.mem.mem
+++ b/test/lld/em_asm.wast.mem.mem
Binary files differ
diff --git a/test/lld/em_asm.wast.mem.out b/test/lld/em_asm.wast.mem.out
index ef098b2fb..6b6ad6c95 100644
--- a/test/lld/em_asm.wast.mem.out
+++ b/test/lld/em_asm.wast.mem.out
@@ -2,22 +2,17 @@
(type $0 (func (param i32 i32 i32) (result i32)))
(type $1 (func))
(type $2 (func (result i32)))
- (type $3 (func (param i32 i32 i32)))
- (type $4 (func (param i32 i32)))
- (type $5 (func (param i32) (result i32)))
- (type $6 (func (param i32 i32) (result i32)))
+ (type $3 (func (param i32 i32) (result i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(import "env" "emscripten_asm_const_iii" (func $emscripten_asm_const_iii (param i32 i32 i32) (result i32)))
(memory $0 2)
(table $0 1 1 funcref)
- (global $global$0 (mut i32) (i32.const 66192))
- (global $global$1 i32 (i32.const 66192))
- (global $global$2 i32 (i32.const 652))
+ (global $global$0 (mut i32) (i32.const 66208))
+ (global $global$1 i32 (i32.const 658))
(export "memory" (memory $0))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
- (export "__heap_base" (global $global$1))
- (export "__data_end" (global $global$2))
(export "main" (func $main))
+ (export "__data_end" (global $global$1))
(export "stackSave" (func $stackSave))
(export "stackAlloc" (func $stackAlloc))
(export "stackRestore" (func $stackRestore))
@@ -27,7 +22,6 @@
)
(func $__original_main (; 2 ;) (type $2) (result i32)
(local $0 i32)
- (local $1 i32)
(global.set $global$0
(local.tee $0
(i32.sub
@@ -36,167 +30,50 @@
)
)
)
- (i32.store8 offset=24
- (local.get $0)
- (call $__em_asm_sig_builder::inner<>\20const\20__em_asm_sig_builder::__em_asm_sig<>\28\29)
- )
(drop
(call $emscripten_asm_const_iii
(i32.const 568)
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
+ (i32.const 601)
(i32.const 0)
)
)
- (call $__em_asm_sig_builder::inner<int\2c\20int>\20const\20__em_asm_sig_builder::__em_asm_sig<int\2c\20int>\28int\2c\20int\29
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
- (i32.const 13)
- (i32.const 27)
- )
(i64.store offset=16
(local.get $0)
(i64.const 115964117005)
)
- (call $__em_asm_sig_builder::inner<int>\20const\20__em_asm_sig_builder::__em_asm_sig<int>\28int\29
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
- (local.tee $1
- (call $emscripten_asm_const_iii
- (i32.const 601)
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
- )
- )
- )
(i32.store
(local.get $0)
- (local.get $1)
- )
- (drop
(call $emscripten_asm_const_iii
- (i32.const 621)
+ (i32.const 602)
+ (i32.const 622)
(i32.add
(local.get $0)
- (i32.const 24)
- )
- (local.get $0)
- )
- )
- (global.set $global$0
- (i32.add
- (local.get $0)
- (i32.const 32)
- )
- )
- (i32.const 0)
- )
- (func $__em_asm_sig_builder::inner<>\20const\20__em_asm_sig_builder::__em_asm_sig<>\28\29 (; 3 ;) (type $2) (result i32)
- (i32.const 0)
- )
- (func $__em_asm_sig_builder::inner<int\2c\20int>\20const\20__em_asm_sig_builder::__em_asm_sig<int\2c\20int>\28int\2c\20int\29 (; 4 ;) (type $3) (param $0 i32) (param $1 i32) (param $2 i32)
- (local $3 i32)
- (global.set $global$0
- (local.tee $3
- (i32.sub
- (global.get $global$0)
(i32.const 16)
)
)
)
- (i32.store8 offset=13
- (local.get $3)
- (call $__em_asm_sig_builder::sig_char\28int\29
- (local.get $1)
- )
- )
- (local.set $2
- (call $__em_asm_sig_builder::sig_char\28int\29
- (local.get $2)
- )
- )
- (i32.store8
- (i32.add
+ (drop
+ (call $emscripten_asm_const_iii
+ (i32.const 625)
+ (i32.const 656)
(local.get $0)
- (i32.const 2)
- )
- (i32.const 0)
- )
- (i32.store8 offset=14
- (local.get $3)
- (local.get $2)
- )
- (i32.store16 align=1
- (local.get $0)
- (i32.load16_u offset=13 align=1
- (local.get $3)
)
)
(global.set $global$0
(i32.add
- (local.get $3)
- (i32.const 16)
- )
- )
- )
- (func $__em_asm_sig_builder::inner<int>\20const\20__em_asm_sig_builder::__em_asm_sig<int>\28int\29 (; 5 ;) (type $4) (param $0 i32) (param $1 i32)
- (local $2 i32)
- (global.set $global$0
- (local.tee $2
- (i32.sub
- (global.get $global$0)
- (i32.const 16)
- )
- )
- )
- (local.set $1
- (call $__em_asm_sig_builder::sig_char\28int\29
- (local.get $1)
- )
- )
- (i32.store8 offset=15
- (local.get $2)
- (i32.const 0)
- )
- (i32.store8 offset=14
- (local.get $2)
- (local.get $1)
- )
- (i32.store16 align=1
- (local.get $0)
- (i32.load16_u offset=14
- (local.get $2)
- )
- )
- (global.set $global$0
- (i32.add
- (local.get $2)
- (i32.const 16)
+ (local.get $0)
+ (i32.const 32)
)
)
+ (i32.const 0)
)
- (func $__em_asm_sig_builder::sig_char\28int\29 (; 6 ;) (type $5) (param $0 i32) (result i32)
- (i32.const 105)
- )
- (func $main (; 7 ;) (type $6) (param $0 i32) (param $1 i32) (result i32)
+ (func $main (; 3 ;) (type $3) (param $0 i32) (param $1 i32) (result i32)
(call $__original_main)
)
- (func $stackSave (; 8 ;) (result i32)
+ (func $stackSave (; 4 ;) (result i32)
(global.get $global$0)
)
- (func $stackAlloc (; 9 ;) (param $0 i32) (result i32)
+ (func $stackAlloc (; 5 ;) (param $0 i32) (result i32)
(local $1 i32)
(global.set $global$0
(local.tee $1
@@ -211,12 +88,12 @@
)
(local.get $1)
)
- (func $stackRestore (; 10 ;) (param $0 i32)
+ (func $stackRestore (; 6 ;) (param $0 i32)
(global.set $global$0
(local.get $0)
)
)
- (func $__growWasmMemory (; 11 ;) (param $newSize i32) (result i32)
+ (func $__growWasmMemory (; 7 ;) (param $newSize i32) (result i32)
(memory.grow
(local.get $newSize)
)
@@ -227,10 +104,10 @@
{
"asmConsts": {
"568": ["{ Module.print(\"Hello world\"); }", ["iii"], [""]],
- "601": ["{ return $0 + $1; }", ["iii"], [""]],
- "621": ["{ Module.print(\"Got \" + $0); }", ["iii"], [""]]
+ "602": ["{ return $0 + $1; }", ["iii"], [""]],
+ "625": ["{ Module.print(\"Got \" + $0); }", ["iii"], [""]]
},
- "staticBump": 84,
+ "staticBump": 90,
"tableSize": 1,
"initializers": [
"__wasm_call_ctors"
@@ -256,8 +133,7 @@
"__growWasmMemory"
],
"namedGlobals": {
- "__heap_base" : "66192",
- "__data_end" : "652"
+ "__data_end" : "658"
},
"invokeFuncs": [
],
diff --git a/test/lld/em_asm.wast.out b/test/lld/em_asm.wast.out
index ed36f591b..c66cdc1cc 100644
--- a/test/lld/em_asm.wast.out
+++ b/test/lld/em_asm.wast.out
@@ -2,23 +2,18 @@
(type $0 (func (param i32 i32 i32) (result i32)))
(type $1 (func))
(type $2 (func (result i32)))
- (type $3 (func (param i32 i32 i32)))
- (type $4 (func (param i32 i32)))
- (type $5 (func (param i32) (result i32)))
- (type $6 (func (param i32 i32) (result i32)))
+ (type $3 (func (param i32 i32) (result i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(import "env" "emscripten_asm_const_iii" (func $emscripten_asm_const_iii (param i32 i32 i32) (result i32)))
(memory $0 2)
- (data (i32.const 568) "{ Module.print(\"Hello world\"); }\00{ return $0 + $1; }\00{ Module.print(\"Got \" + $0); }\00")
+ (data (i32.const 568) "{ Module.print(\"Hello world\"); }\00\00{ return $0 + $1; }\00ii\00{ Module.print(\"Got \" + $0); }\00i\00")
(table $0 1 1 funcref)
- (global $global$0 (mut i32) (i32.const 66192))
- (global $global$1 i32 (i32.const 66192))
- (global $global$2 i32 (i32.const 652))
+ (global $global$0 (mut i32) (i32.const 66208))
+ (global $global$1 i32 (i32.const 658))
(export "memory" (memory $0))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
- (export "__heap_base" (global $global$1))
- (export "__data_end" (global $global$2))
(export "main" (func $main))
+ (export "__data_end" (global $global$1))
(export "stackSave" (func $stackSave))
(export "stackAlloc" (func $stackAlloc))
(export "stackRestore" (func $stackRestore))
@@ -28,7 +23,6 @@
)
(func $__original_main (; 2 ;) (type $2) (result i32)
(local $0 i32)
- (local $1 i32)
(global.set $global$0
(local.tee $0
(i32.sub
@@ -37,167 +31,50 @@
)
)
)
- (i32.store8 offset=24
- (local.get $0)
- (call $__em_asm_sig_builder::inner<>\20const\20__em_asm_sig_builder::__em_asm_sig<>\28\29)
- )
(drop
(call $emscripten_asm_const_iii
(i32.const 568)
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
+ (i32.const 601)
(i32.const 0)
)
)
- (call $__em_asm_sig_builder::inner<int\2c\20int>\20const\20__em_asm_sig_builder::__em_asm_sig<int\2c\20int>\28int\2c\20int\29
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
- (i32.const 13)
- (i32.const 27)
- )
(i64.store offset=16
(local.get $0)
(i64.const 115964117005)
)
- (call $__em_asm_sig_builder::inner<int>\20const\20__em_asm_sig_builder::__em_asm_sig<int>\28int\29
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
- (local.tee $1
- (call $emscripten_asm_const_iii
- (i32.const 601)
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
- )
- )
- )
(i32.store
(local.get $0)
- (local.get $1)
- )
- (drop
(call $emscripten_asm_const_iii
- (i32.const 621)
+ (i32.const 602)
+ (i32.const 622)
(i32.add
(local.get $0)
- (i32.const 24)
- )
- (local.get $0)
- )
- )
- (global.set $global$0
- (i32.add
- (local.get $0)
- (i32.const 32)
- )
- )
- (i32.const 0)
- )
- (func $__em_asm_sig_builder::inner<>\20const\20__em_asm_sig_builder::__em_asm_sig<>\28\29 (; 3 ;) (type $2) (result i32)
- (i32.const 0)
- )
- (func $__em_asm_sig_builder::inner<int\2c\20int>\20const\20__em_asm_sig_builder::__em_asm_sig<int\2c\20int>\28int\2c\20int\29 (; 4 ;) (type $3) (param $0 i32) (param $1 i32) (param $2 i32)
- (local $3 i32)
- (global.set $global$0
- (local.tee $3
- (i32.sub
- (global.get $global$0)
(i32.const 16)
)
)
)
- (i32.store8 offset=13
- (local.get $3)
- (call $__em_asm_sig_builder::sig_char\28int\29
- (local.get $1)
- )
- )
- (local.set $2
- (call $__em_asm_sig_builder::sig_char\28int\29
- (local.get $2)
- )
- )
- (i32.store8
- (i32.add
+ (drop
+ (call $emscripten_asm_const_iii
+ (i32.const 625)
+ (i32.const 656)
(local.get $0)
- (i32.const 2)
- )
- (i32.const 0)
- )
- (i32.store8 offset=14
- (local.get $3)
- (local.get $2)
- )
- (i32.store16 align=1
- (local.get $0)
- (i32.load16_u offset=13 align=1
- (local.get $3)
)
)
(global.set $global$0
(i32.add
- (local.get $3)
- (i32.const 16)
- )
- )
- )
- (func $__em_asm_sig_builder::inner<int>\20const\20__em_asm_sig_builder::__em_asm_sig<int>\28int\29 (; 5 ;) (type $4) (param $0 i32) (param $1 i32)
- (local $2 i32)
- (global.set $global$0
- (local.tee $2
- (i32.sub
- (global.get $global$0)
- (i32.const 16)
- )
- )
- )
- (local.set $1
- (call $__em_asm_sig_builder::sig_char\28int\29
- (local.get $1)
- )
- )
- (i32.store8 offset=15
- (local.get $2)
- (i32.const 0)
- )
- (i32.store8 offset=14
- (local.get $2)
- (local.get $1)
- )
- (i32.store16 align=1
- (local.get $0)
- (i32.load16_u offset=14
- (local.get $2)
- )
- )
- (global.set $global$0
- (i32.add
- (local.get $2)
- (i32.const 16)
+ (local.get $0)
+ (i32.const 32)
)
)
+ (i32.const 0)
)
- (func $__em_asm_sig_builder::sig_char\28int\29 (; 6 ;) (type $5) (param $0 i32) (result i32)
- (i32.const 105)
- )
- (func $main (; 7 ;) (type $6) (param $0 i32) (param $1 i32) (result i32)
+ (func $main (; 3 ;) (type $3) (param $0 i32) (param $1 i32) (result i32)
(call $__original_main)
)
- (func $stackSave (; 8 ;) (result i32)
+ (func $stackSave (; 4 ;) (result i32)
(global.get $global$0)
)
- (func $stackAlloc (; 9 ;) (param $0 i32) (result i32)
+ (func $stackAlloc (; 5 ;) (param $0 i32) (result i32)
(local $1 i32)
(global.set $global$0
(local.tee $1
@@ -212,12 +89,12 @@
)
(local.get $1)
)
- (func $stackRestore (; 10 ;) (param $0 i32)
+ (func $stackRestore (; 6 ;) (param $0 i32)
(global.set $global$0
(local.get $0)
)
)
- (func $__growWasmMemory (; 11 ;) (param $newSize i32) (result i32)
+ (func $__growWasmMemory (; 7 ;) (param $newSize i32) (result i32)
(memory.grow
(local.get $newSize)
)
@@ -228,10 +105,10 @@
{
"asmConsts": {
"568": ["{ Module.print(\"Hello world\"); }", ["iii"], [""]],
- "601": ["{ return $0 + $1; }", ["iii"], [""]],
- "621": ["{ Module.print(\"Got \" + $0); }", ["iii"], [""]]
+ "602": ["{ return $0 + $1; }", ["iii"], [""]],
+ "625": ["{ Module.print(\"Got \" + $0); }", ["iii"], [""]]
},
- "staticBump": 84,
+ "staticBump": 90,
"tableSize": 1,
"initializers": [
"__wasm_call_ctors"
@@ -257,8 +134,7 @@
"__growWasmMemory"
],
"namedGlobals": {
- "__heap_base" : "66192",
- "__data_end" : "652"
+ "__data_end" : "658"
},
"invokeFuncs": [
],
diff --git a/test/lld/em_asm_shared.wast b/test/lld/em_asm_shared.wast
index 811fb189d..ba70886ec 100644
--- a/test/lld/em_asm_shared.wast
+++ b/test/lld/em_asm_shared.wast
@@ -2,23 +2,25 @@
(type $0 (func (param i32 i32 i32) (result i32)))
(type $1 (func))
(type $2 (func (result i32)))
- (type $3 (func (param i32 i32 i32)))
- (type $4 (func (param i32 i32)))
- (type $5 (func (param i32) (result i32)))
- (type $6 (func (param i32 i32) (result i32)))
+ (type $3 (func (param i32 i32) (result i32)))
(import "env" "memory" (memory $0 0))
- (data (global.get $gimport$3) "{ Module.print(\"Hello world\"); }\00{ return $0 + $1; }\00{ Module.print(\"Got \" + $0); }\00")
+ (data (global.get $gimport$3) "{ Module.print(\"Hello world\"); }\00\00{ return $0 + $1; }\00ii\00{ Module.print(\"Got \" + $0); }\00i\00")
(import "env" "__indirect_function_table" (table $timport$1 0 funcref))
(import "env" "__stack_pointer" (global $gimport$2 (mut i32)))
(import "env" "__memory_base" (global $gimport$3 i32))
(import "env" "__table_base" (global $gimport$4 i32))
+ (import "GOT.mem" "_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJEEE6bufferE" (global $gimport$6 (mut i32)))
+ (import "GOT.mem" "_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJiiEEE6bufferE" (global $gimport$7 (mut i32)))
+ (import "GOT.mem" "_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJiEEE6bufferE" (global $gimport$8 (mut i32)))
(import "env" "emscripten_asm_const_int" (func $emscripten_asm_const_int (param i32 i32 i32) (result i32)))
+ (global $global$0 i32 (i32.const 33))
+ (global $global$1 i32 (i32.const 54))
+ (global $global$2 i32 (i32.const 88))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
(export "__original_main" (func $__original_main))
- (export "_ZN20__em_asm_sig_builder12__em_asm_sigIJEEEKNS_5innerIJDpT_EEES3_" (func $__em_asm_sig_builder::inner<>\20const\20__em_asm_sig_builder::__em_asm_sig<>\28\29))
- (export "_ZN20__em_asm_sig_builder12__em_asm_sigIJiiEEEKNS_5innerIJDpT_EEES3_" (func $__em_asm_sig_builder::inner<int\2c\20int>\20const\20__em_asm_sig_builder::__em_asm_sig<int\2c\20int>\28int\2c\20int\29))
- (export "_ZN20__em_asm_sig_builder12__em_asm_sigIJiEEEKNS_5innerIJDpT_EEES3_" (func $__em_asm_sig_builder::inner<int>\20const\20__em_asm_sig_builder::__em_asm_sig<int>\28int\29))
- (export "_ZN20__em_asm_sig_builder8sig_charEi" (func $__em_asm_sig_builder::sig_char\28int\29))
+ (export "_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJEEE6bufferE" (global $global$0))
+ (export "_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJiiEEE6bufferE" (global $global$1))
+ (export "_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJiEEE6bufferE" (global $global$2))
(export "main" (func $main))
(func $__wasm_call_ctors (; 1 ;) (type $1)
(call $__wasm_apply_relocs)
@@ -28,7 +30,6 @@
(func $__original_main (; 3 ;) (type $2) (result i32)
(local $0 i32)
(local $1 i32)
- (local $2 i32)
(global.set $gimport$2
(local.tee $0
(i32.sub
@@ -37,10 +38,6 @@
)
)
)
- (i32.store8 offset=24
- (local.get $0)
- (call $__em_asm_sig_builder::inner<>\20const\20__em_asm_sig_builder::__em_asm_sig<>\28\29)
- )
(drop
(call $emscripten_asm_const_int
(i32.add
@@ -49,163 +46,50 @@
)
(i32.const 0)
)
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
+ (global.get $gimport$6)
(i32.const 0)
)
)
- (call $__em_asm_sig_builder::inner<int\2c\20int>\20const\20__em_asm_sig_builder::__em_asm_sig<int\2c\20int>\28int\2c\20int\29
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
- (i32.const 13)
- (i32.const 27)
- )
(i64.store offset=16
(local.get $0)
(i64.const 115964117005)
)
- (call $__em_asm_sig_builder::inner<int>\20const\20__em_asm_sig_builder::__em_asm_sig<int>\28int\29
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
- (local.tee $2
- (call $emscripten_asm_const_int
- (i32.add
- (local.get $1)
- (i32.const 33)
- )
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
- )
- )
- )
(i32.store
(local.get $0)
- (local.get $2)
- )
- (drop
(call $emscripten_asm_const_int
(i32.add
(local.get $1)
- (i32.const 53)
+ (i32.const 34)
)
+ (global.get $gimport$7)
(i32.add
(local.get $0)
- (i32.const 24)
- )
- (local.get $0)
- )
- )
- (global.set $gimport$2
- (i32.add
- (local.get $0)
- (i32.const 32)
- )
- )
- (i32.const 0)
- )
- (func $__em_asm_sig_builder::inner<>\20const\20__em_asm_sig_builder::__em_asm_sig<>\28\29 (; 4 ;) (type $2) (result i32)
- (i32.const 0)
- )
- (func $__em_asm_sig_builder::inner<int\2c\20int>\20const\20__em_asm_sig_builder::__em_asm_sig<int\2c\20int>\28int\2c\20int\29 (; 5 ;) (type $3) (param $0 i32) (param $1 i32) (param $2 i32)
- (local $3 i32)
- (global.set $gimport$2
- (local.tee $3
- (i32.sub
- (global.get $gimport$2)
(i32.const 16)
)
)
)
- (i32.store8 offset=13
- (local.get $3)
- (call $__em_asm_sig_builder::sig_char\28int\29
- (local.get $1)
- )
- )
- (local.set $2
- (call $__em_asm_sig_builder::sig_char\28int\29
- (local.get $2)
- )
- )
- (i32.store8
- (i32.add
- (local.get $0)
- (i32.const 2)
- )
- (i32.const 0)
- )
- (i32.store8 offset=14
- (local.get $3)
- (local.get $2)
- )
- (i32.store16 align=1
- (local.get $0)
- (i32.load16_u offset=13 align=1
- (local.get $3)
- )
- )
- (global.set $gimport$2
- (i32.add
- (local.get $3)
- (i32.const 16)
- )
- )
- )
- (func $__em_asm_sig_builder::inner<int>\20const\20__em_asm_sig_builder::__em_asm_sig<int>\28int\29 (; 6 ;) (type $4) (param $0 i32) (param $1 i32)
- (local $2 i32)
- (global.set $gimport$2
- (local.tee $2
- (i32.sub
- (global.get $gimport$2)
- (i32.const 16)
+ (drop
+ (call $emscripten_asm_const_int
+ (i32.add
+ (local.get $1)
+ (i32.const 57)
)
- )
- )
- (local.set $1
- (call $__em_asm_sig_builder::sig_char\28int\29
- (local.get $1)
- )
- )
- (i32.store8 offset=15
- (local.get $2)
- (i32.const 0)
- )
- (i32.store8 offset=14
- (local.get $2)
- (local.get $1)
- )
- (i32.store16 align=1
- (local.get $0)
- (i32.load16_u offset=14
- (local.get $2)
+ (global.get $gimport$8)
+ (local.get $0)
)
)
(global.set $gimport$2
(i32.add
- (local.get $2)
- (i32.const 16)
+ (local.get $0)
+ (i32.const 32)
)
)
+ (i32.const 0)
)
- (func $__em_asm_sig_builder::sig_char\28int\29 (; 7 ;) (type $5) (param $0 i32) (result i32)
- (i32.const 105)
- )
- (func $main (; 8 ;) (type $6) (param $0 i32) (param $1 i32) (result i32)
+ (func $main (; 4 ;) (type $3) (param $0 i32) (param $1 i32) (result i32)
(call $__original_main)
)
;; custom section "dylink", size 5
- ;; custom section "producers", size 111
+ ;; custom section "producers", size 112
)
diff --git a/test/lld/em_asm_shared.wast.out b/test/lld/em_asm_shared.wast.out
index 62b8d469e..f3b676f24 100644
--- a/test/lld/em_asm_shared.wast.out
+++ b/test/lld/em_asm_shared.wast.out
@@ -2,38 +2,42 @@
(type $0 (func (param i32 i32 i32) (result i32)))
(type $1 (func))
(type $2 (func (result i32)))
- (type $3 (func (param i32 i32 i32)))
- (type $4 (func (param i32 i32)))
- (type $5 (func (param i32) (result i32)))
- (type $6 (func (param i32 i32) (result i32)))
+ (type $3 (func (param i32 i32) (result i32)))
(type $FUNCSIG$i (func (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(import "env" "memory" (memory $0 0))
- (data (global.get $gimport$3) "{ Module.print(\"Hello world\"); }\00{ return $0 + $1; }\00{ Module.print(\"Got \" + $0); }\00")
+ (data (global.get $gimport$3) "{ Module.print(\"Hello world\"); }\00\00{ return $0 + $1; }\00ii\00{ Module.print(\"Got \" + $0); }\00i\00")
(import "env" "table" (table $0 0 funcref))
(import "env" "__memory_base" (global $gimport$3 i32))
(import "env" "__table_base" (global $gimport$4 i32))
(import "env" "stackSave" (func $stackSave (result i32)))
(import "env" "stackRestore" (func $stackRestore (param i32)))
+ (import "env" "g$_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJEEE6bufferE" (func $g$_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJEEE6bufferE (result i32)))
+ (import "env" "g$_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJiiEEE6bufferE" (func $g$_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJiiEEE6bufferE (result i32)))
+ (import "env" "g$_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJiEEE6bufferE" (func $g$_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJiEEE6bufferE (result i32)))
(import "env" "emscripten_asm_const_iii" (func $emscripten_asm_const_iii (param i32 i32 i32) (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))
+ (global $global$0 i32 (i32.const 33))
+ (global $global$1 i32 (i32.const 54))
+ (global $global$2 i32 (i32.const 88))
(export "__original_main" (func $__original_main))
- (export "_ZN20__em_asm_sig_builder12__em_asm_sigIJEEEKNS_5innerIJDpT_EEES3_" (func $__em_asm_sig_builder::inner<>\20const\20__em_asm_sig_builder::__em_asm_sig<>\28\29))
- (export "_ZN20__em_asm_sig_builder12__em_asm_sigIJiiEEEKNS_5innerIJDpT_EEES3_" (func $__em_asm_sig_builder::inner<int\2c\20int>\20const\20__em_asm_sig_builder::__em_asm_sig<int\2c\20int>\28int\2c\20int\29))
- (export "_ZN20__em_asm_sig_builder12__em_asm_sigIJiEEEKNS_5innerIJDpT_EEES3_" (func $__em_asm_sig_builder::inner<int>\20const\20__em_asm_sig_builder::__em_asm_sig<int>\28int\29))
- (export "_ZN20__em_asm_sig_builder8sig_charEi" (func $__em_asm_sig_builder::sig_char\28int\29))
+ (export "_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJEEE6bufferE" (global $global$0))
+ (export "_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJiiEEE6bufferE" (global $global$1))
+ (export "_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJiEEE6bufferE" (global $global$2))
(export "main" (func $main))
(export "__post_instantiate" (func $__post_instantiate))
- (func $__wasm_call_ctors (; 3 ;) (type $1)
+ (func $__wasm_call_ctors (; 6 ;) (type $1)
(call $__wasm_apply_relocs)
)
- (func $__wasm_apply_relocs (; 4 ;) (type $1)
+ (func $__wasm_apply_relocs (; 7 ;) (type $1)
(nop)
)
- (func $__original_main (; 5 ;) (type $2) (result i32)
+ (func $__original_main (; 8 ;) (type $2) (result i32)
(local $0 i32)
(local $1 i32)
- (local $2 i32)
(call $stackRestore
(local.tee $0
(i32.sub
@@ -42,10 +46,6 @@
)
)
)
- (i32.store8 offset=24
- (local.get $0)
- (call $__em_asm_sig_builder::inner<>\20const\20__em_asm_sig_builder::__em_asm_sig<>\28\29)
- )
(drop
(call $emscripten_asm_const_iii
(i32.add
@@ -54,61 +54,35 @@
)
(i32.const 0)
)
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
+ (global.get $gimport$6)
(i32.const 0)
)
)
- (call $__em_asm_sig_builder::inner<int\2c\20int>\20const\20__em_asm_sig_builder::__em_asm_sig<int\2c\20int>\28int\2c\20int\29
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
- (i32.const 13)
- (i32.const 27)
- )
(i64.store offset=16
(local.get $0)
(i64.const 115964117005)
)
- (call $__em_asm_sig_builder::inner<int>\20const\20__em_asm_sig_builder::__em_asm_sig<int>\28int\29
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
- (local.tee $2
- (call $emscripten_asm_const_iii
- (i32.add
- (local.get $1)
- (i32.const 33)
- )
- (i32.add
- (local.get $0)
- (i32.const 24)
- )
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
- )
- )
- )
(i32.store
(local.get $0)
- (local.get $2)
- )
- (drop
(call $emscripten_asm_const_iii
(i32.add
(local.get $1)
- (i32.const 53)
+ (i32.const 34)
)
+ (global.get $gimport$7)
(i32.add
(local.get $0)
- (i32.const 24)
+ (i32.const 16)
+ )
+ )
+ )
+ (drop
+ (call $emscripten_asm_const_iii
+ (i32.add
+ (local.get $1)
+ (i32.const 57)
)
+ (global.get $gimport$8)
(local.get $0)
)
)
@@ -120,113 +94,41 @@
)
(i32.const 0)
)
- (func $__em_asm_sig_builder::inner<>\20const\20__em_asm_sig_builder::__em_asm_sig<>\28\29 (; 6 ;) (type $2) (result i32)
- (i32.const 0)
+ (func $main (; 9 ;) (type $3) (param $0 i32) (param $1 i32) (result i32)
+ (call $__original_main)
)
- (func $__em_asm_sig_builder::inner<int\2c\20int>\20const\20__em_asm_sig_builder::__em_asm_sig<int\2c\20int>\28int\2c\20int\29 (; 7 ;) (type $3) (param $0 i32) (param $1 i32) (param $2 i32)
- (local $3 i32)
- (call $stackRestore
- (local.tee $3
- (i32.sub
- (call $stackSave)
- (i32.const 16)
- )
- )
- )
- (i32.store8 offset=13
- (local.get $3)
- (call $__em_asm_sig_builder::sig_char\28int\29
- (local.get $1)
- )
- )
- (local.set $2
- (call $__em_asm_sig_builder::sig_char\28int\29
- (local.get $2)
- )
- )
- (i32.store8
- (i32.add
- (local.get $0)
- (i32.const 2)
- )
- (i32.const 0)
- )
- (i32.store8 offset=14
- (local.get $3)
- (local.get $2)
- )
- (i32.store16 align=1
- (local.get $0)
- (i32.load16_u offset=13 align=1
- (local.get $3)
- )
- )
- (call $stackRestore
- (i32.add
- (local.get $3)
- (i32.const 16)
- )
- )
+ (func $__post_instantiate (; 10 ;)
+ (call $__assign_got_enties)
+ (call $__wasm_call_ctors)
)
- (func $__em_asm_sig_builder::inner<int>\20const\20__em_asm_sig_builder::__em_asm_sig<int>\28int\29 (; 8 ;) (type $4) (param $0 i32) (param $1 i32)
- (local $2 i32)
- (call $stackRestore
- (local.tee $2
- (i32.sub
- (call $stackSave)
- (i32.const 16)
- )
- )
+ (func $__assign_got_enties (; 11 ;)
+ (global.set $gimport$6
+ (call $g$_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJEEE6bufferE)
)
- (local.set $1
- (call $__em_asm_sig_builder::sig_char\28int\29
- (local.get $1)
- )
- )
- (i32.store8 offset=15
- (local.get $2)
- (i32.const 0)
- )
- (i32.store8 offset=14
- (local.get $2)
- (local.get $1)
- )
- (i32.store16 align=1
- (local.get $0)
- (i32.load16_u offset=14
- (local.get $2)
- )
+ (global.set $gimport$7
+ (call $g$_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJiiEEE6bufferE)
)
- (call $stackRestore
- (i32.add
- (local.get $2)
- (i32.const 16)
- )
+ (global.set $gimport$8
+ (call $g$_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJiEEE6bufferE)
)
)
- (func $__em_asm_sig_builder::sig_char\28int\29 (; 9 ;) (type $5) (param $0 i32) (result i32)
- (i32.const 105)
- )
- (func $main (; 10 ;) (type $6) (param $0 i32) (param $1 i32) (result i32)
- (call $__original_main)
- )
- (func $__post_instantiate (; 11 ;)
- (call $__wasm_call_ctors)
- )
)
(;
--BEGIN METADATA --
{
"asmConsts": {
"0": ["{ Module.print(\"Hello world\"); }", ["iii"], [""]],
- "33": ["{ return $0 + $1; }", ["iii"], [""]],
- "53": ["{ Module.print(\"Got \" + $0); }", ["iii"], [""]]
+ "34": ["{ return $0 + $1; }", ["iii"], [""]],
+ "57": ["{ Module.print(\"Got \" + $0); }", ["iii"], [""]]
},
"staticBump": 0,
"tableSize": 0,
"declares": [
"stackSave",
- "stackRestore"
+ "stackRestore",
+ "g$_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJEEE6bufferE",
+ "g$_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJiiEEE6bufferE",
+ "g$_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJiEEE6bufferE"
],
"externs": [
"___memory_base",
@@ -234,23 +136,18 @@
],
"implementedFunctions": [
"___original_main",
- "__ZN20__em_asm_sig_builder12__em_asm_sigIJEEEKNS_5innerIJDpT_EEES3_",
- "__ZN20__em_asm_sig_builder12__em_asm_sigIJiiEEEKNS_5innerIJDpT_EEES3_",
- "__ZN20__em_asm_sig_builder12__em_asm_sigIJiEEEKNS_5innerIJDpT_EEES3_",
- "__ZN20__em_asm_sig_builder8sig_charEi",
"_main",
"___post_instantiate"
],
"exports": [
"__original_main",
- "_ZN20__em_asm_sig_builder12__em_asm_sigIJEEEKNS_5innerIJDpT_EEES3_",
- "_ZN20__em_asm_sig_builder12__em_asm_sigIJiiEEEKNS_5innerIJDpT_EEES3_",
- "_ZN20__em_asm_sig_builder12__em_asm_sigIJiEEEKNS_5innerIJDpT_EEES3_",
- "_ZN20__em_asm_sig_builder8sig_charEi",
"main",
"__post_instantiate"
],
"namedGlobals": {
+ "_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJEEE6bufferE" : "33",
+ "_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJiiEEE6bufferE" : "54",
+ "_ZN20__em_asm_sig_builderI19__em_asm_type_tupleIJiEEE6bufferE" : "88"
},
"invokeFuncs": [
],
diff --git a/test/lld/hello_world.wast b/test/lld/hello_world.wast
index fed975e51..f4b32d0fe 100644
--- a/test/lld/hello_world.wast
+++ b/test/lld/hello_world.wast
@@ -8,13 +8,11 @@
(data (i32.const 568) "Hello, world\00")
(table $0 1 1 funcref)
(global $global$0 (mut i32) (i32.const 66128))
- (global $global$1 i32 (i32.const 66128))
- (global $global$2 i32 (i32.const 581))
+ (global $global$1 i32 (i32.const 581))
(export "memory" (memory $0))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
- (export "__heap_base" (global $global$1))
- (export "__data_end" (global $global$2))
(export "main" (func $main))
+ (export "__data_end" (global $global$1))
(func $__wasm_call_ctors (; 1 ;) (type $1)
)
(func $__original_main (; 2 ;) (type $2) (result i32)
@@ -28,6 +26,6 @@
(func $main (; 3 ;) (type $3) (param $0 i32) (param $1 i32) (result i32)
(call $__original_main)
)
- ;; custom section "producers", size 111
+ ;; custom section "producers", size 112
)
diff --git a/test/lld/hello_world.wast.mem.out b/test/lld/hello_world.wast.mem.out
index c8891f6d9..b81b73a1b 100644
--- a/test/lld/hello_world.wast.mem.out
+++ b/test/lld/hello_world.wast.mem.out
@@ -7,13 +7,11 @@
(memory $0 2)
(table $0 1 1 funcref)
(global $global$0 (mut i32) (i32.const 66128))
- (global $global$1 i32 (i32.const 66128))
- (global $global$2 i32 (i32.const 581))
+ (global $global$1 i32 (i32.const 581))
(export "memory" (memory $0))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
- (export "__heap_base" (global $global$1))
- (export "__data_end" (global $global$2))
(export "main" (func $main))
+ (export "__data_end" (global $global$1))
(export "stackSave" (func $stackSave))
(export "stackAlloc" (func $stackAlloc))
(export "stackRestore" (func $stackRestore))
@@ -91,7 +89,6 @@
"__growWasmMemory"
],
"namedGlobals": {
- "__heap_base" : "66128",
"__data_end" : "581"
},
"invokeFuncs": [
diff --git a/test/lld/hello_world.wast.out b/test/lld/hello_world.wast.out
index 9e01def20..55bc3a89a 100644
--- a/test/lld/hello_world.wast.out
+++ b/test/lld/hello_world.wast.out
@@ -8,13 +8,11 @@
(data (i32.const 568) "Hello, world\00")
(table $0 1 1 funcref)
(global $global$0 (mut i32) (i32.const 66128))
- (global $global$1 i32 (i32.const 66128))
- (global $global$2 i32 (i32.const 581))
+ (global $global$1 i32 (i32.const 581))
(export "memory" (memory $0))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
- (export "__heap_base" (global $global$1))
- (export "__data_end" (global $global$2))
(export "main" (func $main))
+ (export "__data_end" (global $global$1))
(export "stackSave" (func $stackSave))
(export "stackAlloc" (func $stackAlloc))
(export "stackRestore" (func $stackRestore))
@@ -92,7 +90,6 @@
"__growWasmMemory"
],
"namedGlobals": {
- "__heap_base" : "66128",
"__data_end" : "581"
},
"invokeFuncs": [
diff --git a/test/lld/init.wast b/test/lld/init.wast
index 2f06799c9..fe3e5b7b2 100644
--- a/test/lld/init.wast
+++ b/test/lld/init.wast
@@ -3,16 +3,13 @@
(type $1 (func (result i32)))
(type $2 (func (param i32 i32) (result i32)))
(memory $0 2)
- (data (i32.const 568) "\00\00\00\00\00\00\00\00")
(table $0 1 1 funcref)
(global $global$0 (mut i32) (i32.const 66112))
- (global $global$1 i32 (i32.const 66112))
- (global $global$2 i32 (i32.const 576))
+ (global $global$1 i32 (i32.const 576))
(export "memory" (memory $0))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
- (export "__heap_base" (global $global$1))
- (export "__data_end" (global $global$2))
(export "main" (func $main))
+ (export "__data_end" (global $global$1))
(func $__wasm_call_ctors (; 0 ;) (type $0)
(call $init_x)
(call $init_y)
@@ -42,6 +39,6 @@
(func $main (; 4 ;) (type $2) (param $0 i32) (param $1 i32) (result i32)
(call $__original_main)
)
- ;; custom section "producers", size 111
+ ;; custom section "producers", size 112
)
diff --git a/test/lld/init.wast.out b/test/lld/init.wast.out
index 273e0d6aa..52eb0dd51 100644
--- a/test/lld/init.wast.out
+++ b/test/lld/init.wast.out
@@ -3,16 +3,13 @@
(type $1 (func (result i32)))
(type $2 (func (param i32 i32) (result i32)))
(memory $0 2)
- (data (i32.const 568) "\00\00\00\00\00\00\00\00")
(table $0 1 1 funcref)
(global $global$0 (mut i32) (i32.const 66112))
- (global $global$1 i32 (i32.const 66112))
- (global $global$2 i32 (i32.const 576))
+ (global $global$1 i32 (i32.const 576))
(export "memory" (memory $0))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
- (export "__heap_base" (global $global$1))
- (export "__data_end" (global $global$2))
(export "main" (func $main))
+ (export "__data_end" (global $global$1))
(export "stackSave" (func $stackSave))
(export "stackAlloc" (func $stackAlloc))
(export "stackRestore" (func $stackRestore))
@@ -104,7 +101,6 @@
"__growWasmMemory"
],
"namedGlobals": {
- "__heap_base" : "66112",
"__data_end" : "576"
},
"invokeFuncs": [
diff --git a/test/lld/recursive.wast b/test/lld/recursive.wast
index 67f7f3914..cd6a4ae86 100644
--- a/test/lld/recursive.wast
+++ b/test/lld/recursive.wast
@@ -2,18 +2,16 @@
(type $0 (func (param i32 i32) (result i32)))
(type $1 (func))
(type $2 (func (result i32)))
- (import "env" "printf" (func $printf (param i32 i32) (result i32)))
+ (import "env" "iprintf" (func $iprintf (param i32 i32) (result i32)))
(memory $0 2)
(data (i32.const 568) "%d:%d\n\00Result: %d\n\00")
(table $0 1 1 funcref)
(global $global$0 (mut i32) (i32.const 66128))
- (global $global$1 i32 (i32.const 66128))
- (global $global$2 i32 (i32.const 587))
+ (global $global$1 i32 (i32.const 587))
(export "memory" (memory $0))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
- (export "__heap_base" (global $global$1))
- (export "__data_end" (global $global$2))
(export "main" (func $main))
+ (export "__data_end" (global $global$1))
(func $__wasm_call_ctors (; 1 ;) (type $1)
)
(func $foo (; 2 ;) (type $0) (param $0 i32) (param $1 i32) (result i32)
@@ -35,7 +33,7 @@
(local.get $0)
)
(drop
- (call $printf
+ (call $iprintf
(i32.const 568)
(local.get $2)
)
@@ -69,7 +67,7 @@
)
)
(drop
- (call $printf
+ (call $iprintf
(i32.const 575)
(local.get $0)
)
@@ -85,6 +83,6 @@
(func $main (; 4 ;) (type $0) (param $0 i32) (param $1 i32) (result i32)
(call $__original_main)
)
- ;; custom section "producers", size 111
+ ;; custom section "producers", size 112
)
diff --git a/test/lld/recursive.wast.out b/test/lld/recursive.wast.out
index 24868211d..af4caef45 100644
--- a/test/lld/recursive.wast.out
+++ b/test/lld/recursive.wast.out
@@ -2,18 +2,16 @@
(type $0 (func (param i32 i32) (result i32)))
(type $1 (func))
(type $2 (func (result i32)))
- (import "env" "printf" (func $printf (param i32 i32) (result i32)))
+ (import "env" "iprintf" (func $iprintf (param i32 i32) (result i32)))
(memory $0 2)
(data (i32.const 568) "%d:%d\n\00Result: %d\n\00")
(table $0 1 1 funcref)
(global $global$0 (mut i32) (i32.const 66128))
- (global $global$1 i32 (i32.const 66128))
- (global $global$2 i32 (i32.const 587))
+ (global $global$1 i32 (i32.const 587))
(export "memory" (memory $0))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
- (export "__heap_base" (global $global$1))
- (export "__data_end" (global $global$2))
(export "main" (func $main))
+ (export "__data_end" (global $global$1))
(export "stackSave" (func $stackSave))
(export "stackAlloc" (func $stackAlloc))
(export "stackRestore" (func $stackRestore))
@@ -40,7 +38,7 @@
(local.get $0)
)
(drop
- (call $printf
+ (call $iprintf
(i32.const 568)
(local.get $2)
)
@@ -74,7 +72,7 @@
)
)
(drop
- (call $printf
+ (call $iprintf
(i32.const 575)
(local.get $0)
)
@@ -128,7 +126,7 @@
"__wasm_call_ctors"
],
"declares": [
- "printf"
+ "iprintf"
],
"externs": [
],
@@ -149,7 +147,6 @@
"__growWasmMemory"
],
"namedGlobals": {
- "__heap_base" : "66128",
"__data_end" : "587"
},
"invokeFuncs": [
diff --git a/test/lld/reserved_func_ptr.wast b/test/lld/reserved_func_ptr.wast
index a57f0d3af..f979bd2d8 100644
--- a/test/lld/reserved_func_ptr.wast
+++ b/test/lld/reserved_func_ptr.wast
@@ -11,13 +11,11 @@
(table $0 3 3 funcref)
(elem (i32.const 1) $address_taken_func\28int\2c\20int\2c\20int\29 $address_taken_func2\28int\2c\20int\2c\20int\29)
(global $global$0 (mut i32) (i32.const 66112))
- (global $global$1 i32 (i32.const 66112))
- (global $global$2 i32 (i32.const 568))
+ (global $global$1 i32 (i32.const 568))
(export "memory" (memory $0))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
- (export "__heap_base" (global $global$1))
- (export "__data_end" (global $global$2))
(export "main" (func $main))
+ (export "__data_end" (global $global$1))
(func $__wasm_call_ctors (; 1 ;) (type $0)
)
(func $address_taken_func\28int\2c\20int\2c\20int\29 (; 2 ;) (type $5) (param $0 i32) (param $1 i32) (param $2 i32)
@@ -108,6 +106,6 @@
)
(i32.const 0)
)
- ;; custom section "producers", size 111
+ ;; custom section "producers", size 112
)
diff --git a/test/lld/reserved_func_ptr.wast.out b/test/lld/reserved_func_ptr.wast.out
index 613802f6a..fd0d1f4af 100644
--- a/test/lld/reserved_func_ptr.wast.out
+++ b/test/lld/reserved_func_ptr.wast.out
@@ -12,13 +12,11 @@
(table $0 3 3 funcref)
(elem (i32.const 1) $address_taken_func\28int\2c\20int\2c\20int\29 $address_taken_func2\28int\2c\20int\2c\20int\29)
(global $global$0 (mut i32) (i32.const 66112))
- (global $global$1 i32 (i32.const 66112))
- (global $global$2 i32 (i32.const 568))
+ (global $global$1 i32 (i32.const 568))
(export "memory" (memory $0))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
- (export "__heap_base" (global $global$1))
- (export "__data_end" (global $global$2))
(export "main" (func $main))
+ (export "__data_end" (global $global$1))
(export "stackSave" (func $stackSave))
(export "stackAlloc" (func $stackAlloc))
(export "stackRestore" (func $stackRestore))
@@ -186,7 +184,6 @@
"dynCall_viii"
],
"namedGlobals": {
- "__heap_base" : "66112",
"__data_end" : "568"
},
"invokeFuncs": [
diff --git a/test/lld/shared.wast b/test/lld/shared.wast
index 019fc67fe..99b667e42 100644
--- a/test/lld/shared.wast
+++ b/test/lld/shared.wast
@@ -3,9 +3,8 @@
(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\01\00\00\00")
- (import "env" "__indirect_function_table" (table $timport$1 2 funcref))
- (elem (global.get $gimport$3) $puts $print_message\28\29)
+ (data (global.get $gimport$2) "Hello, world\00\00\00\00\00\00\00\00\00\00\00\00")
+ (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)))
@@ -27,20 +26,14 @@
(global.get $gimport$2)
(i32.const 16)
)
- (i32.add
- (global.get $gimport$3)
- (i32.const 0)
- )
+ (global.get $gimport$6)
)
(i32.store
(i32.add
(global.get $gimport$2)
(i32.const 20)
)
- (i32.add
- (global.get $gimport$3)
- (i32.const 1)
- )
+ (global.get $gimport$7)
)
)
(func $print_message\28\29 (; 3 ;) (type $2) (result i32)
@@ -57,6 +50,6 @@
)
)
;; custom section "dylink", size 5
- ;; custom section "producers", size 111
+ ;; custom section "producers", size 112
)
diff --git a/test/lld/shared.wast.out b/test/lld/shared.wast.out
index 4931092d6..d27672f3a 100644
--- a/test/lld/shared.wast.out
+++ b/test/lld/shared.wast.out
@@ -3,11 +3,9 @@
(type $1 (func))
(type $2 (func (result i32)))
(type $FUNCSIG$i (func (result i32)))
- (type $FUNCSIG$ii (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\01\00\00\00")
- (import "env" "table" (table $0 2 funcref))
- (elem (global.get $gimport$3) $puts $print_message\28\29)
+ (data (global.get $gimport$2) "Hello, world\00\00\00\00\00\00\00\00\00\00\00\00")
+ (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)))
@@ -23,8 +21,6 @@
(export "ptr_puts" (global $global$0))
(export "ptr_local_func" (global $global$1))
(export "__post_instantiate" (func $__post_instantiate))
- (export "dynCall_ii" (func $dynCall_ii))
- (export "dynCall_i" (func $dynCall_i))
(func $__wasm_call_ctors (; 4 ;) (type $1)
(call $__wasm_apply_relocs)
)
@@ -34,20 +30,14 @@
(global.get $gimport$2)
(i32.const 16)
)
- (i32.add
- (global.get $gimport$3)
- (i32.const 0)
- )
+ (global.get $gimport$6)
)
(i32.store
(i32.add
(global.get $gimport$2)
(i32.const 20)
)
- (i32.add
- (global.get $gimport$3)
- (i32.const 1)
- )
+ (global.get $gimport$7)
)
)
(func $print_message\28\29 (; 6 ;) (type $2) (result i32)
@@ -78,23 +68,12 @@
(call $fp$_Z13print_messagev$i)
)
)
- (func $dynCall_ii (; 9 ;) (param $fptr i32) (param $0 i32) (result i32)
- (call_indirect (type $FUNCSIG$ii)
- (local.get $0)
- (local.get $fptr)
- )
- )
- (func $dynCall_i (; 10 ;) (param $fptr i32) (result i32)
- (call_indirect (type $FUNCSIG$i)
- (local.get $fptr)
- )
- )
)
(;
--BEGIN METADATA --
{
"staticBump": 0,
- "tableSize": 2,
+ "tableSize": 0,
"declares": [
"puts",
"g$external_var",
@@ -107,15 +86,11 @@
],
"implementedFunctions": [
"__Z13print_messagev",
- "___post_instantiate",
- "_dynCall_ii",
- "_dynCall_i"
+ "___post_instantiate"
],
"exports": [
"_Z13print_messagev",
- "__post_instantiate",
- "dynCall_ii",
- "dynCall_i"
+ "__post_instantiate"
],
"namedGlobals": {
"ptr_puts" : "16",