summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/passes/FuncCastEmulation.cpp2
-rw-r--r--test/passes/fpcast-emu.txt40
2 files changed, 25 insertions, 17 deletions
diff --git a/src/passes/FuncCastEmulation.cpp b/src/passes/FuncCastEmulation.cpp
index 5e50afcdc..36a2819b2 100644
--- a/src/passes/FuncCastEmulation.cpp
+++ b/src/passes/FuncCastEmulation.cpp
@@ -39,7 +39,7 @@ namespace wasm {
// This should be enough for everybody. (As described above, we need this
// to match when dynamically linking, and also dynamic linking is why we
// can't just detect this automatically in the module we see.)
-static const int NUM_PARAMS = 15;
+static const int NUM_PARAMS = 16;
// Converts a value to the ABI type of i64.
static Expression* toABI(Expression* value, Module* module) {
diff --git a/test/passes/fpcast-emu.txt b/test/passes/fpcast-emu.txt
index f80b7442c..a4e79a85a 100644
--- a/test/passes/fpcast-emu.txt
+++ b/test/passes/fpcast-emu.txt
@@ -5,7 +5,7 @@
(type $dff (func (param f32 f32) (result f64)))
(type $idd (func (param f64 f64) (result i32)))
(type $FUNCSIG$fijfd (func (param i32 i64 f32 f64) (result f32)))
- (type $FUNCSIG$jjjjjjjjjjjjjjjj (func (param i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64) (result i64)))
+ (type $FUNCSIG$jjjjjjjjjjjjjjjjj (func (param i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64) (result i64)))
(type $FUNCSIG$vijfd (func (param i32 i64 f32 f64)))
(type $FUNCSIG$jii (func (param i32 i32) (result i64)))
(type $FUNCSIG$fjj (func (param i64 i64) (result f32)))
@@ -18,7 +18,7 @@
(export "dynCall_idd" (func $dynCall_idd))
(func $a (; 1 ;) (type $vijfd) (param $x i32) (param $y i64) (param $z f32) (param $w f64)
(drop
- (call_indirect (type $FUNCSIG$jjjjjjjjjjjjjjjj)
+ (call_indirect (type $FUNCSIG$jjjjjjjjjjjjjjjjj)
(i64.extend_i32_u
(i32.const 1)
)
@@ -42,12 +42,13 @@
(i64.const 0)
(i64.const 0)
(i64.const 0)
+ (i64.const 0)
(i32.const 1337)
)
)
)
(func $b (; 2 ;) (type $jii) (param $x i32) (param $y i32) (result i64)
- (call_indirect (type $FUNCSIG$jjjjjjjjjjjjjjjj)
+ (call_indirect (type $FUNCSIG$jjjjjjjjjjjjjjjjj)
(i64.extend_i32_u
(i32.const 1)
)
@@ -67,13 +68,14 @@
(i64.const 0)
(i64.const 0)
(i64.const 0)
+ (i64.const 0)
(i32.const 1337)
)
)
(func $c (; 3 ;) (type $fjj) (param $x i64) (param $y i64) (result f32)
(f32.reinterpret_i32
(i32.wrap_i64
- (call_indirect (type $FUNCSIG$jjjjjjjjjjjjjjjj)
+ (call_indirect (type $FUNCSIG$jjjjjjjjjjjjjjjjj)
(i64.const 1)
(i64.const 2)
(i64.const 0)
@@ -89,6 +91,7 @@
(i64.const 0)
(i64.const 0)
(i64.const 0)
+ (i64.const 0)
(i32.const 1337)
)
)
@@ -96,7 +99,7 @@
)
(func $d (; 4 ;) (type $dff) (param $x f32) (param $y f32) (result f64)
(f64.reinterpret_i64
- (call_indirect (type $FUNCSIG$jjjjjjjjjjjjjjjj)
+ (call_indirect (type $FUNCSIG$jjjjjjjjjjjjjjjjj)
(i64.extend_i32_u
(i32.reinterpret_f32
(f32.const 1)
@@ -120,13 +123,14 @@
(i64.const 0)
(i64.const 0)
(i64.const 0)
+ (i64.const 0)
(i32.const 1337)
)
)
)
(func $e (; 5 ;) (type $idd) (param $x f64) (param $y f64) (result i32)
(i32.wrap_i64
- (call_indirect (type $FUNCSIG$jjjjjjjjjjjjjjjj)
+ (call_indirect (type $FUNCSIG$jjjjjjjjjjjjjjjjj)
(i64.reinterpret_f64
(f64.const 1)
)
@@ -146,13 +150,14 @@
(i64.const 0)
(i64.const 0)
(i64.const 0)
+ (i64.const 0)
(i32.const 1337)
)
)
)
(func $dynCall_dff (; 6 ;) (param $fptr i32) (param $0 f32) (param $1 f32) (result f64)
(f64.reinterpret_i64
- (call_indirect (type $FUNCSIG$jjjjjjjjjjjjjjjj)
+ (call_indirect (type $FUNCSIG$jjjjjjjjjjjjjjjjj)
(i64.extend_i32_u
(i32.reinterpret_f32
(local.get $0)
@@ -176,13 +181,14 @@
(i64.const 0)
(i64.const 0)
(i64.const 0)
+ (i64.const 0)
(local.get $fptr)
)
)
)
(func $dynCall_idd (; 7 ;) (param $fptr i32) (param $0 f64) (param $1 f64) (result i32)
(i32.wrap_i64
- (call_indirect (type $FUNCSIG$jjjjjjjjjjjjjjjj)
+ (call_indirect (type $FUNCSIG$jjjjjjjjjjjjjjjjj)
(i64.reinterpret_f64
(local.get $0)
)
@@ -202,11 +208,12 @@
(i64.const 0)
(i64.const 0)
(i64.const 0)
+ (i64.const 0)
(local.get $fptr)
)
)
)
- (func $byn$fpcast-emu$a (; 8 ;) (type $FUNCSIG$jjjjjjjjjjjjjjjj) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (param $5 i64) (param $6 i64) (param $7 i64) (param $8 i64) (param $9 i64) (param $10 i64) (param $11 i64) (param $12 i64) (param $13 i64) (param $14 i64) (result i64)
+ (func $byn$fpcast-emu$a (; 8 ;) (type $FUNCSIG$jjjjjjjjjjjjjjjjj) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (param $5 i64) (param $6 i64) (param $7 i64) (param $8 i64) (param $9 i64) (param $10 i64) (param $11 i64) (param $12 i64) (param $13 i64) (param $14 i64) (param $15 i64) (result i64)
(call $a
(i32.wrap_i64
(local.get $0)
@@ -223,7 +230,7 @@
)
(i64.const 0)
)
- (func $byn$fpcast-emu$b (; 9 ;) (type $FUNCSIG$jjjjjjjjjjjjjjjj) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (param $5 i64) (param $6 i64) (param $7 i64) (param $8 i64) (param $9 i64) (param $10 i64) (param $11 i64) (param $12 i64) (param $13 i64) (param $14 i64) (result i64)
+ (func $byn$fpcast-emu$b (; 9 ;) (type $FUNCSIG$jjjjjjjjjjjjjjjjj) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (param $5 i64) (param $6 i64) (param $7 i64) (param $8 i64) (param $9 i64) (param $10 i64) (param $11 i64) (param $12 i64) (param $13 i64) (param $14 i64) (param $15 i64) (result i64)
(call $b
(i32.wrap_i64
(local.get $0)
@@ -233,7 +240,7 @@
)
)
)
- (func $byn$fpcast-emu$c (; 10 ;) (type $FUNCSIG$jjjjjjjjjjjjjjjj) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (param $5 i64) (param $6 i64) (param $7 i64) (param $8 i64) (param $9 i64) (param $10 i64) (param $11 i64) (param $12 i64) (param $13 i64) (param $14 i64) (result i64)
+ (func $byn$fpcast-emu$c (; 10 ;) (type $FUNCSIG$jjjjjjjjjjjjjjjjj) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (param $5 i64) (param $6 i64) (param $7 i64) (param $8 i64) (param $9 i64) (param $10 i64) (param $11 i64) (param $12 i64) (param $13 i64) (param $14 i64) (param $15 i64) (result i64)
(i64.extend_i32_u
(i32.reinterpret_f32
(call $c
@@ -243,7 +250,7 @@
)
)
)
- (func $byn$fpcast-emu$d (; 11 ;) (type $FUNCSIG$jjjjjjjjjjjjjjjj) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (param $5 i64) (param $6 i64) (param $7 i64) (param $8 i64) (param $9 i64) (param $10 i64) (param $11 i64) (param $12 i64) (param $13 i64) (param $14 i64) (result i64)
+ (func $byn$fpcast-emu$d (; 11 ;) (type $FUNCSIG$jjjjjjjjjjjjjjjjj) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (param $5 i64) (param $6 i64) (param $7 i64) (param $8 i64) (param $9 i64) (param $10 i64) (param $11 i64) (param $12 i64) (param $13 i64) (param $14 i64) (param $15 i64) (result i64)
(i64.reinterpret_f64
(call $d
(f32.reinterpret_i32
@@ -259,7 +266,7 @@
)
)
)
- (func $byn$fpcast-emu$e (; 12 ;) (type $FUNCSIG$jjjjjjjjjjjjjjjj) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (param $5 i64) (param $6 i64) (param $7 i64) (param $8 i64) (param $9 i64) (param $10 i64) (param $11 i64) (param $12 i64) (param $13 i64) (param $14 i64) (result i64)
+ (func $byn$fpcast-emu$e (; 12 ;) (type $FUNCSIG$jjjjjjjjjjjjjjjjj) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (param $5 i64) (param $6 i64) (param $7 i64) (param $8 i64) (param $9 i64) (param $10 i64) (param $11 i64) (param $12 i64) (param $13 i64) (param $14 i64) (param $15 i64) (result i64)
(i64.extend_i32_u
(call $e
(f64.reinterpret_i64
@@ -271,7 +278,7 @@
)
)
)
- (func $byn$fpcast-emu$imported-func (; 13 ;) (type $FUNCSIG$jjjjjjjjjjjjjjjj) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (param $5 i64) (param $6 i64) (param $7 i64) (param $8 i64) (param $9 i64) (param $10 i64) (param $11 i64) (param $12 i64) (param $13 i64) (param $14 i64) (result i64)
+ (func $byn$fpcast-emu$imported-func (; 13 ;) (type $FUNCSIG$jjjjjjjjjjjjjjjjj) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (param $5 i64) (param $6 i64) (param $7 i64) (param $8 i64) (param $9 i64) (param $10 i64) (param $11 i64) (param $12 i64) (param $13 i64) (param $14 i64) (param $15 i64) (result i64)
(i64.extend_i32_u
(i32.reinterpret_f32
(call $imported-func
@@ -295,7 +302,7 @@
(module
(type $0 (func (param i64)))
(type $1 (func (param f32) (result i64)))
- (type $FUNCSIG$jjjjjjjjjjjjjjjj (func (param i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64) (result i64)))
+ (type $FUNCSIG$jjjjjjjjjjjjjjjjj (func (param i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64) (result i64)))
(table $0 42 42 funcref)
(global $global$0 (mut i32) (i32.const 10))
(export "func_106" (func $0))
@@ -305,7 +312,7 @@
(global.set $global$0
(i32.const 0)
)
- (call_indirect (type $FUNCSIG$jjjjjjjjjjjjjjjj)
+ (call_indirect (type $FUNCSIG$jjjjjjjjjjjjjjjjj)
(br $label$1
(i64.const 4294967295)
)
@@ -323,6 +330,7 @@
(i64.const 0)
(i64.const 0)
(i64.const 0)
+ (i64.const 0)
(i32.const 18)
)
)