Refactor Luau codegen to use wasmparser

This commit is contained in:
Rerumu
2022-06-25 03:07:04 -04:00
parent c52170ba6e
commit 40c985e7e2
7 changed files with 138 additions and 176 deletions
+4 -4
View File
@@ -3,11 +3,11 @@ use std::{
ops::Range,
};
use parity_wasm::elements::ValueType;
use wasm_ast::node::{
Backward, Br, BrIf, BrTable, Call, CallIndirect, Forward, FuncData, If, MemoryGrow, SetGlobal,
SetLocal, SetTemporary, Statement, StoreAt, Terminator,
};
use wasmparser::ValType;
use crate::analyzer::br_table;
@@ -327,9 +327,9 @@ fn write_parameter_list(ast: &FuncData, w: &mut dyn Write) -> Result<()> {
fn write_variable_list(ast: &FuncData, w: &mut dyn Write) -> Result<()> {
let mut total = 0;
for data in ast.local_data().iter().filter(|v| v.count() != 0) {
let range = total..total + usize::try_from(data.count()).unwrap();
let zero = if data.value_type() == ValueType::I64 {
for data in ast.local_data().iter().filter(|v| v.0 != 0) {
let range = total..total + usize::try_from(data.0).unwrap();
let zero = if data.1 == ValType::I64 {
"i64_K_ZERO "
} else {
"0 "