diff options
author | Alon Zakai <alonzakai@gmail.com> | 2015-12-04 16:01:37 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2015-12-04 16:01:37 -0800 |
commit | 1bc7f6017c343335b0221124dda6c3434b170ad0 (patch) | |
tree | 09ade6bb9d4ac5152587c218d9734a70a3fccb90 /src/wasm2asm.h | |
parent | 3a5fe5c481ba2b2424a97e58820d3b5285c34c1b (diff) | |
download | binaryen-1bc7f6017c343335b0221124dda6c3434b170ad0.tar.gz binaryen-1bc7f6017c343335b0221124dda6c3434b170ad0.tar.bz2 binaryen-1bc7f6017c343335b0221124dda6c3434b170ad0.zip |
fix frees[]
Diffstat (limited to 'src/wasm2asm.h')
-rw-r--r-- | src/wasm2asm.h | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/wasm2asm.h b/src/wasm2asm.h index 023ee2f18..7bc609d28 100644 --- a/src/wasm2asm.h +++ b/src/wasm2asm.h @@ -146,9 +146,9 @@ Ref Wasm2AsmBuilder::processWasm(Module* wasm) { Ref Wasm2AsmBuilder::processFunction(Function* func) { Ref ret = ValueBuilder::makeFunction(fromName(func->name)); frees.clear(); - frees.resize(std::max(i32, std::max(f32, f64))); + frees.resize(std::max(i32, std::max(f32, f64)) + 1); temps.clear(); - temps.resize(std::max(i32, std::max(f32, f64))); + temps.resize(std::max(i32, std::max(f32, f64)) + 1); temps[i32] = temps[f32] = temps[f64] = 0; // arguments for (auto& param : func->params) { @@ -172,14 +172,14 @@ Ref Wasm2AsmBuilder::processFunction(Function* func) { for (auto& local : func->locals) { ValueBuilder::appendToVar(theVar, fromName(local.name), makeAsmCoercedZero(wasmToAsmType(local.type))); } - for (auto free : frees[i32]) { - ValueBuilder::appendToVar(theVar, free, makeAsmCoercedZero(ASM_INT)); + for (auto f : frees[i32]) { + ValueBuilder::appendToVar(theVar, f, makeAsmCoercedZero(ASM_INT)); } - for (auto free : frees[f32]) { - ValueBuilder::appendToVar(theVar, free, makeAsmCoercedZero(ASM_FLOAT)); + for (auto f : frees[f32]) { + ValueBuilder::appendToVar(theVar, f, makeAsmCoercedZero(ASM_FLOAT)); } - for (auto free : frees[f64]) { - ValueBuilder::appendToVar(theVar, free, makeAsmCoercedZero(ASM_DOUBLE)); + for (auto f : frees[f64]) { + ValueBuilder::appendToVar(theVar, f, makeAsmCoercedZero(ASM_DOUBLE)); } // checks assert(frees[i32].size() == temps[i32]); // all temp vars should be free at the end |