[wasm] Add ff signature
authorRodrigo Kumpera <kumpera@gmail.com>
Mon, 25 Sep 2017 23:33:11 +0000 (16:33 -0700)
committerRodrigo Kumpera <kumpera@gmail.com>
Mon, 25 Sep 2017 23:33:11 +0000 (16:33 -0700)
mono/mini/aot-runtime-wasm.c

index d2ce4fd23ffb0d421d37825d2d64dc925009b430..d3b286cd0457418313aaee3dfb651e008074de6c 100644 (file)
@@ -312,6 +312,15 @@ wasm_invoke_vifffffi (void *target_func, InterpMethodArguments *margs)
                *(float*)&margs->iargs [1]);
 }
 
+static void
+wasm_invoke_ff (void *target_func, InterpMethodArguments *margs)
+{
+       float (*func)(float a) = target_func;
+
+       float res = func (*(float*)&margs->fargs [FIDX (0)]);
+       *(float*)margs->retval = res;
+}
+
 static void
 wasm_enter_icall_trampoline (void *target_func, InterpMethodArguments *margs)
 {
@@ -374,6 +383,8 @@ wasm_enter_icall_trampoline (void *target_func, InterpMethodArguments *margs)
                wasm_invoke_viffff (target_func, margs);
        else if (!strcmp ("VIFFFFFI", cookie))
                wasm_invoke_vifffffi (target_func, margs);
+       else if (!strcmp ("FF", cookie))
+               wasm_invoke_ff (target_func, margs);
        else {
                printf ("CANNOT HANDLE COOKIE %s\n", cookie);
                g_assert (0);