Add wasm reference/pointers translation. (#1073)
This commit is contained in:
@@ -119,6 +119,12 @@ fn add_enable_multi_value<'a>() -> clap::Arg<'a, 'a> {
|
||||
.help("Enable WASM's multi-value support")
|
||||
}
|
||||
|
||||
fn add_enable_reference_types_flag<'a>() -> clap::Arg<'a, 'a> {
|
||||
Arg::with_name("enable-reference-types")
|
||||
.long("enable-reference-types")
|
||||
.help("Enable WASM's reference types operations")
|
||||
}
|
||||
|
||||
fn add_just_decode_flag<'a>() -> clap::Arg<'a, 'a> {
|
||||
Arg::with_name("just-decode")
|
||||
.short("t")
|
||||
@@ -163,6 +169,7 @@ fn add_wasm_or_compile<'a>(cmd: &str) -> clap::App<'a, 'a> {
|
||||
.arg(add_debug_flag())
|
||||
.arg(add_enable_simd_flag())
|
||||
.arg(add_enable_multi_value())
|
||||
.arg(add_enable_reference_types_flag())
|
||||
.arg(add_just_decode_flag())
|
||||
.arg(add_check_translation_flag())
|
||||
}
|
||||
@@ -316,6 +323,7 @@ fn main() {
|
||||
rest_cmd.is_present("value-ranges"),
|
||||
rest_cmd.is_present("enable-simd"),
|
||||
rest_cmd.is_present("enable-multi-value"),
|
||||
rest_cmd.is_present("enable-reference-types"),
|
||||
)
|
||||
};
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ pub fn run(
|
||||
flag_calc_value_ranges: bool,
|
||||
flag_enable_simd: bool,
|
||||
flag_enable_multi_value: bool,
|
||||
flag_enable_reference_types: bool,
|
||||
) -> Result<(), String> {
|
||||
let parsed = parse_sets_and_triple(flag_set, flag_triple)?;
|
||||
|
||||
@@ -68,6 +69,7 @@ pub fn run(
|
||||
flag_calc_value_ranges,
|
||||
flag_enable_simd,
|
||||
flag_enable_multi_value,
|
||||
flag_enable_reference_types,
|
||||
&path.to_path_buf(),
|
||||
&name,
|
||||
parsed.as_fisa(),
|
||||
@@ -87,6 +89,7 @@ fn handle_module(
|
||||
flag_calc_value_ranges: bool,
|
||||
flag_enable_simd: bool,
|
||||
flag_enable_multi_value: bool,
|
||||
flag_enable_reference_types: bool,
|
||||
path: &PathBuf,
|
||||
name: &str,
|
||||
fisa: FlagsOrIsa,
|
||||
@@ -110,6 +113,9 @@ fn handle_module(
|
||||
if flag_enable_multi_value {
|
||||
features.enable_multi_value();
|
||||
}
|
||||
if flag_enable_reference_types {
|
||||
features.enable_reference_types();
|
||||
}
|
||||
|
||||
module_binary = match wat2wasm_with_features(&module_binary, features) {
|
||||
Ok(data) => data,
|
||||
|
||||
Reference in New Issue
Block a user