(module ;; float_to_binary = obj.instance.exports.float_to_binary; ;; binary_to_float = obj.instance.exports.binary_to_float; ;; set_binary_inputs ;; set_float_input (import "env" "set_binary_inputs" (func $set_binary_inputs (param i32 i32 i32))) (import "env" "set_float_input" (func $set_float_input (param f32))) (import "env" "buffer" (memory 1)) (data (i32.const 0) "01 " ) (global $pointer i32 (i32.const 4)) (func $float_to_binary (export "float_to_binary") (param $float_32 f32) (local $full_binary i32) (local $sign i32) (local $exponent i32) (local $mantissa i32) get_global $pointer get_local $float_32 f32.store get_global $pointer i32.load tee_local $full_binary i32.const 31 i32.shr_u set_local $sign i32.const 0x7f_ff_ff_ff get_local $full_binary i32.and i32.const 23 i32.shr_u set_local $exponent i32.const 0x00_7f_ff_ff get_local $full_binary i32.and set_local $mantissa get_local $sign get_local $exponent get_local $mantissa call $set_binary_inputs ) (func $binary_to_float (export "binary_to_float") (param $int_32 i32) get_global $pointer get_local $int_32 i32.store get_global $pointer f32.load call $set_float_input ) )