diff options
-rw-r--r-- | src/library.js | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/library.js b/src/library.js index 679cdd6d..104b0dc4 100644 --- a/src/library.js +++ b/src/library.js @@ -4772,23 +4772,41 @@ LibraryManager.library = { _ZTIPv: [0], llvm_uadd_with_overflow_i8: function(x, y) { - x = (x>>>0) & 0xff; - y = (y>>>0) & 0xff; + x = x & 0xff; + y = y & 0xff; return { f0: (x+y) & 0xff, f1: x+y > 255 }; }, + llvm_umul_with_overflow_i8: function(x, y) { + x = x & 0xff; + y = y & 0xff; + return { + f0: (x*y) & 0xff, + f1: x*y > 255 + }; + }, + llvm_uadd_with_overflow_i16: function(x, y) { - x = (x>>>0) & 0xffff; - y = (y>>>0) & 0xffff; + x = x & 0xffff; + y = y & 0xffff; return { f0: (x+y) & 0xffff, f1: x+y > 65535 }; }, + llvm_umul_with_overflow_i16: function(x, y) { + x = x & 0xffff; + y = y & 0xffff; + return { + f0: (x*y) & 0xffff, + f1: x*y > 65535 + }; + }, + llvm_uadd_with_overflow_i32: function(x, y) { x = x>>>0; y = y>>>0; |