aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEhsan Akhgari <ehsan.akhgari@gmail.com>2012-01-22 23:42:48 -0500
committerEhsan Akhgari <ehsan.akhgari@gmail.com>2012-01-22 23:42:57 -0500
commitad620b52b545e0d7b3a5cf1cb445900288321317 (patch)
treedbf5a38871a2f24b41c4577f8624a90ee3a6221b
parentcfa84c0709d4d6071569fbc1eb066d40cc9282b7 (diff)
Implement div()
-rw-r--r--src/library.js15
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') }}};