aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/library.js26
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;