From 090f393f9781b304ef64a6cb72e1300d4a2415f1 Mon Sep 17 00:00:00 2001 From: Igor Yakovlev Date: Thu, 27 Jul 2023 16:02:52 +0200 Subject: [PATCH] [Wasm] Make std internal functions have a bodies --- .../kotlin/wasm/internal/WasmInstructions.kt | 340 ++++++++++++------ 1 file changed, 226 insertions(+), 114 deletions(-) diff --git a/libraries/stdlib/wasm/internal/kotlin/wasm/internal/WasmInstructions.kt b/libraries/stdlib/wasm/internal/kotlin/wasm/internal/WasmInstructions.kt index ab1fb81f02a..ddc71351011 100644 --- a/libraries/stdlib/wasm/internal/kotlin/wasm/internal/WasmInstructions.kt +++ b/libraries/stdlib/wasm/internal/kotlin/wasm/internal/WasmInstructions.kt @@ -35,265 +35,351 @@ internal fun array_new_data0(address: Int, length: Int): T = implementedAsIntrinsic @WasmOp(WasmOp.I32_EQ) -internal external fun wasm_i32_eq(a: Int, b: Int): Boolean +internal fun wasm_i32_eq(a: Int, b: Int): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I32_NE) -internal external fun wasm_i32_ne(a: Int, b: Int): Boolean +internal fun wasm_i32_ne(a: Int, b: Int): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I32_LT_S) -internal external fun wasm_i32_lt_s(a: Int, b: Int): Boolean +internal fun wasm_i32_lt_s(a: Int, b: Int): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I32_LT_U) -internal external fun wasm_i32_lt_u(a: Int, b: Int): Boolean +internal fun wasm_i32_lt_u(a: Int, b: Int): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I32_GT_S) -internal external fun wasm_i32_gt_s(a: Int, b: Int): Boolean +internal fun wasm_i32_gt_s(a: Int, b: Int): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I32_GT_U) -internal external fun wasm_i32_gt_u(a: Int, b: Int): Boolean +internal fun wasm_i32_gt_u(a: Int, b: Int): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I32_LE_S) -internal external fun wasm_i32_le_s(a: Int, b: Int): Boolean +internal fun wasm_i32_le_s(a: Int, b: Int): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I32_LE_U) -internal external fun wasm_i32_le_u(a: Int, b: Int): Boolean +internal fun wasm_i32_le_u(a: Int, b: Int): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I32_GE_S) -internal external fun wasm_i32_ge_s(a: Int, b: Int): Boolean +internal fun wasm_i32_ge_s(a: Int, b: Int): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I32_GE_U) -internal external fun wasm_i32_ge_u(a: Int, b: Int): Boolean +internal fun wasm_i32_ge_u(a: Int, b: Int): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I64_EQ) -internal external fun wasm_i64_eq(a: Long, b: Long): Boolean +internal fun wasm_i64_eq(a: Long, b: Long): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I64_NE) -internal external fun wasm_i64_ne(a: Long, b: Long): Boolean +internal fun wasm_i64_ne(a: Long, b: Long): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I64_LT_S) -internal external fun wasm_i64_lt_s(a: Long, b: Long): Boolean +internal fun wasm_i64_lt_s(a: Long, b: Long): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I64_LT_U) -internal external fun wasm_i64_lt_u(a: Long, b: Long): Boolean +internal fun wasm_i64_lt_u(a: Long, b: Long): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I64_GT_S) -internal external fun wasm_i64_gt_s(a: Long, b: Long): Boolean +internal fun wasm_i64_gt_s(a: Long, b: Long): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I64_GT_U) -internal external fun wasm_i64_gt_u(a: Long, b: Long): Boolean +internal fun wasm_i64_gt_u(a: Long, b: Long): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I64_LE_S) -internal external fun wasm_i64_le_s(a: Long, b: Long): Boolean +internal fun wasm_i64_le_s(a: Long, b: Long): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I64_LE_U) -internal external fun wasm_i64_le_u(a: Long, b: Long): Boolean +internal fun wasm_i64_le_u(a: Long, b: Long): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I64_GE_S) -internal external fun wasm_i64_ge_s(a: Long, b: Long): Boolean +internal fun wasm_i64_ge_s(a: Long, b: Long): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I64_GE_U) -internal external fun wasm_i64_ge_u(a: Long, b: Long): Boolean +internal fun wasm_i64_ge_u(a: Long, b: Long): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.F32_EQ) -internal external fun wasm_f32_eq(a: Float, b: Float): Boolean +internal fun wasm_f32_eq(a: Float, b: Float): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.F32_NE) -internal external fun wasm_f32_ne(a: Float, b: Float): Boolean +internal fun wasm_f32_ne(a: Float, b: Float): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.F32_LT) -internal external fun wasm_f32_lt(a: Float, b: Float): Boolean +internal fun wasm_f32_lt(a: Float, b: Float): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.F32_GT) -internal external fun wasm_f32_gt(a: Float, b: Float): Boolean +internal fun wasm_f32_gt(a: Float, b: Float): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.F32_LE) -internal external fun wasm_f32_le(a: Float, b: Float): Boolean +internal fun wasm_f32_le(a: Float, b: Float): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.F32_GE) -internal external fun wasm_f32_ge(a: Float, b: Float): Boolean +internal fun wasm_f32_ge(a: Float, b: Float): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.F64_EQ) -internal external fun wasm_f64_eq(a: Double, b: Double): Boolean +internal fun wasm_f64_eq(a: Double, b: Double): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.F64_NE) -internal external fun wasm_f64_ne(a: Double, b: Double): Boolean +internal fun wasm_f64_ne(a: Double, b: Double): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.F64_LT) -internal external fun wasm_f64_lt(a: Double, b: Double): Boolean +internal fun wasm_f64_lt(a: Double, b: Double): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.F64_GT) -internal external fun wasm_f64_gt(a: Double, b: Double): Boolean +internal fun wasm_f64_gt(a: Double, b: Double): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.F64_LE) -internal external fun wasm_f64_le(a: Double, b: Double): Boolean +internal fun wasm_f64_le(a: Double, b: Double): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.F64_GE) -internal external fun wasm_f64_ge(a: Double, b: Double): Boolean +internal fun wasm_f64_ge(a: Double, b: Double): Boolean = + implementedAsIntrinsic @WasmOp(WasmOp.I32_ADD) -internal external fun wasm_i32_add(a: Int, b: Int): Int +internal fun wasm_i32_add(a: Int, b: Int): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I32_SUB) -internal external fun wasm_i32_sub(a: Int, b: Int): Int +internal fun wasm_i32_sub(a: Int, b: Int): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I32_MUL) -internal external fun wasm_i32_mul(a: Int, b: Int): Int +internal fun wasm_i32_mul(a: Int, b: Int): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I32_DIV_S) -internal external fun wasm_i32_div_s(a: Int, b: Int): Int +internal fun wasm_i32_div_s(a: Int, b: Int): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I32_DIV_U) -internal external fun wasm_i32_div_u(a: Int, b: Int): Int +internal fun wasm_i32_div_u(a: Int, b: Int): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I32_REM_S) -internal external fun wasm_i32_rem_s(a: Int, b: Int): Int +internal fun wasm_i32_rem_s(a: Int, b: Int): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I32_REM_U) -internal external fun wasm_i32_rem_u(a: Int, b: Int): Int +internal fun wasm_i32_rem_u(a: Int, b: Int): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I32_AND) -internal external fun wasm_i32_and(a: Int, b: Int): Int +internal fun wasm_i32_and(a: Int, b: Int): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I32_OR) -internal external fun wasm_i32_or(a: Int, b: Int): Int +internal fun wasm_i32_or(a: Int, b: Int): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I32_XOR) -internal external fun wasm_i32_xor(a: Int, b: Int): Int +internal fun wasm_i32_xor(a: Int, b: Int): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I32_SHL) -internal external fun wasm_i32_shl(a: Int, b: Int): Int +internal fun wasm_i32_shl(a: Int, b: Int): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I32_SHR_S) -internal external fun wasm_i32_shr_s(a: Int, b: Int): Int +internal fun wasm_i32_shr_s(a: Int, b: Int): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I32_SHR_U) -internal external fun wasm_i32_shr_u(a: Int, b: Int): Int +internal fun wasm_i32_shr_u(a: Int, b: Int): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I32_ROTL) -internal external fun wasm_i32_rotl(a: Int, b: Int): Int +internal fun wasm_i32_rotl(a: Int, b: Int): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I32_ROTR) -internal external fun wasm_i32_rotr(a: Int, b: Int): Int +internal fun wasm_i32_rotr(a: Int, b: Int): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I64_ADD) -internal external fun wasm_i64_add(a: Long, b: Long): Long +internal fun wasm_i64_add(a: Long, b: Long): Long = + implementedAsIntrinsic @WasmOp(WasmOp.I64_SUB) -internal external fun wasm_i64_sub(a: Long, b: Long): Long +internal fun wasm_i64_sub(a: Long, b: Long): Long = + implementedAsIntrinsic @WasmOp(WasmOp.I64_MUL) -internal external fun wasm_i64_mul(a: Long, b: Long): Long +internal fun wasm_i64_mul(a: Long, b: Long): Long = + implementedAsIntrinsic @WasmOp(WasmOp.I64_DIV_S) -internal external fun wasm_i64_div_s(a: Long, b: Long): Long +internal fun wasm_i64_div_s(a: Long, b: Long): Long = + implementedAsIntrinsic @WasmOp(WasmOp.I64_DIV_U) -internal external fun wasm_i64_div_u(a: Long, b: Long): Long +internal fun wasm_i64_div_u(a: Long, b: Long): Long = + implementedAsIntrinsic @WasmOp(WasmOp.I64_REM_S) -internal external fun wasm_i64_rem_s(a: Long, b: Long): Long +internal fun wasm_i64_rem_s(a: Long, b: Long): Long = + implementedAsIntrinsic @WasmOp(WasmOp.I64_REM_U) -internal external fun wasm_i64_rem_u(a: Long, b: Long): Long +internal fun wasm_i64_rem_u(a: Long, b: Long): Long = + implementedAsIntrinsic @WasmOp(WasmOp.I64_AND) -internal external fun wasm_i64_and(a: Long, b: Long): Long +internal fun wasm_i64_and(a: Long, b: Long): Long = + implementedAsIntrinsic @WasmOp(WasmOp.I64_OR) -internal external fun wasm_i64_or(a: Long, b: Long): Long +internal fun wasm_i64_or(a: Long, b: Long): Long = + implementedAsIntrinsic @WasmOp(WasmOp.I64_XOR) -internal external fun wasm_i64_xor(a: Long, b: Long): Long +internal fun wasm_i64_xor(a: Long, b: Long): Long = + implementedAsIntrinsic @PublishedApi @WasmOp(WasmOp.I64_SHL) -internal external fun wasm_i64_shl(a: Long, b: Long): Long +internal fun wasm_i64_shl(a: Long, b: Long): Long = + implementedAsIntrinsic @PublishedApi @WasmOp(WasmOp.I64_SHR_S) -internal external fun wasm_i64_shr_s(a: Long, b: Long): Long +internal fun wasm_i64_shr_s(a: Long, b: Long): Long = + implementedAsIntrinsic @PublishedApi @WasmOp(WasmOp.I64_SHR_U) -internal external fun wasm_i64_shr_u(a: Long, b: Long): Long +internal fun wasm_i64_shr_u(a: Long, b: Long): Long = + implementedAsIntrinsic @WasmOp(WasmOp.I64_ROTL) -internal external fun wasm_i64_rotl(a: Long, b: Long): Long +internal fun wasm_i64_rotl(a: Long, b: Long): Long = + implementedAsIntrinsic @WasmOp(WasmOp.I64_ROTR) -internal external fun wasm_i64_rotr(a: Long, b: Long): Long +internal fun wasm_i64_rotr(a: Long, b: Long): Long = + implementedAsIntrinsic @WasmOp(WasmOp.F32_ADD) -internal external fun wasm_f32_add(a: Float, b: Float): Float +internal fun wasm_f32_add(a: Float, b: Float): Float = + implementedAsIntrinsic @WasmOp(WasmOp.F32_SUB) -internal external fun wasm_f32_sub(a: Float, b: Float): Float +internal fun wasm_f32_sub(a: Float, b: Float): Float = + implementedAsIntrinsic @WasmOp(WasmOp.F32_MUL) -internal external fun wasm_f32_mul(a: Float, b: Float): Float +internal fun wasm_f32_mul(a: Float, b: Float): Float = + implementedAsIntrinsic @WasmOp(WasmOp.F32_DIV) -internal external fun wasm_f32_div(a: Float, b: Float): Float +internal fun wasm_f32_div(a: Float, b: Float): Float = + implementedAsIntrinsic @WasmOp(WasmOp.F32_MIN) -internal external fun wasm_f32_min(a: Float, b: Float): Float +internal fun wasm_f32_min(a: Float, b: Float): Float = + implementedAsIntrinsic @WasmOp(WasmOp.F32_MAX) -internal external fun wasm_f32_max(a: Float, b: Float): Float +internal fun wasm_f32_max(a: Float, b: Float): Float = + implementedAsIntrinsic @WasmOp(WasmOp.F32_COPYSIGN) -internal external fun wasm_f32_copysign(a: Float, b: Float): Float +internal fun wasm_f32_copysign(a: Float, b: Float): Float = + implementedAsIntrinsic @WasmOp(WasmOp.F64_ADD) -internal external fun wasm_f64_add(a: Double, b: Double): Double +internal fun wasm_f64_add(a: Double, b: Double): Double = + implementedAsIntrinsic @WasmOp(WasmOp.F64_SUB) -internal external fun wasm_f64_sub(a: Double, b: Double): Double +internal fun wasm_f64_sub(a: Double, b: Double): Double = + implementedAsIntrinsic @WasmOp(WasmOp.F64_MUL) -internal external fun wasm_f64_mul(a: Double, b: Double): Double +internal fun wasm_f64_mul(a: Double, b: Double): Double = + implementedAsIntrinsic @WasmOp(WasmOp.F64_DIV) -internal external fun wasm_f64_div(a: Double, b: Double): Double +internal fun wasm_f64_div(a: Double, b: Double): Double = + implementedAsIntrinsic @WasmOp(WasmOp.F64_MIN) -internal external fun wasm_f64_min(a: Double, b: Double): Double +internal fun wasm_f64_min(a: Double, b: Double): Double = + implementedAsIntrinsic @WasmOp(WasmOp.F64_MAX) -internal external fun wasm_f64_max(a: Double, b: Double): Double +internal fun wasm_f64_max(a: Double, b: Double): Double = + implementedAsIntrinsic @WasmOp(WasmOp.F64_SQRT) -internal external fun wasm_f64_sqrt(a: Double): Double +internal fun wasm_f64_sqrt(a: Double): Double = + implementedAsIntrinsic @WasmOp(WasmOp.F64_CEIL) -internal external fun wasm_f64_ceil(a: Double): Double +internal fun wasm_f64_ceil(a: Double): Double = + implementedAsIntrinsic @WasmOp(WasmOp.F64_FLOOR) -internal external fun wasm_f64_floor(a: Double): Double +internal fun wasm_f64_floor(a: Double): Double = + implementedAsIntrinsic @WasmOp(WasmOp.F64_TRUNC) -internal external fun wasm_f64_truncate(a: Double): Double +internal fun wasm_f64_truncate(a: Double): Double = + implementedAsIntrinsic @WasmOp(WasmOp.F64_COPYSIGN) -internal external fun wasm_f64_copysign(a: Double, b: Double): Double +internal fun wasm_f64_copysign(a: Double, b: Double): Double = + implementedAsIntrinsic @WasmOp(WasmOp.F64_ABS) -internal external fun wasm_f64_abs(a: Double): Double +internal fun wasm_f64_abs(a: Double): Double = + implementedAsIntrinsic @WasmOp(WasmOp.F32_SQRT) -internal external fun wasm_f32_sqrt(a: Float): Float +internal fun wasm_f32_sqrt(a: Float): Float = + implementedAsIntrinsic @WasmOp(WasmOp.F32_CEIL) -internal external fun wasm_f32_ceil(a: Float): Float +internal fun wasm_f32_ceil(a: Float): Float = + implementedAsIntrinsic @WasmOp(WasmOp.F32_FLOOR) -internal external fun wasm_f32_floor(a: Float): Float +internal fun wasm_f32_floor(a: Float): Float = + implementedAsIntrinsic @WasmOp(WasmOp.F32_TRUNC) -internal external fun wasm_f32_truncate(a: Float): Float +internal fun wasm_f32_truncate(a: Float): Float = + implementedAsIntrinsic @WasmOp(WasmOp.F32_ABS) -internal external fun wasm_f32_abs(a: Float): Float +internal fun wasm_f32_abs(a: Float): Float = + implementedAsIntrinsic @WasmOp(WasmOp.REF_IS_NULL) internal fun wasm_ref_is_null(a: Any?): Boolean = @@ -306,87 +392,113 @@ internal fun wasm_ref_eq(a: Any?, b: Any?): Boolean = // --- @WasmOp(WasmOp.F32_NEAREST) -internal external fun wasm_f32_nearest(a: Float): Float +internal fun wasm_f32_nearest(a: Float): Float = + implementedAsIntrinsic @WasmOp(WasmOp.F64_NEAREST) -internal external fun wasm_f64_nearest(a: Double): Double +internal fun wasm_f64_nearest(a: Double): Double = + implementedAsIntrinsic @WasmOp(WasmOp.I32_WRAP_I64) -internal external fun wasm_i32_wrap_i64(a: Long): Int +internal fun wasm_i32_wrap_i64(a: Long): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I64_EXTEND_I32_S) -internal external fun wasm_i64_extend_i32_s(a: Int): Long +internal fun wasm_i64_extend_i32_s(a: Int): Long = + implementedAsIntrinsic @WasmOp(WasmOp.F32_CONVERT_I32_S) -internal external fun wasm_f32_convert_i32_s(a: Int): Float +internal fun wasm_f32_convert_i32_s(a: Int): Float = + implementedAsIntrinsic @WasmOp(WasmOp.F32_CONVERT_I64_S) -internal external fun wasm_f32_convert_i64_s(a: Long): Float +internal fun wasm_f32_convert_i64_s(a: Long): Float = + implementedAsIntrinsic @WasmOp(WasmOp.F32_DEMOTE_F64) -internal external fun wasm_f32_demote_f64(a: Double): Float +internal fun wasm_f32_demote_f64(a: Double): Float = + implementedAsIntrinsic @WasmOp(WasmOp.F64_CONVERT_I32_S) -internal external fun wasm_f64_convert_i32_s(a: Int): Double +internal fun wasm_f64_convert_i32_s(a: Int): Double = + implementedAsIntrinsic @WasmOp(WasmOp.F64_CONVERT_I64_S) -internal external fun wasm_f64_convert_i64_s(a: Long): Double +internal fun wasm_f64_convert_i64_s(a: Long): Double = + implementedAsIntrinsic @WasmOp(WasmOp.F64_PROMOTE_F32) -internal external fun wasm_f64_promote_f32(a: Float): Double +internal fun wasm_f64_promote_f32(a: Float): Double = + implementedAsIntrinsic @WasmOp(WasmOp.F32_REINTERPRET_I32) -internal external fun wasm_f32_reinterpret_i32(a: Int): Float +internal fun wasm_f32_reinterpret_i32(a: Int): Float = + implementedAsIntrinsic @WasmOp(WasmOp.F64_REINTERPRET_I64) -internal external fun wasm_f64_reinterpret_i64(a: Long): Double +internal fun wasm_f64_reinterpret_i64(a: Long): Double = + implementedAsIntrinsic @WasmOp(WasmOp.I32_REINTERPRET_F32) -internal external fun wasm_i32_reinterpret_f32(a: Float): Int +internal fun wasm_i32_reinterpret_f32(a: Float): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I64_REINTERPRET_F64) -internal external fun wasm_i64_reinterpret_f64(a: Double): Long +internal fun wasm_i64_reinterpret_f64(a: Double): Long = + implementedAsIntrinsic @WasmOp(WasmOp.I32_TRUNC_SAT_F32_S) -internal external fun wasm_i32_trunc_sat_f32_s(a: Float): Int +internal fun wasm_i32_trunc_sat_f32_s(a: Float): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I32_TRUNC_SAT_F64_S) -internal external fun wasm_i32_trunc_sat_f64_s(a: Double): Int +internal fun wasm_i32_trunc_sat_f64_s(a: Double): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I64_TRUNC_SAT_F32_S) -internal external fun wasm_i64_trunc_sat_f32_s(a: Float): Long +internal fun wasm_i64_trunc_sat_f32_s(a: Float): Long = + implementedAsIntrinsic @WasmOp(WasmOp.I64_TRUNC_SAT_F64_S) -internal external fun wasm_i64_trunc_sat_f64_s(a: Double): Long +internal fun wasm_i64_trunc_sat_f64_s(a: Double): Long = + implementedAsIntrinsic @WasmOp(WasmOp.I32_LOAD) -internal external fun wasm_i32_load(x: Int): Int +internal fun wasm_i32_load(x: Int): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I32_LOAD16_U) -internal external fun wasm_i32_load16_u(x: Int): Int +internal fun wasm_i32_load16_u(x: Int): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I32_STORE) -internal external fun wasm_i32_store(addr: Int, i: Int): Unit +internal fun wasm_i32_store(addr: Int, i: Int): Unit = + implementedAsIntrinsic @WasmOp(WasmOp.I32_STORE16) -internal external fun wasm_i32_store16(addr: Int, c: Char): Unit +internal fun wasm_i32_store16(addr: Int, c: Char): Unit = + implementedAsIntrinsic @WasmOp(WasmOp.I32_CLZ) -internal external fun wasm_i32_clz(a: Int): Int +internal fun wasm_i32_clz(a: Int): Int = + implementedAsIntrinsic @WasmOp(WasmOp.I64_CLZ) -internal external fun wasm_i64_clz(a: Long): Long +internal fun wasm_i64_clz(a: Long): Long = + implementedAsIntrinsic @PublishedApi @WasmOp(WasmOp.I64_POPCNT) -internal external fun wasm_i64_popcnt(a: Long): Long +internal fun wasm_i64_popcnt(a: Long): Long = + implementedAsIntrinsic @PublishedApi @WasmOp(WasmOp.I64_CTZ) -internal external fun wasm_i64_ctz(a: Long): Long - +internal fun wasm_i64_ctz(a: Long): Long = + implementedAsIntrinsic // Reference type operators @WasmOp(WasmOp.REF_IS_NULL) -internal external fun wasm_externref_is_null(a: ExternalInterfaceType?): Boolean +internal external fun wasm_externref_is_null(a: ExternalInterfaceType?): Boolean = + implementedAsIntrinsic \ No newline at end of file