diff options
author | alon@honor <none@none> | 2010-10-14 21:00:06 -0700 |
---|---|---|
committer | alon@honor <none@none> | 2010-10-14 21:00:06 -0700 |
commit | 64facbdbb9e406cbe7284a4c939263c684469083 (patch) | |
tree | 9ecbc0ba9c7b6d46996693c181d349d2c96cfe7c /src/jsifier.js | |
parent | 971976f42a3fafc2e7829370e6a401aa5830237f (diff) |
remove unnecessary boolean ==> int conversions; fix uncovered bug; 20% speedup
Diffstat (limited to 'src/jsifier.js')
-rw-r--r-- | src/jsifier.js | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/jsifier.js b/src/jsifier.js index 51e37d8a..a4ea85d9 100644 --- a/src/jsifier.js +++ b/src/jsifier.js @@ -639,28 +639,28 @@ function JSify(data) { case 'fptoui': case 'fptosi': return 'Math.floor(' + ident1 + ')'; case 'icmp': { switch (variant) { - case 'uge': case 'sge': return '0+(' + ident1 + ' >= ' + ident2 + ')'; - case 'ule': case 'sle': return '0+(' + ident1 + ' <= ' + ident2 + ')'; - case 'ugt': case 'sgt': return '0+(' + ident1 + ' > ' + ident2 + ')'; - case 'ult': case 'slt': return '0+(' + ident1 + ' < ' + ident2 + ')'; - case 'ne': case 'une': return '0+(' + ident1 + ' != ' + ident2 + ')'; - case 'eq': return '0+(' + ident1 + ' == ' + ident2 + ')'; + case 'uge': case 'sge': return ident1 + ' >= ' + ident2; + case 'ule': case 'sle': return ident1 + ' <= ' + ident2; + case 'ugt': case 'sgt': return ident1 + ' > ' + ident2; + case 'ult': case 'slt': return ident1 + ' < ' + ident2; + case 'ne': case 'une': return ident1 + ' != ' + ident2; + case 'eq': return ident1 + ' == ' + ident2; default: throw 'Unknown icmp variant: ' + variant } } case 'fcmp': { switch (variant) { - case 'uge': case 'oge': return '0+(' + ident1 + ' >= ' + ident2 + ')'; - case 'ule': case 'ole': return '0+(' + ident1 + ' <= ' + ident2 + ')'; - case 'ugt': case 'ogt': return '0+(' + ident1 + ' > ' + ident2 + ')'; - case 'ult': case 'olt': return '0+(' + ident1 + ' < ' + ident2 + ')'; - case 'une': case 'one': return '0+(' + ident1 + ' != ' + ident2 + ')'; - case 'ueq': case 'oeq': return '0+(' + ident1 + ' == ' + ident2 + ')'; + case 'uge': case 'oge': return ident1 + ' >= ' + ident2; + case 'ule': case 'ole': return ident1 + ' <= ' + ident2; + case 'ugt': case 'ogt': return ident1 + ' > ' + ident2; + case 'ult': case 'olt': return ident1 + ' < ' + ident2; + case 'une': case 'one': return ident1 + ' != ' + ident2; + case 'ueq': case 'oeq': return ident1 + ' == ' + ident2; default: throw 'Unknown fcmp variant: ' + variant } } case 'zext': case 'fpext': case 'trunc': case 'sext': case 'fptrunc': return ident1; - case 'select': return '(' + ident1 + ' ? ' + ident2 + ' : ' + ident3 + ')'; + case 'select': return ident1 + ' ? ' + ident2 + ' : ' + ident3; case 'ptrtoint': { if (type != 'i8*') print('// XXX Warning: Risky ptrtoint operation on line ' + lineNum); return ident1; |