aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-03-10 12:18:03 -0800
committerAlon Zakai <alonzakai@gmail.com>2012-03-10 12:18:03 -0800
commit88bb4669368998a3ec86bd24c3b9f3b716475413 (patch)
tree6f32eed767c54234ba1ab8c4d08b682fda54cf4c /src
parentf5b94a26214939e52a304e30b0404a2c584fdc62 (diff)
add HEAPF64, useful sometimes for manually optimized code
Diffstat (limited to 'src')
-rw-r--r--src/preamble.js7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/preamble.js b/src/preamble.js
index 98d12a43..afae5ea7 100644
--- a/src/preamble.js
+++ b/src/preamble.js
@@ -594,7 +594,7 @@ var FHEAP;
#endif
#endif
#if USE_TYPED_ARRAYS == 2
-var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32;
+var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
#endif
var STACK_ROOT, STACKTOP, STACK_MAX;
@@ -631,6 +631,7 @@ function enlargeMemory() {
HEAPU16 = new Uint16Array(buffer);
HEAPU32 = new Uint32Array(buffer);
HEAPF32 = new Float32Array(buffer);
+ HEAPF64 = new Float64Array(buffer);
HEAP8.set(oldHEAP8);
#endif
}
@@ -662,6 +663,7 @@ var FAST_MEMORY = Module['FAST_MEMORY'] || {{{ FAST_MEMORY }}};
HEAPU16 = new Uint16Array(buffer);
HEAPU32 = new Uint32Array(buffer);
HEAPF32 = new Float32Array(buffer);
+ HEAPF64 = new Float64Array(buffer);
// Endianness check (note: assumes compiler arch was little-endian)
HEAP32[0] = 255;
@@ -697,6 +699,7 @@ Module['HEAPU8'] = HEAPU8;
Module['HEAPU16'] = HEAPU16;
Module['HEAPU32'] = HEAPU32;
Module['HEAPF32'] = HEAPF32;
+Module['HEAPF64'] = HEAPF64;
#endif
STACK_ROOT = STACKTOP = Runtime.alignMemory(STATICTOP);
@@ -707,7 +710,7 @@ var tempDoublePtr = Runtime.alignMemory(STACK_MAX, 8);
var tempDoubleI8 = HEAP8.subarray(tempDoublePtr);
var tempDoubleI32 = HEAP32.subarray(tempDoublePtr >> 2);
var tempDoubleF32 = HEAPF32.subarray(tempDoublePtr >> 2);
-var tempDoubleF64 = new Float64Array(HEAP8.buffer).subarray(tempDoublePtr >> 3);
+var tempDoubleF64 = HEAPF64.subarray(tempDoublePtr >> 3);
function copyTempFloat(ptr) { // functions, because inlining this code is increases code size too much
tempDoubleI8[0] = HEAP8[ptr];
tempDoubleI8[1] = HEAP8[ptr+1];