aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/library.js9
1 files changed, 1 insertions, 8 deletions
diff --git a/src/library.js b/src/library.js
index bd34ac29..b4da994e 100644
--- a/src/library.js
+++ b/src/library.js
@@ -3455,14 +3455,7 @@ LibraryManager.library = {
rand_r__deps: ['__rand_seed'],
rand_r: function(seedp) {
var val = {{{ makeGetValue('seedp', 0, 'i32') }}};
- // calculate val * 31010991 + 0x676e6177
- // i32 multiplication will be rounded by javascript
- var valh = val >> 16;
- var vall = val & 0xffff;
- var c = 31010991;
- var ch = c >> 16;
- var cl = c & 0xffff;
- val = (((valh * cl + vall * ch) << 16) + vall * cl + 0x676e6177) & 0xffffffff;
+ val = (Math.imul(val, 31010991) + 0x676e6177)|0;
{{{ makeSetValue('seedp', 0, 'val', 'i32') }}};
return val;
},