diff options
| author | Dan Gohman <sunfish@mozilla.com> | 2015-06-08 12:39:21 -0800 |
|---|---|---|
| committer | Dan Gohman <sunfish@mozilla.com> | 2015-06-12 14:26:17 -0700 |
| commit | 071bc0fd8e9ce738f00a3f699c24460806058b38 (patch) | |
| tree | af2785abf82a11ef346c00bd832b374799663e24 /FutureFeatures.md | |
| parent | c00ddd4345019805f9c01c93c354936002e60535 (diff) | |
| download | nanowasm-design-071bc0fd8e9ce738f00a3f699c24460806058b38.tar.gz | |
Move floating-point libary intrinsics into FutureFeatures.md.
Diffstat (limited to 'FutureFeatures.md')
| -rw-r--r-- | FutureFeatures.md | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/FutureFeatures.md b/FutureFeatures.md index 8e32bc7..7eaca32 100644 --- a/FutureFeatures.md +++ b/FutureFeatures.md @@ -238,3 +238,37 @@ use cases: * Float64MaxNum - maximum; if exactly one operand is NaN, returns the other operand MinNum, and MaxNum operations would treat -0 as being effectively less than 0. + +## Floating-point library intrinsics + +These operations aren't needed because they can be implemented in WebAssembly +code and linked into WebAssembly modules as at small size cost, and this avoids +a non-trivial specification burden of their semantics/precision. Adding these +intrinsics would allow for better high-level backend optimization of these +intrinsics that require builtin knowledge of their semantics. On the other +hand, a code generator may continue to statically link in its own +implementation since this provides greater control over precision/performance +tradeoffs. + + * Float64Sin - trigonometric sine + * Float64Cos - trigonometric cosine + * Float64Tan - trigonometric tangent + * Float64ASin - trigonometric arcsine + * Float64ACos - trigonometric arccosine + * Float64ATan - trigonometric arctangent + * Float64ATan2 - trigonometric arctangent with two arguments + * Float64Exp - exponentiate e + * Float64Ln - natural logarithm + * Float64Pow - exponentiate + * Float32Sin - trigonometric sine + * Float32Cos - trigonometric cosine + * Float32Tan - trigonometric tangent + * Float32ASin - trigonometric arcsine + * Float32ACos - trigonometric arccosine + * Float32ATan - trigonometric arctangent + * Float32ATan2 - trigonometric arctangent with two arguments + * Float32Exp - exponentiate e + * Float32Ln - natural logarithm + * Float32Pow - exponentiate + +The rounding behavior of these operations would need clarification. |
