diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-01-11 18:34:59 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-01-11 18:34:59 -0800 |
commit | 2d325075bd7fa8d10a02a8ba451d2aeca8b707e6 (patch) | |
tree | 4780abc3fc87cd6c773290c8c240a881ab59474d /src/parseTools.js | |
parent | 8ccf524149bbe222164b79c847628c966d0e9557 (diff) |
make makeGetTempDouble asm-friendly
Diffstat (limited to 'src/parseTools.js')
-rw-r--r-- | src/parseTools.js | 8 |
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 + ']'; } |