WASM: Add support for f32 and f64
towards #700
Highlights:
For f32
and f64
, it supports
- basic arithmetic operations:
add
,sub
,mul
,div
-
unary_minus
(and thus negative floats) constants/literals
-
functions
andfunction calls
Testing:
- The generated
wasm
is converted (converts successfully) towat
usingwasm2wat
(part ofwabt
tool) and tested on https://webassembly.github.io/wabt/demo/wat2wasm/ with the followingJavaScript
code. - The generated
wat
is tested on https://webassembly.github.io/wabt/demo/wat2wasm/ with the following (same code as previous)JavaScript
code.
Appendix:
Testing Code: WASM: Add float f32 and f64 test case
JavaScript code for executing on https://webassembly.github.io/wabt/demo/wat2wasm/
const wasmInstance =
new WebAssembly.Instance(wasmModule, {});
const { a_sqr, get_neg_f32, add_floats, get_pi, get_pi_64, z_computecirclearea } = wasmInstance.exports;
console.log(add_floats(2.3, -5.6));
console.log(get_pi())
console.log(get_pi_64())
console.log(z_computecirclearea(5.0))
console.log(get_neg_f32())
Edited by Ubaid Shaikh