mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-25 04:31:43 +00:00
Call trampolines with the actual number of provided operands
When calling indirectly, the number of required operands might not be known at compile time and providing the actual number of operands instead solves this.
This commit is contained in:
@ -23,7 +23,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=2 $N=invalid
|
||||
(get_local $3)
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -48,7 +51,7 @@
|
||||
(i32.const 3)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
(block
|
||||
(call $abort
|
||||
@ -66,7 +69,7 @@
|
||||
(i32.const 3)
|
||||
(i32.const 4)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
(i32.const 2)
|
||||
)
|
||||
(i32.const 5)
|
||||
)
|
||||
|
@ -26,7 +26,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=2 $N=invalid
|
||||
(get_local $3)
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -53,7 +56,7 @@
|
||||
(i32.const 3)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
(i32.const 0)
|
||||
)
|
||||
@ -75,7 +78,7 @@
|
||||
(i32.const 3)
|
||||
(i32.const 4)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
(i32.const 2)
|
||||
)
|
||||
(i32.const 5)
|
||||
)
|
||||
|
@ -62,7 +62,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=invalid
|
||||
(get_local $3)
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -203,7 +206,7 @@
|
||||
(i32.const 1)
|
||||
(i32.const 2)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
(i32.const 3)
|
||||
)
|
||||
|
@ -96,7 +96,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=invalid
|
||||
(get_local $3)
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -251,7 +254,7 @@
|
||||
(i32.const 1)
|
||||
(i32.const 2)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
(i32.const 3)
|
||||
)
|
||||
|
@ -2844,7 +2844,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=invalid
|
||||
(get_local $3)
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -2952,7 +2955,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=invalid
|
||||
(get_local $3)
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -4037,7 +4043,7 @@
|
||||
(get_global $std/array/arr)
|
||||
(i32.const 44)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
@ -4057,7 +4063,7 @@
|
||||
(get_global $std/array/arr)
|
||||
(i32.const 42)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
@ -4080,7 +4086,7 @@
|
||||
(get_global $std/array/arr)
|
||||
(i32.const 45)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
@ -4257,7 +4263,7 @@
|
||||
(get_global $std/array/arr)
|
||||
(i32.const 44)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
@ -4280,7 +4286,7 @@
|
||||
(get_global $std/array/arr)
|
||||
(i32.const 42)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
@ -4303,7 +4309,7 @@
|
||||
(get_global $std/array/arr)
|
||||
(i32.const 45)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
|
@ -3192,7 +3192,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=invalid
|
||||
(get_local $3)
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -3310,7 +3313,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=invalid
|
||||
(get_local $3)
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -4523,7 +4529,7 @@
|
||||
(get_global $std/array/arr)
|
||||
(i32.const 44)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
@ -4548,7 +4554,7 @@
|
||||
(get_global $std/array/arr)
|
||||
(i32.const 42)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
@ -4573,7 +4579,7 @@
|
||||
(get_global $std/array/arr)
|
||||
(i32.const 45)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
@ -4766,7 +4772,7 @@
|
||||
(get_global $std/array/arr)
|
||||
(i32.const 44)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
@ -4791,7 +4797,7 @@
|
||||
(get_global $std/array/arr)
|
||||
(i32.const 42)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
@ -4816,7 +4822,7 @@
|
||||
(get_global $std/array/arr)
|
||||
(i32.const 45)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
|
@ -2135,7 +2135,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=2 $N=invalid
|
||||
(get_local $3)
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -2195,7 +2198,7 @@
|
||||
(get_global $std/arraybuffer/buffer)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
(if
|
||||
@ -2235,7 +2238,7 @@
|
||||
(get_global $std/arraybuffer/buffer)
|
||||
(i32.const 1)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
@ -2260,7 +2263,7 @@
|
||||
(get_global $std/arraybuffer/buffer)
|
||||
(i32.const -1)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
@ -2381,7 +2384,7 @@
|
||||
(get_global $std/arraybuffer/buffer)
|
||||
(i32.const 42)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
|
@ -2441,7 +2441,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=2 $N=invalid
|
||||
(get_local $3)
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -2506,7 +2509,7 @@
|
||||
(get_global $std/arraybuffer/buffer)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
(if
|
||||
@ -2550,7 +2553,7 @@
|
||||
(get_global $std/arraybuffer/buffer)
|
||||
(i32.const 1)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
@ -2577,7 +2580,7 @@
|
||||
(get_global $std/arraybuffer/buffer)
|
||||
(i32.const -1)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
@ -2708,7 +2711,7 @@
|
||||
(get_global $std/arraybuffer/buffer)
|
||||
(i32.const 42)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
|
@ -284,7 +284,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=invalid
|
||||
(get_local $3)
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -390,7 +393,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=invalid
|
||||
(get_local $3)
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -526,7 +532,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=invalid
|
||||
(get_local $3)
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -546,7 +555,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=invalid
|
||||
(get_local $3)
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -940,7 +952,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=invalid
|
||||
(get_local $2)
|
||||
(i32.sub
|
||||
(get_local $2)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -3358,7 +3373,7 @@
|
||||
(get_global $std/string/str)
|
||||
(i32.const 108)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(block
|
||||
@ -3377,7 +3392,7 @@
|
||||
(get_global $std/string/str)
|
||||
(i32.const 128)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(block
|
||||
@ -3396,7 +3411,7 @@
|
||||
(get_global $std/string/str)
|
||||
(i32.const 144)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(block
|
||||
@ -3415,7 +3430,7 @@
|
||||
(get_global $std/string/str)
|
||||
(i32.const 156)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
(i32.const 2)
|
||||
)
|
||||
@ -3435,7 +3450,7 @@
|
||||
(get_global $std/string/str)
|
||||
(i32.const 164)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
(i32.const -1)
|
||||
)
|
||||
@ -3454,7 +3469,7 @@
|
||||
(call "$(lib)/string/parseInt|trampoline"
|
||||
(i32.const 172)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
(f64.const 0)
|
||||
)
|
||||
@ -3473,7 +3488,7 @@
|
||||
(call "$(lib)/string/parseInt|trampoline"
|
||||
(i32.const 180)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
(f64.const 1)
|
||||
)
|
||||
@ -3492,7 +3507,7 @@
|
||||
(call "$(lib)/string/parseInt|trampoline"
|
||||
(i32.const 188)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
(f64.const 5)
|
||||
)
|
||||
@ -3511,7 +3526,7 @@
|
||||
(call "$(lib)/string/parseInt|trampoline"
|
||||
(i32.const 204)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
(f64.const 455)
|
||||
)
|
||||
@ -3530,7 +3545,7 @@
|
||||
(call "$(lib)/string/parseInt|trampoline"
|
||||
(i32.const 220)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
(f64.const 3855)
|
||||
)
|
||||
@ -3549,7 +3564,7 @@
|
||||
(call "$(lib)/string/parseInt|trampoline"
|
||||
(i32.const 236)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
(f64.const 3855)
|
||||
)
|
||||
@ -3568,7 +3583,7 @@
|
||||
(call "$(lib)/string/parseInt|trampoline"
|
||||
(i32.const 252)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
(f64.const 11)
|
||||
)
|
||||
@ -3587,7 +3602,7 @@
|
||||
(call "$(lib)/string/parseInt|trampoline"
|
||||
(i32.const 264)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
(f64.const 1)
|
||||
)
|
||||
|
@ -349,7 +349,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=invalid
|
||||
(get_local $3)
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -473,7 +476,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=invalid
|
||||
(get_local $3)
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -634,7 +640,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=invalid
|
||||
(get_local $3)
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -654,7 +663,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=invalid
|
||||
(get_local $3)
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -1097,7 +1109,10 @@
|
||||
(block $N=0
|
||||
(block $N=invalid
|
||||
(br_table $N=0 $N=1 $N=invalid
|
||||
(get_local $2)
|
||||
(i32.sub
|
||||
(get_local $2)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(unreachable)
|
||||
@ -3854,7 +3869,7 @@
|
||||
(get_global $std/string/str)
|
||||
(i32.const 108)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(block
|
||||
@ -3873,7 +3888,7 @@
|
||||
(get_global $std/string/str)
|
||||
(i32.const 128)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(block
|
||||
@ -3892,7 +3907,7 @@
|
||||
(get_global $std/string/str)
|
||||
(i32.const 144)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(block
|
||||
@ -3912,7 +3927,7 @@
|
||||
(get_global $std/string/str)
|
||||
(i32.const 156)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
(i32.const 2)
|
||||
)
|
||||
@ -3934,7 +3949,7 @@
|
||||
(get_global $std/string/str)
|
||||
(i32.const 164)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 2)
|
||||
)
|
||||
(i32.const -1)
|
||||
)
|
||||
@ -3955,7 +3970,7 @@
|
||||
(call "$(lib)/string/parseInt|trampoline"
|
||||
(i32.const 172)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
(f64.const 0)
|
||||
)
|
||||
@ -3976,7 +3991,7 @@
|
||||
(call "$(lib)/string/parseInt|trampoline"
|
||||
(i32.const 180)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
(f64.const 1)
|
||||
)
|
||||
@ -3997,7 +4012,7 @@
|
||||
(call "$(lib)/string/parseInt|trampoline"
|
||||
(i32.const 188)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
(f64.const 5)
|
||||
)
|
||||
@ -4018,7 +4033,7 @@
|
||||
(call "$(lib)/string/parseInt|trampoline"
|
||||
(i32.const 204)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
(f64.const 455)
|
||||
)
|
||||
@ -4039,7 +4054,7 @@
|
||||
(call "$(lib)/string/parseInt|trampoline"
|
||||
(i32.const 220)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
(f64.const 3855)
|
||||
)
|
||||
@ -4060,7 +4075,7 @@
|
||||
(call "$(lib)/string/parseInt|trampoline"
|
||||
(i32.const 236)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
(f64.const 3855)
|
||||
)
|
||||
@ -4081,7 +4096,7 @@
|
||||
(call "$(lib)/string/parseInt|trampoline"
|
||||
(i32.const 252)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
(f64.const 11)
|
||||
)
|
||||
@ -4102,7 +4117,7 @@
|
||||
(call "$(lib)/string/parseInt|trampoline"
|
||||
(i32.const 264)
|
||||
(i32.const 0)
|
||||
(i32.const 0)
|
||||
(i32.const 1)
|
||||
)
|
||||
(f64.const 1)
|
||||
)
|
||||
|
Reference in New Issue
Block a user