aboutsummaryrefslogtreecommitdiff
path: root/src/library.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-07-16 15:04:42 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-07-16 15:04:42 -0700
commit535d77186f49307e08072e3c1e82c89b6848c7a7 (patch)
tree74b254fa5dee5012e699190a51032799dbe4a5e7 /src/library.js
parentd8f3b43e24bf15b6696a705e0822a0dd53de74fe (diff)
optimize bswap
Diffstat (limited to 'src/library.js')
-rw-r--r--src/library.js26
1 files changed, 2 insertions, 24 deletions
diff --git a/src/library.js b/src/library.js
index 0c6c7a63..6e4e7d0e 100644
--- a/src/library.js
+++ b/src/library.js
@@ -4528,33 +4528,11 @@ LibraryManager.library = {
},
llvm_bswap_i16: function(x) {
- x = unSign(x, 32);
- var bytes = [];
- bytes[0] = x & 255;
- x >>= 8;
- bytes[1] = x & 255;
- x >>= 8;
- var ret = 0;
- ret <<= 8;
- ret += bytes[0];
- ret <<= 8;
- ret += bytes[1];
- return ret;
+ return ((x&0xff)<<8) | ((x>>8)&0xff);
},
llvm_bswap_i32: function(x) {
- x = unSign(x, 32);
- var bytes = [];
- for (var i = 0; i < 4; i++) {
- bytes[i] = x & 255;
- x >>= 8;
- }
- var ret = 0;
- for (i = 0; i < 4; i++) {
- ret <<= 8;
- ret += bytes[i];
- }
- return ret;
+ return ((x&0xff)<<24) | (((x>>8)&0xff)<<16) | (((x>>16)&0xff)<<8) | (x>>>24);
},
llvm_ctlz_i32: function(x) {