aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2011-09-17 23:49:38 -0700
committerAlon Zakai <alonzakai@gmail.com>2011-09-17 23:49:38 -0700
commit00d573c696084b8cc5f3beb8c2eead00552dbc22 (patch)
tree7e7f788b24153fab846f319d596a0279080cc5dd /src
parent6654bb5bb6cbd78fff9802922dd2a5001ee006aa (diff)
fix ta2 memcpy bug, and enable ta2 in sqlite test
Diffstat (limited to 'src')
-rw-r--r--src/parseTools.js18
1 files changed, 6 insertions, 12 deletions
diff --git a/src/parseTools.js b/src/parseTools.js
index f9f46b06..ab67cbf7 100644
--- a/src/parseTools.js
+++ b/src/parseTools.js
@@ -843,21 +843,15 @@ function makeCopyValues(dest, src, num, type, modifier) {
}).join('; ') + '; ' + safety()
) + '\n' + '}';
} else { // USE_TYPED_ARRAYS == 2
-/*
- return 'for (var $mcpi$ = 0; $mcpi$ < ' + num + '; $mcpi$++) {\n' +
- ' HEAP8[' + dest + '+$mcpi$] = HEAP8[' + src + '+$mcpi$]; ' + safety() + ';\n' +
- '}';
-*/
return '' +
'var $src$, $dest$, $stop$, $stop4$, $fast$;\n' +
'$src$ = ' + src + ';\n' +
'$dest$ = ' + dest + ';\n' +
'$stop$ = $src$ + ' + num + ';\n' +
- '$fast$ = ($dest$%4) === ($src$%4);\n' +
- 'while ($src$%4 !== 0 && $src$ < $stop$) {\n' +
- ' ' + safety('$dest$', '$src$') + '; HEAP8[$dest$++] = HEAP8[$src$++];\n' +
- '}\n' +
- 'if ($fast$) {\n' +
+ 'if (($dest$%4) == ($src$%4) && ' + num + ' > 8) {\n' +
+ ' while ($src$%4 !== 0 && $src$ < $stop$) {\n' +
+ ' ' + safety('$dest$', '$src$') + '; HEAP8[$dest$++] = HEAP8[$src$++];\n' +
+ ' }\n' +
' $src$ >>= 2;\n' +
' $dest$ >>= 2;\n' +
' $stop4$ = $stop$ >> 2;\n' +
@@ -868,10 +862,10 @@ function makeCopyValues(dest, src, num, type, modifier) {
' }\n' +
' $src$ <<= 2;\n' +
' $dest$ <<= 2;\n' +
- '}\n' +
+ '}' +
'while ($src$ < $stop$) {\n' +
' ' + safety('$dest$', '$src$') + '; HEAP8[$dest$++] = HEAP8[$src$++];\n' +
- '}'
+ '}';
}
return null;
}