diff options
author | Ehsan Akhgari <ehsan.akhgari@gmail.com> | 2012-01-22 23:42:48 -0500 |
---|---|---|
committer | Ehsan Akhgari <ehsan.akhgari@gmail.com> | 2012-01-22 23:42:57 -0500 |
commit | ad620b52b545e0d7b3a5cf1cb445900288321317 (patch) | |
tree | dbf5a38871a2f24b41c4577f8624a90ee3a6221b | |
parent | cfa84c0709d4d6071569fbc1eb066d40cc9282b7 (diff) |
Implement div()
-rw-r--r-- | src/library.js | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/library.js b/src/library.js index 224b9005..1df1db85 100644 --- a/src/library.js +++ b/src/library.js @@ -4714,6 +4714,21 @@ LibraryManager.library = { {{{ makeSetValue('cosine', '0', 'cosineVal', 'double') }}}; }, + __div_t_struct_layout: Runtime.generateStructInfo([ + ['i32', 'quot'], + ['i32', 'rem'], + ]), + div__deps: ['__div_t_struct_layout'], + div: function(numer, denom) { + var divt = Runtime.stackAlloc(8); + var quot = Math.floor(numer / denom); + var rem = numer - quot * denom; + var offset = ___div_t_struct_layout.rem; + {{{ makeSetValue('divt', '0', 'quot', 'i32') }}}; + {{{ makeSetValue('divt', 'offset', 'rem', 'i32') }}}; + return divt; + }, + __fpclassifyf: function(x) { if (isNaN(x)) return {{{ cDefine('FP_NAN') }}}; if (!isFinite(x)) return {{{ cDefine('FP_INFINITE') }}}; |