diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-03-11 17:36:46 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-03-11 17:46:54 -0700 |
commit | 8d53fec332c633f57910a5679ce3ae68f5f35969 (patch) | |
tree | f5975ae25d890890673a1fe6b51e023d23f1beeb /src/runtime.js | |
parent | 753b1f7edafb264b6ad6db97d2f483bc9f5ba7e2 (diff) |
add ASSERTIONS to asm2g, and fix assertions for asm
Diffstat (limited to 'src/runtime.js')
-rw-r--r-- | src/runtime.js | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/runtime.js b/src/runtime.js index 8352ade1..d5c0fabc 100644 --- a/src/runtime.js +++ b/src/runtime.js @@ -27,7 +27,7 @@ var RuntimeGenerator = { // The stack is always QUANTUM SIZE aligned, so we may not need to force alignment here var ret = RuntimeGenerator.alloc(size, 'STACK', false, sep, USE_TYPED_ARRAYS != 2 || (isNumber(size) && parseInt(size) % {{{ QUANTUM_SIZE }}} == 0)); if (ASSERTIONS) { - ret += sep + 'assert(STACKTOP|0 < STACK_MAX|0)'; + ret += sep + 'assert(' + asmCoercion('(STACKTOP|0) < (STACK_MAX|0)', 'i32') + ')'; } return ret; }, @@ -38,12 +38,12 @@ var RuntimeGenerator = { if (initial > 0) ret += '; STACKTOP = (STACKTOP + ' + initial + ')|0'; if (USE_TYPED_ARRAYS == 2) { assert(initial % QUANTUM_SIZE == 0); - if (ASSERTIONS) { - ret += '; assert(STACKTOP|0 % {{{ QUANTUM_SIZE }}} == 0)'; + if (ASSERTIONS && QUANTUM_SIZE == 4) { + ret += '; assert(' + asmCoercion('!(STACKTOP&3)', 'i32') + ')'; } } if (ASSERTIONS) { - ret += '; assert(STACKTOP < STACK_MAX)'; + ret += '; assert(' + asmCoercion('(STACKTOP|0) < (STACK_MAX|0)', 'i32') + ')'; } if (false) { ret += '; _memset(' + asmCoercion('__stackBase__', 'i32') + ', 0, ' + initial + ')'; |