aboutsummaryrefslogtreecommitdiff
path: root/src/parseTools.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-01-11 18:34:59 -0800
committerAlon Zakai <alonzakai@gmail.com>2013-01-11 18:34:59 -0800
commit2d325075bd7fa8d10a02a8ba451d2aeca8b707e6 (patch)
tree4780abc3fc87cd6c773290c8c240a881ab59474d /src/parseTools.js
parent8ccf524149bbe222164b79c847628c966d0e9557 (diff)
make makeGetTempDouble asm-friendly
Diffstat (limited to 'src/parseTools.js')
-rw-r--r--src/parseTools.js8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/parseTools.js b/src/parseTools.js
index 1056fbe4..7560f13b 100644
--- a/src/parseTools.js
+++ b/src/parseTools.js
@@ -1039,7 +1039,13 @@ function makeGetTempDouble(i, type) { // get an aliased part of the tempDouble t
// this is a unique case where we *can* use HEAPF64
var slab = type == 'double' ? 'HEAPF64' : makeGetSlabs(null, type)[0];
var ptr = getFastValue('tempDoublePtr', '+', Runtime.getNativeTypeSize(type)*i);
- var offset = type == 'double' ? ptr + '>>3' : getHeapOffset(ptr, type);
+ var offset;
+ if (type == 'double') {
+ if (ASM_JS) ptr = '(' + ptr + ')&' + memoryMask;
+ offset = '(' + ptr + ')>>3';
+ } else {
+ offset = getHeapOffset(ptr, type);
+ }
return slab + '[' + offset + ']';
}