From b73f36032c297f9d988fea45ec39a9c82d9120ce Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Mon, 25 Mar 2024 14:26:19 -0700 Subject: [PATCH 1/3] Disassemble `*.cwasm` for `compile` disas tests This commit changes how the `compile` mode of the `disas` test suite works. Previously this would use `--emit-clif` and run the Cranelift pipeline for each individual function and use the custom VCode-based disassembly for instruction output. This commit instead uses the raw binary coming out of Wasmtime. The ELF file itself is parsed and is disassembled in a manner similar to Winch tests. The goal of this commit is somewhat twofold: * Lay the groundwork to migrate all Winch-based filetests to `tests/disas`. * Test the raw output from Cranelift/Wasmtime which includes optimizations like branch chomping in the `MachBuffer`. This commit doesn't itself move the Winch tests yet, that's left for a future commit. --- Cargo.lock | 2 + Cargo.toml | 2 + tests/disas.rs | 209 +++++++++++++++++++++++++++++++------------------ 3 files changed, 135 insertions(+), 78 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b915bd5c5778..d9717896ac5e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3501,6 +3501,7 @@ dependencies = [ "bstr", "bytes", "bytesize", + "capstone", "cfg-if", "clap", "component-macro-test", @@ -3521,6 +3522,7 @@ dependencies = [ "log", "memchr", "num_cpus", + "object 0.33.0", "once_cell", "rayon", "rustix", diff --git a/Cargo.toml b/Cargo.toml index 58d9c7e4d9e9..069e9de4d145 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -97,6 +97,8 @@ cranelift-reader = { workspace = true } toml = { workspace = true } similar = { workspace = true } libtest-mimic = "0.7.0" +capstone = { workspace = true } +object = { workspace = true } [target.'cfg(windows)'.dev-dependencies] windows-sys = { workspace = true, features = ["Win32_System_Memory"] } diff --git a/tests/disas.rs b/tests/disas.rs index b71fda2e3b02..7ef39562e3a2 100644 --- a/tests/disas.rs +++ b/tests/disas.rs @@ -98,33 +98,10 @@ fn find_tests(path: &Path, dst: &mut Vec) -> Result<()> { fn run_test(path: &Path) -> Result<()> { let mut test = Test::new(path)?; - let clifs = test.generate_clif()?; + let output = test.compile()?; let isa = test.build_target_isa()?; - // Parse the text format CLIF which is emitted by Wasmtime back into - // in-memory data structures. - let mut functions = clifs - .iter() - .map(|clif| { - let mut funcs = cranelift_reader::parse_functions(clif)?; - if funcs.len() != 1 { - bail!("expected one function per clif"); - } - Ok(funcs.remove(0)) - }) - .collect::>>()?; - functions.sort_by_key(|f| match f.name { - UserFuncName::User(UserExternalName { namespace, index }) => (namespace, index), - UserFuncName::Testcase(_) => unreachable!(), - }); - - run_functions( - &test.path, - &test.contents, - &*isa, - test.config.test, - &functions, - )?; + assert_output(&test.path, &test.contents, &*isa, test.config.test, output)?; Ok(()) } @@ -151,6 +128,19 @@ struct Test { config: TestConfig, } +/// Which kind of test is being performed. +#[derive(Default, Debug, Deserialize)] +#[serde(rename_all = "lowercase")] +enum TestKind { + /// Test the CLIF output, raw from translation. + #[default] + Clif, + /// Compile output to machine code. + Compile, + /// Test the CLIF output, optimized. + Optimize, +} + impl Test { /// Parse the contents of `path` looking for directive-based comments /// starting with `;;!` near the top of the file. @@ -194,33 +184,60 @@ impl Test { } /// Generates CLIF for all the wasm functions in this test. - fn generate_clif(&mut self) -> Result> { + fn compile(&mut self) -> Result { // Use wasmtime::Config with its `emit_clif` option to get Wasmtime's // code generator to jettison CLIF out the back. let tempdir = TempDir::new().context("failed to make a tempdir")?; let mut config = self.opts.config(Some(&self.config.target))?; - config.emit_clif(tempdir.path()); + match self.config.test { + TestKind::Clif | TestKind::Optimize => { + config.emit_clif(tempdir.path()); + } + TestKind::Compile => {} + } let engine = Engine::new(&config).context("failed to create engine")?; let module = wat::parse_file(&self.path)?; - engine + let elf = engine .precompile_module(&module) .context("failed to compile module")?; - // Read all `*.clif` files from the clif directory that the compilation - // process just emitted. - let mut clifs = Vec::new(); - for entry in tempdir - .path() - .read_dir() - .context("failed to read tempdir")? - { - let entry = entry.context("failed to iterate over tempdir")?; - let path = entry.path(); - let clif = std::fs::read_to_string(&path) - .with_context(|| format!("failed to read clif file {path:?}"))?; - clifs.push(clif); + match self.config.test { + TestKind::Clif | TestKind::Optimize => { + // Read all `*.clif` files from the clif directory that the + // compilation process just emitted. + let mut clifs = Vec::new(); + for entry in tempdir + .path() + .read_dir() + .context("failed to read tempdir")? + { + let entry = entry.context("failed to iterate over tempdir")?; + let path = entry.path(); + let clif = std::fs::read_to_string(&path) + .with_context(|| format!("failed to read clif file {path:?}"))?; + clifs.push(clif); + } + + // Parse the text format CLIF which is emitted by Wasmtime back + // into in-memory data structures. + let mut functions = clifs + .iter() + .map(|clif| { + let mut funcs = cranelift_reader::parse_functions(clif)?; + if funcs.len() != 1 { + bail!("expected one function per clif"); + } + Ok(funcs.remove(0)) + }) + .collect::>>()?; + functions.sort_by_key(|f| match f.name { + UserFuncName::User(UserExternalName { namespace, index }) => (namespace, index), + UserFuncName::Testcase(_) => unreachable!(), + }); + Ok(CompileOutput::Clif(functions)) + } + TestKind::Compile => Ok(CompileOutput::Elf(elf)), } - Ok(clifs) } /// Use the test configuration present with CLI flags to build a @@ -256,56 +273,92 @@ impl Test { } } -/// Which kind of test is being performed. -#[derive(Default, Debug, Deserialize)] -#[serde(rename_all = "lowercase")] -pub enum TestKind { - /// Test the CLIF output, raw from translation. - #[default] - Clif, - /// Compile output to machine code. - Compile, - /// Test the CLIF output, optimized. - Optimize, +enum CompileOutput { + Clif(Vec), + Elf(Vec), } /// Assert that `wat` contains the test expectations necessary for `funcs`. -fn run_functions( +fn assert_output( path: &Path, wat: &str, isa: &dyn TargetIsa, kind: TestKind, - funcs: &[Function], + output: CompileOutput, ) -> Result<()> { let mut actual = String::new(); - for func in funcs { - match kind { - TestKind::Compile => { - let mut ctx = cranelift_codegen::Context::for_function(func.clone()); - ctx.set_disasm(true); - let code = ctx - .compile(isa, &mut Default::default()) - .map_err(|e| codegen_error_to_anyhow_error(&e.func, e.inner))?; - writeln!(&mut actual, "function {}:", func.name).unwrap(); - writeln!(&mut actual, "{}", code.vcode.as_ref().unwrap()).unwrap(); - } - TestKind::Optimize => { - let mut ctx = cranelift_codegen::Context::for_function(func.clone()); - ctx.optimize(isa, &mut Default::default()) - .map_err(|e| codegen_error_to_anyhow_error(&ctx.func, e))?; - ctx.func.dfg.resolve_all_aliases(); - writeln!(&mut actual, "{}", ctx.func.display()).unwrap(); - } - TestKind::Clif => { - let mut func = func.clone(); - func.dfg.resolve_all_aliases(); - writeln!(&mut actual, "{}", func.display()).unwrap(); + match output { + CompileOutput::Clif(funcs) => { + for mut func in funcs { + match kind { + TestKind::Compile => unreachable!(), + TestKind::Optimize => { + let mut ctx = cranelift_codegen::Context::for_function(func.clone()); + ctx.optimize(isa, &mut Default::default()) + .map_err(|e| codegen_error_to_anyhow_error(&ctx.func, e))?; + ctx.func.dfg.resolve_all_aliases(); + writeln!(&mut actual, "{}", ctx.func.display()).unwrap(); + } + TestKind::Clif => { + func.dfg.resolve_all_aliases(); + writeln!(&mut actual, "{}", func.display()).unwrap(); + } + } } } + CompileOutput::Elf(bytes) => { + let disas = isa.to_capstone()?; + disas_elf(&disas, &mut actual, &bytes)?; + } } let actual = actual.trim(); - log::debug!("=== actual ===\n{actual}"); + assert_or_bless_output(path, wat, actual) +} +fn disas_elf(disas: &capstone::Capstone, result: &mut String, elf: &[u8]) -> Result<()> { + use object::{Endianness, Object, ObjectSection, ObjectSymbol}; + let elf = object::read::elf::ElfFile64::::parse(elf)?; + let text = elf.section_by_name(".text").unwrap(); + let text = text.data()?; + let mut first = true; + for sym in elf.symbols() { + let name = match sym.name() { + Ok(name) => name, + Err(_) => continue, + }; + if !name.contains("wasm") || !name.contains("function") { + continue; + } + + let bytes = &text[sym.address() as usize..][..sym.size() as usize]; + + if first { + first = false; + } else { + result.push_str("\n"); + } + writeln!(result, "{name}:")?; + for inst in disas.disasm_all(bytes, sym.address())?.iter() { + write!(result, "{:>4x}: ", inst.address())?; + + match (inst.mnemonic(), inst.op_str()) { + (Some(i), Some(o)) => { + if o.is_empty() { + writeln!(result, "{i}")?; + } else { + writeln!(result, "{i:7} {o}")?; + } + } + (Some(i), None) => writeln!(result, "{i}")?, + _ => unreachable!(), + } + } + } + Ok(()) +} + +fn assert_or_bless_output(path: &Path, wat: &str, actual: &str) -> Result<()> { + log::debug!("=== actual ===\n{actual}"); // The test's expectation is the final comment. let mut expected_lines: Vec<_> = wat .lines() From 1f583594f6993317cbfd7db3863c1c3e510c3c3d Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Mon, 25 Mar 2024 14:26:48 -0700 Subject: [PATCH 2/3] Update all test expectations for new output --- tests/disas/aarch64-relaxed-simd.wat | 88 +-- tests/disas/i32-not-x64.wat | 40 +- ...0_guard_no_spectre_i32_access_0_offset.wat | 56 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 64 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 74 +- ..._0_guard_no_spectre_i8_access_0_offset.wat | 52 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 64 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 74 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 60 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 68 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 78 +- ...0_guard_yes_spectre_i8_access_0_offset.wat | 56 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 68 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 78 +- ...f_guard_no_spectre_i32_access_0_offset.wat | 52 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 56 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 60 +- ...ff_guard_no_spectre_i8_access_0_offset.wat | 52 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 56 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 60 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 56 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 60 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 64 +- ...f_guard_yes_spectre_i8_access_0_offset.wat | 56 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 60 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 64 +- ...0_guard_no_spectre_i32_access_0_offset.wat | 52 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 60 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 70 +- ..._0_guard_no_spectre_i8_access_0_offset.wat | 48 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 60 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 70 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 56 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 64 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 74 +- ...0_guard_yes_spectre_i8_access_0_offset.wat | 52 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 64 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 74 +- ...f_guard_no_spectre_i32_access_0_offset.wat | 48 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 52 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 56 +- ...ff_guard_no_spectre_i8_access_0_offset.wat | 48 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 52 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 56 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 52 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 56 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 60 +- ...f_guard_yes_spectre_i8_access_0_offset.wat | 52 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 56 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 60 +- ...0_guard_no_spectre_i32_access_0_offset.wat | 52 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 56 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 60 +- ..._0_guard_no_spectre_i8_access_0_offset.wat | 28 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 56 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 60 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 56 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 60 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 64 +- ...0_guard_yes_spectre_i8_access_0_offset.wat | 28 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 60 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 64 +- ...f_guard_no_spectre_i32_access_0_offset.wat | 28 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 32 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 36 +- ...ff_guard_no_spectre_i8_access_0_offset.wat | 28 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 32 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 36 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 28 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 32 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 36 +- ...f_guard_yes_spectre_i8_access_0_offset.wat | 28 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 32 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 36 +- ...0_guard_no_spectre_i32_access_0_offset.wat | 48 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 52 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 56 +- ..._0_guard_no_spectre_i8_access_0_offset.wat | 48 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 52 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 56 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 52 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 56 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 60 +- ...0_guard_yes_spectre_i8_access_0_offset.wat | 52 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 56 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 60 +- ...f_guard_no_spectre_i32_access_0_offset.wat | 48 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 52 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 56 +- ...ff_guard_no_spectre_i8_access_0_offset.wat | 48 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 52 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 56 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 52 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 56 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 60 +- ...f_guard_yes_spectre_i8_access_0_offset.wat | 52 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 56 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 60 +- ...0_guard_no_spectre_i32_access_0_offset.wat | 68 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 80 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 98 +-- ..._0_guard_no_spectre_i8_access_0_offset.wat | 64 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 80 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 96 +-- ..._guard_yes_spectre_i32_access_0_offset.wat | 72 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 88 ++- ...s_spectre_i32_access_0xffff0000_offset.wat | 102 +-- ...0_guard_yes_spectre_i8_access_0_offset.wat | 72 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 88 ++- ...es_spectre_i8_access_0xffff0000_offset.wat | 100 +-- ...f_guard_no_spectre_i32_access_0_offset.wat | 64 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 68 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 76 +- ...ff_guard_no_spectre_i8_access_0_offset.wat | 64 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 68 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 76 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 68 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 76 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 80 +- ...f_guard_yes_spectre_i8_access_0_offset.wat | 72 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 76 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 80 +- ...0_guard_no_spectre_i32_access_0_offset.wat | 60 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 72 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 90 +-- ..._0_guard_no_spectre_i8_access_0_offset.wat | 56 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 72 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 88 ++- ..._guard_yes_spectre_i32_access_0_offset.wat | 64 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 80 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 94 +-- ...0_guard_yes_spectre_i8_access_0_offset.wat | 64 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 80 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 92 ++- ...f_guard_no_spectre_i32_access_0_offset.wat | 56 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 60 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 68 +- ...ff_guard_no_spectre_i8_access_0_offset.wat | 56 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 60 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 68 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 60 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 68 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 72 +- ...f_guard_yes_spectre_i8_access_0_offset.wat | 64 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 68 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 72 +- ...0_guard_no_spectre_i32_access_0_offset.wat | 72 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 76 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 80 +- ..._0_guard_no_spectre_i8_access_0_offset.wat | 48 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 76 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 80 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 76 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 84 ++- ...s_spectre_i32_access_0xffff0000_offset.wat | 84 ++- ...0_guard_yes_spectre_i8_access_0_offset.wat | 48 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 84 ++- ...es_spectre_i8_access_0xffff0000_offset.wat | 84 ++- ...f_guard_no_spectre_i32_access_0_offset.wat | 48 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 52 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 60 +- ...ff_guard_no_spectre_i8_access_0_offset.wat | 48 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 52 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 60 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 48 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 52 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 60 +- ...f_guard_yes_spectre_i8_access_0_offset.wat | 48 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 52 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 60 +- ...0_guard_no_spectre_i32_access_0_offset.wat | 64 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 68 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 72 +- ..._0_guard_no_spectre_i8_access_0_offset.wat | 64 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 68 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 72 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 68 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 76 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 76 +- ...0_guard_yes_spectre_i8_access_0_offset.wat | 68 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 76 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 76 +- ...f_guard_no_spectre_i32_access_0_offset.wat | 64 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 68 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 72 +- ...ff_guard_no_spectre_i8_access_0_offset.wat | 64 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 68 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 72 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 68 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 76 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 76 +- ...f_guard_yes_spectre_i8_access_0_offset.wat | 68 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 76 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 76 +- ...0_guard_no_spectre_i32_access_0_offset.wat | 68 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 70 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 82 +- ..._0_guard_no_spectre_i8_access_0_offset.wat | 62 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 70 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 82 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 88 +-- ...d_yes_spectre_i32_access_0x1000_offset.wat | 90 +-- ...s_spectre_i32_access_0xffff0000_offset.wat | 108 ++- ...0_guard_yes_spectre_i8_access_0_offset.wat | 76 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 90 +-- ...es_spectre_i8_access_0xffff0000_offset.wat | 108 ++- ...f_guard_no_spectre_i32_access_0_offset.wat | 62 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 66 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 66 +- ...ff_guard_no_spectre_i8_access_0_offset.wat | 62 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 66 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 66 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 76 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 86 +-- ...s_spectre_i32_access_0xffff0000_offset.wat | 88 +-- ...f_guard_yes_spectre_i8_access_0_offset.wat | 76 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 86 +-- ...es_spectre_i8_access_0xffff0000_offset.wat | 88 +-- ...0_guard_no_spectre_i32_access_0_offset.wat | 60 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 64 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 84 +-- ..._0_guard_no_spectre_i8_access_0_offset.wat | 56 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 64 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 84 +-- ..._guard_yes_spectre_i32_access_0_offset.wat | 76 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 86 +-- ...s_spectre_i32_access_0xffff0000_offset.wat | 91 +-- ...0_guard_yes_spectre_i8_access_0_offset.wat | 66 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 86 +-- ...es_spectre_i8_access_0xffff0000_offset.wat | 91 +-- ...f_guard_no_spectre_i32_access_0_offset.wat | 56 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 60 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 60 +- ...ff_guard_no_spectre_i8_access_0_offset.wat | 56 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 60 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 60 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 66 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 84 +-- ...s_spectre_i32_access_0xffff0000_offset.wat | 86 +-- ...f_guard_yes_spectre_i8_access_0_offset.wat | 66 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 84 +-- ...es_spectre_i8_access_0xffff0000_offset.wat | 86 +-- ...0_guard_no_spectre_i32_access_0_offset.wat | 56 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 60 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 60 +- ..._0_guard_no_spectre_i8_access_0_offset.wat | 48 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 60 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 60 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 76 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 72 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 79 +- ...0_guard_yes_spectre_i8_access_0_offset.wat | 48 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 72 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 79 +- ...f_guard_no_spectre_i32_access_0_offset.wat | 48 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 44 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 44 +- ...ff_guard_no_spectre_i8_access_0_offset.wat | 48 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 44 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 44 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 48 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 44 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 44 +- ...f_guard_yes_spectre_i8_access_0_offset.wat | 48 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 44 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 44 +- ...0_guard_no_spectre_i32_access_0_offset.wat | 52 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 56 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 56 +- ..._0_guard_no_spectre_i8_access_0_offset.wat | 52 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 56 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 56 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 67 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 60 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 72 +- ...0_guard_yes_spectre_i8_access_0_offset.wat | 67 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 60 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 72 +- ...f_guard_no_spectre_i32_access_0_offset.wat | 52 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 56 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 56 +- ...ff_guard_no_spectre_i8_access_0_offset.wat | 52 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 56 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 56 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 67 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 60 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 72 +- ...f_guard_yes_spectre_i8_access_0_offset.wat | 67 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 60 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 72 +- ...0_guard_no_spectre_i32_access_0_offset.wat | 70 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 70 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 92 ++- ..._0_guard_no_spectre_i8_access_0_offset.wat | 66 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 70 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 94 ++- ..._guard_yes_spectre_i32_access_0_offset.wat | 70 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 70 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 90 ++- ...0_guard_yes_spectre_i8_access_0_offset.wat | 66 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 70 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 92 +-- ...f_guard_no_spectre_i32_access_0_offset.wat | 66 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 66 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 70 +- ...ff_guard_no_spectre_i8_access_0_offset.wat | 66 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 66 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 70 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 66 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 68 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 74 +- ...f_guard_yes_spectre_i8_access_0_offset.wat | 66 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 68 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 74 +- ...0_guard_no_spectre_i32_access_0_offset.wat | 66 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 66 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 84 +-- ..._0_guard_no_spectre_i8_access_0_offset.wat | 62 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 66 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 83 +-- ..._guard_yes_spectre_i32_access_0_offset.wat | 66 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 66 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 82 +- ...0_guard_yes_spectre_i8_access_0_offset.wat | 62 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 66 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 85 +-- ...f_guard_no_spectre_i32_access_0_offset.wat | 62 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 62 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 66 +- ...ff_guard_no_spectre_i8_access_0_offset.wat | 62 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 62 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 66 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 62 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 62 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 70 +- ...f_guard_yes_spectre_i8_access_0_offset.wat | 62 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 62 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 70 +- ...0_guard_no_spectre_i32_access_0_offset.wat | 68 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 66 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 66 +- ..._0_guard_no_spectre_i8_access_0_offset.wat | 46 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 64 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 66 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 68 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 75 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 70 +- ...0_guard_yes_spectre_i8_access_0_offset.wat | 46 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 71 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 70 +- ...f_guard_no_spectre_i32_access_0_offset.wat | 46 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 46 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 50 +- ...ff_guard_no_spectre_i8_access_0_offset.wat | 46 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 46 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 50 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 46 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 46 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 50 +- ...f_guard_yes_spectre_i8_access_0_offset.wat | 46 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 46 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 50 +- ...0_guard_no_spectre_i32_access_0_offset.wat | 60 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 66 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 62 +- ..._0_guard_no_spectre_i8_access_0_offset.wat | 62 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 63 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 62 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 66 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 64 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 66 +- ...0_guard_yes_spectre_i8_access_0_offset.wat | 65 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 61 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 66 +- ...f_guard_no_spectre_i32_access_0_offset.wat | 60 +- ...rd_no_spectre_i32_access_0x1000_offset.wat | 66 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 62 +- ...ff_guard_no_spectre_i8_access_0_offset.wat | 62 +- ...ard_no_spectre_i8_access_0x1000_offset.wat | 63 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 62 +- ..._guard_yes_spectre_i32_access_0_offset.wat | 66 +- ...d_yes_spectre_i32_access_0x1000_offset.wat | 64 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 66 +- ...f_guard_yes_spectre_i8_access_0_offset.wat | 65 +- ...rd_yes_spectre_i8_access_0x1000_offset.wat | 61 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 66 +- tests/disas/pcc-imported-memory.wat | 62 +- tests/disas/pcc-insertlane-x64-avx.wat | 337 ++++----- tests/disas/pcc-insertlane-x64.wat | 342 ++++----- tests/disas/pcc-loads-x64-avx.wat | 92 +-- tests/disas/pcc-loads-x64.wat | 92 +-- tests/disas/riscv64-zbb.wat | 192 +++-- tests/disas/riscv64-zbs.wat | 700 +++++++++++------- tests/disas/x64-bmi1.wat | 190 ++--- tests/disas/x64-bmi2.wat | 194 ++--- tests/disas/x64-pmin.wat | 152 ++-- .../disas/x64-relaxed-simd-deterministic.wat | 227 +++--- tests/disas/x64-relaxed-simd.wat | 174 ++--- 398 files changed, 13113 insertions(+), 14373 deletions(-) diff --git a/tests/disas/aarch64-relaxed-simd.wat b/tests/disas/aarch64-relaxed-simd.wat index f91d30ad7262..9434b2156c6b 100644 --- a/tests/disas/aarch64-relaxed-simd.wat +++ b/tests/disas/aarch64-relaxed-simd.wat @@ -36,52 +36,52 @@ ) ) -;; function u0:0: -;; block0: -;; b label1 -;; block1: -;; fcvtzs v0.4s, v0.4s -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: fcvtzs v0.4s, v0.4s +;; c: ldp x29, x30, [sp], #0x10 +;; 10: ret ;; -;; function u0:1: -;; block0: -;; b label1 -;; block1: -;; fcvtzu v0.4s, v0.4s -;; ret +;; wasm[0]::function[1]: +;; 20: stp x29, x30, [sp, #-0x10]! +;; 24: mov x29, sp +;; 28: fcvtzu v0.4s, v0.4s +;; 2c: ldp x29, x30, [sp], #0x10 +;; 30: ret ;; -;; function u0:2: -;; block0: -;; b label1 -;; block1: -;; fcvtzs v6.2d, v0.2d -;; sqxtn v0.2s, v6.2d -;; ret +;; wasm[0]::function[2]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: fcvtzs v6.2d, v0.2d +;; 4c: sqxtn v0.2s, v6.2d +;; 50: ldp x29, x30, [sp], #0x10 +;; 54: ret ;; -;; function u0:3: -;; block0: -;; b label1 -;; block1: -;; fcvtzu v6.2d, v0.2d -;; uqxtn v0.2s, v6.2d -;; ret +;; wasm[0]::function[3]: +;; 60: stp x29, x30, [sp, #-0x10]! +;; 64: mov x29, sp +;; 68: fcvtzu v6.2d, v0.2d +;; 6c: uqxtn v0.2s, v6.2d +;; 70: ldp x29, x30, [sp], #0x10 +;; 74: ret ;; -;; function u0:4: -;; block0: -;; b label1 -;; block1: -;; smull v16.8h, v0.8b, v1.8b -;; smull2 v17.8h, v0.16b, v1.16b -;; addp v0.8h, v16.8h, v17.8h -;; ret +;; wasm[0]::function[4]: +;; 80: stp x29, x30, [sp, #-0x10]! +;; 84: mov x29, sp +;; 88: smull v16.8h, v0.8b, v1.8b +;; 8c: smull2 v17.8h, v0.16b, v1.16b +;; 90: addp v0.8h, v16.8h, v17.8h +;; 94: ldp x29, x30, [sp], #0x10 +;; 98: ret ;; -;; function u0:5: -;; block0: -;; b label1 -;; block1: -;; smull v19.8h, v0.8b, v1.8b -;; smull2 v20.8h, v0.16b, v1.16b -;; addp v19.8h, v19.8h, v20.8h -;; saddlp v19.4s, v19.8h -;; add v0.4s, v19.4s, v2.4s -;; ret +;; wasm[0]::function[5]: +;; a0: stp x29, x30, [sp, #-0x10]! +;; a4: mov x29, sp +;; a8: smull v19.8h, v0.8b, v1.8b +;; ac: smull2 v20.8h, v0.16b, v1.16b +;; b0: addp v19.8h, v19.8h, v20.8h +;; b4: saddlp v19.4s, v19.8h +;; b8: add v0.4s, v19.4s, v2.4s +;; bc: ldp x29, x30, [sp], #0x10 +;; c0: ret diff --git a/tests/disas/i32-not-x64.wat b/tests/disas/i32-not-x64.wat index 088c4c54a198..f1a34f483aa0 100644 --- a/tests/disas/i32-not-x64.wat +++ b/tests/disas/i32-not-x64.wat @@ -18,29 +18,19 @@ i32.and) ) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; movq %rdx, %rax -;; notl %eax, %eax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq %rdx, %rax +;; 7: notl %eax +;; 9: movq %rbp, %rsp +;; c: popq %rbp +;; d: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; andn %edx, %ecx, %eax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 10: pushq %rbp +;; 11: movq %rsp, %rbp +;; 14: andnl %edx, %ecx, %eax +;; 19: movq %rbp, %rsp +;; 1c: popq %rbp +;; 1d: retq diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat index 783cd60b6323..39c54dd8bed2 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ldr x8, [x0, #88] -;; mov w9, w2 -;; sub x8, x8, #4 -;; subs xzr, x9, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; str w3, [x10, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x8, [x0, #0x58] +;; c: mov w9, w2 +;; 10: sub x8, x8, #4 +;; 14: cmp x9, x8 +;; 18: b.hi #0x2c +;; 1c: ldr x10, [x0, #0x50] +;; 20: str w3, [x10, w2, uxtw] +;; 24: ldp x29, x30, [sp], #0x10 +;; 28: ret +;; 2c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x8, [x0, #88] -;; mov w9, w2 -;; sub x8, x8, #4 -;; subs xzr, x9, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; ldr w0, [x10, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x8, [x0, #0x58] +;; 4c: mov w9, w2 +;; 50: sub x8, x8, #4 +;; 54: cmp x9, x8 +;; 58: b.hi #0x6c +;; 5c: ldr x10, [x0, #0x50] +;; 60: ldr w0, [x10, w2, uxtw] +;; 64: ldp x29, x30, [sp], #0x10 +;; 68: ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat index 47dcbf5a5914..7c09573eff83 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,38 +18,34 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x10, [x0, #88] -;; mov w11, w2 -;; movz x12, #4100 -;; sub x10, x10, x12 -;; subs xzr, x11, x10 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x12, [x0, #80] -;; add x12, x12, #4096 -;; str w3, [x12, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x10, [x0, #0x58] +;; c: mov w11, w2 +;; 10: mov x12, #0x1004 +;; 14: sub x10, x10, x12 +;; 18: cmp x11, x10 +;; 1c: b.hi #0x34 +;; 20: ldr x12, [x0, #0x50] +;; 24: add x12, x12, #1, lsl #12 +;; 28: str w3, [x12, w2, uxtw] +;; 2c: ldp x29, x30, [sp], #0x10 +;; 30: ret +;; 34: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x10, [x0, #88] -;; mov w11, w2 -;; movz x12, #4100 -;; sub x10, x10, x12 -;; subs xzr, x11, x10 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x12, [x0, #80] -;; add x11, x12, #4096 -;; ldr w0, [x11, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x10, [x0, #0x58] +;; 4c: mov w11, w2 +;; 50: mov x12, #0x1004 +;; 54: sub x10, x10, x12 +;; 58: cmp x11, x10 +;; 5c: b.hi #0x74 +;; 60: ldr x12, [x0, #0x50] +;; 64: add x11, x12, #1, lsl #12 +;; 68: ldr w0, [x11, w2, uxtw] +;; 6c: ldp x29, x30, [sp], #0x10 +;; 70: ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat index 512e36ae7bfa..769b38d5d0eb 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,42 +18,40 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; mov w11, w2 -;; movn w12, #65531 -;; adds x11, x11, x12 -;; b.hs #trap=heap_oob -;; ldr x12, [x0, #88] -;; subs xzr, x11, x12 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x14, [x0, #80] -;; add x14, x14, x2, UXTW -;; movz x15, #65535, LSL #16 -;; str w3, [x14, x15] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w11, w2 +;; c: mov w12, #-0xfffc +;; 10: adds x11, x11, x12 +;; 14: b.hs #0x40 +;; 18: ldr x12, [x0, #0x58] +;; 1c: cmp x11, x12 +;; 20: b.hi #0x3c +;; 24: ldr x14, [x0, #0x50] +;; 28: add x14, x14, w2, uxtw +;; 2c: mov x15, #0xffff0000 +;; 30: str w3, [x14, x15] +;; 34: ldp x29, x30, [sp], #0x10 +;; 38: ret +;; 3c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 40: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; mov w11, w2 -;; movn w12, #65531 -;; adds x11, x11, x12 -;; b.hs #trap=heap_oob -;; ldr x12, [x0, #88] -;; subs xzr, x11, x12 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x14, [x0, #80] -;; add x14, x14, x2, UXTW -;; movz x15, #65535, LSL #16 -;; ldr w0, [x14, x15] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 60: stp x29, x30, [sp, #-0x10]! +;; 64: mov x29, sp +;; 68: mov w11, w2 +;; 6c: mov w12, #-0xfffc +;; 70: adds x11, x11, x12 +;; 74: b.hs #0xa0 +;; 78: ldr x12, [x0, #0x58] +;; 7c: cmp x11, x12 +;; 80: b.hi #0x9c +;; 84: ldr x14, [x0, #0x50] +;; 88: add x14, x14, w2, uxtw +;; 8c: mov x15, #0xffff0000 +;; 90: ldr w0, [x14, x15] +;; 94: ldp x29, x30, [sp], #0x10 +;; 98: ret +;; 9c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; a0: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat index 712253ee7efa..cb1c50a99190 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat @@ -18,32 +18,28 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ldr x7, [x0, #88] -;; mov w8, w2 -;; subs xzr, x8, x7 -;; b.hs label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; strb w3, [x9, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x7, [x0, #0x58] +;; c: mov w8, w2 +;; 10: cmp x8, x7 +;; 14: b.hs #0x28 +;; 18: ldr x9, [x0, #0x50] +;; 1c: strb w3, [x9, w2, uxtw] +;; 20: ldp x29, x30, [sp], #0x10 +;; 24: ret +;; 28: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x7, [x0, #88] -;; mov w8, w2 -;; subs xzr, x8, x7 -;; b.hs label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; ldrb w0, [x9, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x7, [x0, #0x58] +;; 4c: mov w8, w2 +;; 50: cmp x8, x7 +;; 54: b.hs #0x68 +;; 58: ldr x9, [x0, #0x50] +;; 5c: ldrb w0, [x9, w2, uxtw] +;; 60: ldp x29, x30, [sp], #0x10 +;; 64: ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat index 43d751c94672..a86e258b1ba0 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,38 +18,34 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x10, [x0, #88] -;; mov w11, w2 -;; movz x12, #4097 -;; sub x10, x10, x12 -;; subs xzr, x11, x10 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x12, [x0, #80] -;; add x12, x12, #4096 -;; strb w3, [x12, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x10, [x0, #0x58] +;; c: mov w11, w2 +;; 10: mov x12, #0x1001 +;; 14: sub x10, x10, x12 +;; 18: cmp x11, x10 +;; 1c: b.hi #0x34 +;; 20: ldr x12, [x0, #0x50] +;; 24: add x12, x12, #1, lsl #12 +;; 28: strb w3, [x12, w2, uxtw] +;; 2c: ldp x29, x30, [sp], #0x10 +;; 30: ret +;; 34: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x10, [x0, #88] -;; mov w11, w2 -;; movz x12, #4097 -;; sub x10, x10, x12 -;; subs xzr, x11, x10 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x12, [x0, #80] -;; add x11, x12, #4096 -;; ldrb w0, [x11, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x10, [x0, #0x58] +;; 4c: mov w11, w2 +;; 50: mov x12, #0x1001 +;; 54: sub x10, x10, x12 +;; 58: cmp x11, x10 +;; 5c: b.hi #0x74 +;; 60: ldr x12, [x0, #0x50] +;; 64: add x11, x12, #1, lsl #12 +;; 68: ldrb w0, [x11, w2, uxtw] +;; 6c: ldp x29, x30, [sp], #0x10 +;; 70: ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat index 925c749032a9..57a706542694 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,42 +18,40 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; mov w11, w2 -;; movn w12, #65534 -;; adds x11, x11, x12 -;; b.hs #trap=heap_oob -;; ldr x12, [x0, #88] -;; subs xzr, x11, x12 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x14, [x0, #80] -;; add x14, x14, x2, UXTW -;; movz x15, #65535, LSL #16 -;; strb w3, [x14, x15] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w11, w2 +;; c: mov w12, #-0xffff +;; 10: adds x11, x11, x12 +;; 14: b.hs #0x40 +;; 18: ldr x12, [x0, #0x58] +;; 1c: cmp x11, x12 +;; 20: b.hi #0x3c +;; 24: ldr x14, [x0, #0x50] +;; 28: add x14, x14, w2, uxtw +;; 2c: mov x15, #0xffff0000 +;; 30: strb w3, [x14, x15] +;; 34: ldp x29, x30, [sp], #0x10 +;; 38: ret +;; 3c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 40: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; mov w11, w2 -;; movn w12, #65534 -;; adds x11, x11, x12 -;; b.hs #trap=heap_oob -;; ldr x12, [x0, #88] -;; subs xzr, x11, x12 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x14, [x0, #80] -;; add x14, x14, x2, UXTW -;; movz x15, #65535, LSL #16 -;; ldrb w0, [x14, x15] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 60: stp x29, x30, [sp, #-0x10]! +;; 64: mov x29, sp +;; 68: mov w11, w2 +;; 6c: mov w12, #-0xffff +;; 70: adds x11, x11, x12 +;; 74: b.hs #0xa0 +;; 78: ldr x12, [x0, #0x58] +;; 7c: cmp x11, x12 +;; 80: b.hi #0x9c +;; 84: ldr x14, [x0, #0x50] +;; 88: add x14, x14, w2, uxtw +;; 8c: mov x15, #0xffff0000 +;; 90: ldrb w0, [x14, x15] +;; 94: ldp x29, x30, [sp], #0x10 +;; 98: ret +;; 9c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; a0: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat index 66f2eaf843e2..13d7259ffd57 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat @@ -18,34 +18,34 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ldr x13, [x0, #88] -;; ldr x11, [x0, #80] -;; mov w12, w2 -;; sub x13, x13, #4 -;; movz x14, #0 -;; add x11, x11, x2, UXTW -;; subs xzr, x12, x13 -;; csel x12, x14, x11, hi -;; csdb -;; str w3, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x13, [x0, #0x58] +;; c: ldr x11, [x0, #0x50] +;; 10: mov w12, w2 +;; 14: sub x13, x13, #4 +;; 18: mov x14, #0 +;; 1c: add x11, x11, w2, uxtw +;; 20: cmp x12, x13 +;; 24: csel x12, x14, x11, hi +;; 28: csdb +;; 2c: str w3, [x12] +;; 30: ldp x29, x30, [sp], #0x10 +;; 34: ret ;; -;; function u0:1: -;; block0: -;; ldr x13, [x0, #88] -;; ldr x11, [x0, #80] -;; mov w12, w2 -;; sub x13, x13, #4 -;; movz x14, #0 -;; add x11, x11, x2, UXTW -;; subs xzr, x12, x13 -;; csel x12, x14, x11, hi -;; csdb -;; ldr w0, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x13, [x0, #0x58] +;; 4c: ldr x11, [x0, #0x50] +;; 50: mov w12, w2 +;; 54: sub x13, x13, #4 +;; 58: mov x14, #0 +;; 5c: add x11, x11, w2, uxtw +;; 60: cmp x12, x13 +;; 64: csel x12, x14, x11, hi +;; 68: csdb +;; 6c: ldr w0, [x12] +;; 70: ldp x29, x30, [sp], #0x10 +;; 74: ret diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat index c8be1c8c98ed..de8033e464fc 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,38 +18,38 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x15, [x0, #88] -;; ldr x14, [x0, #80] -;; mov w13, w2 -;; movz x0, #4100 -;; sub x15, x15, x0 -;; movz x0, #0 -;; add x14, x14, x2, UXTW -;; add x14, x14, #4096 -;; subs xzr, x13, x15 -;; csel x14, x0, x14, hi -;; csdb -;; str w3, [x14] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x15, [x0, #0x58] +;; c: ldr x14, [x0, #0x50] +;; 10: mov w13, w2 +;; 14: mov x0, #0x1004 +;; 18: sub x15, x15, x0 +;; 1c: mov x0, #0 +;; 20: add x14, x14, w2, uxtw +;; 24: add x14, x14, #1, lsl #12 +;; 28: cmp x13, x15 +;; 2c: csel x14, x0, x14, hi +;; 30: csdb +;; 34: str w3, [x14] +;; 38: ldp x29, x30, [sp], #0x10 +;; 3c: ret ;; -;; function u0:1: -;; block0: -;; ldr x15, [x0, #88] -;; ldr x14, [x0, #80] -;; mov w13, w2 -;; movz x0, #4100 -;; sub x15, x15, x0 -;; movz x0, #0 -;; add x14, x14, x2, UXTW -;; add x14, x14, #4096 -;; subs xzr, x13, x15 -;; csel x14, x0, x14, hi -;; csdb -;; ldr w0, [x14] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x15, [x0, #0x58] +;; 4c: ldr x14, [x0, #0x50] +;; 50: mov w13, w2 +;; 54: mov x0, #0x1004 +;; 58: sub x15, x15, x0 +;; 5c: mov x0, #0 +;; 60: add x14, x14, w2, uxtw +;; 64: add x14, x14, #1, lsl #12 +;; 68: cmp x13, x15 +;; 6c: csel x14, x0, x14, hi +;; 70: csdb +;; 74: ldr w0, [x14] +;; 78: ldp x29, x30, [sp], #0x10 +;; 7c: ret diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 9149c41f9e3d..d7b1e3aa1505 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,42 +18,44 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; mov w14, w2 -;; movn w15, #65531 -;; adds x14, x14, x15 -;; b.hs #trap=heap_oob -;; ldr x15, [x0, #88] -;; ldr x1, [x0, #80] -;; movz x0, #0 -;; add x1, x1, x2, UXTW -;; movz x2, #65535, LSL #16 -;; add x1, x1, x2 -;; subs xzr, x14, x15 -;; csel x0, x0, x1, hi -;; csdb -;; str w3, [x0] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w14, w2 +;; c: mov w15, #-0xfffc +;; 10: adds x14, x14, x15 +;; 14: b.hs #0x48 +;; 18: ldr x15, [x0, #0x58] +;; 1c: ldr x1, [x0, #0x50] +;; 20: mov x0, #0 +;; 24: add x1, x1, w2, uxtw +;; 28: mov x2, #0xffff0000 +;; 2c: add x1, x1, x2 +;; 30: cmp x14, x15 +;; 34: csel x0, x0, x1, hi +;; 38: csdb +;; 3c: str w3, [x0] +;; 40: ldp x29, x30, [sp], #0x10 +;; 44: ret +;; 48: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; mov w14, w2 -;; movn w15, #65531 -;; adds x14, x14, x15 -;; b.hs #trap=heap_oob -;; ldr x15, [x0, #88] -;; ldr x1, [x0, #80] -;; movz x0, #0 -;; add x1, x1, x2, UXTW -;; movz x2, #65535, LSL #16 -;; add x1, x1, x2 -;; subs xzr, x14, x15 -;; csel x0, x0, x1, hi -;; csdb -;; ldr w0, [x0] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 60: stp x29, x30, [sp, #-0x10]! +;; 64: mov x29, sp +;; 68: mov w14, w2 +;; 6c: mov w15, #-0xfffc +;; 70: adds x14, x14, x15 +;; 74: b.hs #0xa8 +;; 78: ldr x15, [x0, #0x58] +;; 7c: ldr x1, [x0, #0x50] +;; 80: mov x0, #0 +;; 84: add x1, x1, w2, uxtw +;; 88: mov x2, #0xffff0000 +;; 8c: add x1, x1, x2 +;; 90: cmp x14, x15 +;; 94: csel x0, x0, x1, hi +;; 98: csdb +;; 9c: ldr w0, [x0] +;; a0: ldp x29, x30, [sp], #0x10 +;; a4: ret +;; a8: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat index 9646be41fed1..75f2cff972e9 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat @@ -18,32 +18,32 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ldr x10, [x0, #88] -;; ldr x11, [x0, #80] -;; mov w12, w2 -;; movz x13, #0 -;; add x11, x11, x2, UXTW -;; subs xzr, x12, x10 -;; csel x11, x13, x11, hs -;; csdb -;; strb w3, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x10, [x0, #0x58] +;; c: ldr x11, [x0, #0x50] +;; 10: mov w12, w2 +;; 14: mov x13, #0 +;; 18: add x11, x11, w2, uxtw +;; 1c: cmp x12, x10 +;; 20: csel x11, x13, x11, hs +;; 24: csdb +;; 28: strb w3, [x11] +;; 2c: ldp x29, x30, [sp], #0x10 +;; 30: ret ;; -;; function u0:1: -;; block0: -;; ldr x10, [x0, #88] -;; ldr x11, [x0, #80] -;; mov w12, w2 -;; movz x13, #0 -;; add x11, x11, x2, UXTW -;; subs xzr, x12, x10 -;; csel x11, x13, x11, hs -;; csdb -;; ldrb w0, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x10, [x0, #0x58] +;; 4c: ldr x11, [x0, #0x50] +;; 50: mov w12, w2 +;; 54: mov x13, #0 +;; 58: add x11, x11, w2, uxtw +;; 5c: cmp x12, x10 +;; 60: csel x11, x13, x11, hs +;; 64: csdb +;; 68: ldrb w0, [x11] +;; 6c: ldp x29, x30, [sp], #0x10 +;; 70: ret diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat index 790d2a26fd21..211a29ef7905 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,38 +18,38 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x15, [x0, #88] -;; ldr x14, [x0, #80] -;; mov w13, w2 -;; movz x0, #4097 -;; sub x15, x15, x0 -;; movz x0, #0 -;; add x14, x14, x2, UXTW -;; add x14, x14, #4096 -;; subs xzr, x13, x15 -;; csel x14, x0, x14, hi -;; csdb -;; strb w3, [x14] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x15, [x0, #0x58] +;; c: ldr x14, [x0, #0x50] +;; 10: mov w13, w2 +;; 14: mov x0, #0x1001 +;; 18: sub x15, x15, x0 +;; 1c: mov x0, #0 +;; 20: add x14, x14, w2, uxtw +;; 24: add x14, x14, #1, lsl #12 +;; 28: cmp x13, x15 +;; 2c: csel x14, x0, x14, hi +;; 30: csdb +;; 34: strb w3, [x14] +;; 38: ldp x29, x30, [sp], #0x10 +;; 3c: ret ;; -;; function u0:1: -;; block0: -;; ldr x15, [x0, #88] -;; ldr x14, [x0, #80] -;; mov w13, w2 -;; movz x0, #4097 -;; sub x15, x15, x0 -;; movz x0, #0 -;; add x14, x14, x2, UXTW -;; add x14, x14, #4096 -;; subs xzr, x13, x15 -;; csel x14, x0, x14, hi -;; csdb -;; ldrb w0, [x14] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x15, [x0, #0x58] +;; 4c: ldr x14, [x0, #0x50] +;; 50: mov w13, w2 +;; 54: mov x0, #0x1001 +;; 58: sub x15, x15, x0 +;; 5c: mov x0, #0 +;; 60: add x14, x14, w2, uxtw +;; 64: add x14, x14, #1, lsl #12 +;; 68: cmp x13, x15 +;; 6c: csel x14, x0, x14, hi +;; 70: csdb +;; 74: ldrb w0, [x14] +;; 78: ldp x29, x30, [sp], #0x10 +;; 7c: ret diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat index 1e0e4dc9c827..5f991a8e27bd 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,42 +18,44 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; mov w14, w2 -;; movn w15, #65534 -;; adds x14, x14, x15 -;; b.hs #trap=heap_oob -;; ldr x15, [x0, #88] -;; ldr x1, [x0, #80] -;; movz x0, #0 -;; add x1, x1, x2, UXTW -;; movz x2, #65535, LSL #16 -;; add x1, x1, x2 -;; subs xzr, x14, x15 -;; csel x0, x0, x1, hi -;; csdb -;; strb w3, [x0] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w14, w2 +;; c: mov w15, #-0xffff +;; 10: adds x14, x14, x15 +;; 14: b.hs #0x48 +;; 18: ldr x15, [x0, #0x58] +;; 1c: ldr x1, [x0, #0x50] +;; 20: mov x0, #0 +;; 24: add x1, x1, w2, uxtw +;; 28: mov x2, #0xffff0000 +;; 2c: add x1, x1, x2 +;; 30: cmp x14, x15 +;; 34: csel x0, x0, x1, hi +;; 38: csdb +;; 3c: strb w3, [x0] +;; 40: ldp x29, x30, [sp], #0x10 +;; 44: ret +;; 48: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; mov w14, w2 -;; movn w15, #65534 -;; adds x14, x14, x15 -;; b.hs #trap=heap_oob -;; ldr x15, [x0, #88] -;; ldr x1, [x0, #80] -;; movz x0, #0 -;; add x1, x1, x2, UXTW -;; movz x2, #65535, LSL #16 -;; add x1, x1, x2 -;; subs xzr, x14, x15 -;; csel x0, x0, x1, hi -;; csdb -;; ldrb w0, [x0] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 60: stp x29, x30, [sp, #-0x10]! +;; 64: mov x29, sp +;; 68: mov w14, w2 +;; 6c: mov w15, #-0xffff +;; 70: adds x14, x14, x15 +;; 74: b.hs #0xa8 +;; 78: ldr x15, [x0, #0x58] +;; 7c: ldr x1, [x0, #0x50] +;; 80: mov x0, #0 +;; 84: add x1, x1, w2, uxtw +;; 88: mov x2, #0xffff0000 +;; 8c: add x1, x1, x2 +;; 90: cmp x14, x15 +;; 94: csel x0, x0, x1, hi +;; 98: csdb +;; 9c: ldrb w0, [x0] +;; a0: ldp x29, x30, [sp], #0x10 +;; a4: ret +;; a8: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat index e80e0a25d410..16f0a6a5d07e 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat @@ -18,32 +18,28 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ldr x7, [x0, #88] -;; mov w8, w2 -;; subs xzr, x8, x7 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; str w3, [x9, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x7, [x0, #0x58] +;; c: mov w8, w2 +;; 10: cmp x8, x7 +;; 14: b.hi #0x28 +;; 18: ldr x9, [x0, #0x50] +;; 1c: str w3, [x9, w2, uxtw] +;; 20: ldp x29, x30, [sp], #0x10 +;; 24: ret +;; 28: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x7, [x0, #88] -;; mov w8, w2 -;; subs xzr, x8, x7 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; ldr w0, [x9, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x7, [x0, #0x58] +;; 4c: mov w8, w2 +;; 50: cmp x8, x7 +;; 54: b.hi #0x68 +;; 58: ldr x9, [x0, #0x50] +;; 5c: ldr w0, [x9, w2, uxtw] +;; 60: ldp x29, x30, [sp], #0x10 +;; 64: ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat index f33e6424289d..175eeaf331e3 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x8, [x0, #88] -;; mov w9, w2 -;; subs xzr, x9, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x10, x10, #4096 -;; str w3, [x10, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x8, [x0, #0x58] +;; c: mov w9, w2 +;; 10: cmp x9, x8 +;; 14: b.hi #0x2c +;; 18: ldr x10, [x0, #0x50] +;; 1c: add x10, x10, #1, lsl #12 +;; 20: str w3, [x10, w2, uxtw] +;; 24: ldp x29, x30, [sp], #0x10 +;; 28: ret +;; 2c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x8, [x0, #88] -;; mov w9, w2 -;; subs xzr, x9, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x9, x10, #4096 -;; ldr w0, [x9, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x8, [x0, #0x58] +;; 4c: mov w9, w2 +;; 50: cmp x9, x8 +;; 54: b.hi #0x6c +;; 58: ldr x10, [x0, #0x50] +;; 5c: add x9, x10, #1, lsl #12 +;; 60: ldr w0, [x9, w2, uxtw] +;; 64: ldp x29, x30, [sp], #0x10 +;; 68: ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat index 17a8e4ac2965..89b1be296a58 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,36 +18,32 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ldr x9, [x0, #88] -;; mov w10, w2 -;; subs xzr, x10, x9 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x11, [x0, #80] -;; add x11, x11, x2, UXTW -;; movz x12, #65535, LSL #16 -;; str w3, [x11, x12] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x9, [x0, #0x58] +;; c: mov w10, w2 +;; 10: cmp x10, x9 +;; 14: b.hi #0x30 +;; 18: ldr x11, [x0, #0x50] +;; 1c: add x11, x11, w2, uxtw +;; 20: mov x12, #0xffff0000 +;; 24: str w3, [x11, x12] +;; 28: ldp x29, x30, [sp], #0x10 +;; 2c: ret +;; 30: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x9, [x0, #88] -;; mov w10, w2 -;; subs xzr, x10, x9 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x11, [x0, #80] -;; add x11, x11, x2, UXTW -;; movz x12, #65535, LSL #16 -;; ldr w0, [x11, x12] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x9, [x0, #0x58] +;; 4c: mov w10, w2 +;; 50: cmp x10, x9 +;; 54: b.hi #0x70 +;; 58: ldr x11, [x0, #0x50] +;; 5c: add x11, x11, w2, uxtw +;; 60: mov x12, #0xffff0000 +;; 64: ldr w0, [x11, x12] +;; 68: ldp x29, x30, [sp], #0x10 +;; 6c: ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat index d6364d29a7ac..2bcdecb2387b 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat @@ -18,32 +18,28 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ldr x7, [x0, #88] -;; mov w8, w2 -;; subs xzr, x8, x7 -;; b.hs label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; strb w3, [x9, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x7, [x0, #0x58] +;; c: mov w8, w2 +;; 10: cmp x8, x7 +;; 14: b.hs #0x28 +;; 18: ldr x9, [x0, #0x50] +;; 1c: strb w3, [x9, w2, uxtw] +;; 20: ldp x29, x30, [sp], #0x10 +;; 24: ret +;; 28: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x7, [x0, #88] -;; mov w8, w2 -;; subs xzr, x8, x7 -;; b.hs label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; ldrb w0, [x9, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x7, [x0, #0x58] +;; 4c: mov w8, w2 +;; 50: cmp x8, x7 +;; 54: b.hs #0x68 +;; 58: ldr x9, [x0, #0x50] +;; 5c: ldrb w0, [x9, w2, uxtw] +;; 60: ldp x29, x30, [sp], #0x10 +;; 64: ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat index b178e3b807a1..da22cc2b38ce 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x8, [x0, #88] -;; mov w9, w2 -;; subs xzr, x9, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x10, x10, #4096 -;; strb w3, [x10, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x8, [x0, #0x58] +;; c: mov w9, w2 +;; 10: cmp x9, x8 +;; 14: b.hi #0x2c +;; 18: ldr x10, [x0, #0x50] +;; 1c: add x10, x10, #1, lsl #12 +;; 20: strb w3, [x10, w2, uxtw] +;; 24: ldp x29, x30, [sp], #0x10 +;; 28: ret +;; 2c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x8, [x0, #88] -;; mov w9, w2 -;; subs xzr, x9, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x9, x10, #4096 -;; ldrb w0, [x9, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x8, [x0, #0x58] +;; 4c: mov w9, w2 +;; 50: cmp x9, x8 +;; 54: b.hi #0x6c +;; 58: ldr x10, [x0, #0x50] +;; 5c: add x9, x10, #1, lsl #12 +;; 60: ldrb w0, [x9, w2, uxtw] +;; 64: ldp x29, x30, [sp], #0x10 +;; 68: ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat index 6651780935a4..45b743089d22 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,36 +18,32 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ldr x9, [x0, #88] -;; mov w10, w2 -;; subs xzr, x10, x9 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x11, [x0, #80] -;; add x11, x11, x2, UXTW -;; movz x12, #65535, LSL #16 -;; strb w3, [x11, x12] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x9, [x0, #0x58] +;; c: mov w10, w2 +;; 10: cmp x10, x9 +;; 14: b.hi #0x30 +;; 18: ldr x11, [x0, #0x50] +;; 1c: add x11, x11, w2, uxtw +;; 20: mov x12, #0xffff0000 +;; 24: strb w3, [x11, x12] +;; 28: ldp x29, x30, [sp], #0x10 +;; 2c: ret +;; 30: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x9, [x0, #88] -;; mov w10, w2 -;; subs xzr, x10, x9 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x11, [x0, #80] -;; add x11, x11, x2, UXTW -;; movz x12, #65535, LSL #16 -;; ldrb w0, [x11, x12] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x9, [x0, #0x58] +;; 4c: mov w10, w2 +;; 50: cmp x10, x9 +;; 54: b.hi #0x70 +;; 58: ldr x11, [x0, #0x50] +;; 5c: add x11, x11, w2, uxtw +;; 60: mov x12, #0xffff0000 +;; 64: ldrb w0, [x11, x12] +;; 68: ldp x29, x30, [sp], #0x10 +;; 6c: ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat index e6057a1bf004..ac60665eb9ce 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat @@ -18,32 +18,32 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ldr x10, [x0, #88] -;; ldr x11, [x0, #80] -;; mov w12, w2 -;; movz x13, #0 -;; add x11, x11, x2, UXTW -;; subs xzr, x12, x10 -;; csel x11, x13, x11, hi -;; csdb -;; str w3, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x10, [x0, #0x58] +;; c: ldr x11, [x0, #0x50] +;; 10: mov w12, w2 +;; 14: mov x13, #0 +;; 18: add x11, x11, w2, uxtw +;; 1c: cmp x12, x10 +;; 20: csel x11, x13, x11, hi +;; 24: csdb +;; 28: str w3, [x11] +;; 2c: ldp x29, x30, [sp], #0x10 +;; 30: ret ;; -;; function u0:1: -;; block0: -;; ldr x10, [x0, #88] -;; ldr x11, [x0, #80] -;; mov w12, w2 -;; movz x13, #0 -;; add x11, x11, x2, UXTW -;; subs xzr, x12, x10 -;; csel x11, x13, x11, hi -;; csdb -;; ldr w0, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x10, [x0, #0x58] +;; 4c: ldr x11, [x0, #0x50] +;; 50: mov w12, w2 +;; 54: mov x13, #0 +;; 58: add x11, x11, w2, uxtw +;; 5c: cmp x12, x10 +;; 60: csel x11, x13, x11, hi +;; 64: csdb +;; 68: ldr w0, [x11] +;; 6c: ldp x29, x30, [sp], #0x10 +;; 70: ret diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat index dab85f1ddb82..a542e6144bd2 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,34 +18,34 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x11, [x0, #88] -;; ldr x14, [x0, #80] -;; mov w12, w2 -;; movz x13, #0 -;; add x14, x14, x2, UXTW -;; add x14, x14, #4096 -;; subs xzr, x12, x11 -;; csel x12, x13, x14, hi -;; csdb -;; str w3, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x11, [x0, #0x58] +;; c: ldr x14, [x0, #0x50] +;; 10: mov w12, w2 +;; 14: mov x13, #0 +;; 18: add x14, x14, w2, uxtw +;; 1c: add x14, x14, #1, lsl #12 +;; 20: cmp x12, x11 +;; 24: csel x12, x13, x14, hi +;; 28: csdb +;; 2c: str w3, [x12] +;; 30: ldp x29, x30, [sp], #0x10 +;; 34: ret ;; -;; function u0:1: -;; block0: -;; ldr x11, [x0, #88] -;; ldr x14, [x0, #80] -;; mov w12, w2 -;; movz x13, #0 -;; add x14, x14, x2, UXTW -;; add x14, x14, #4096 -;; subs xzr, x12, x11 -;; csel x12, x13, x14, hi -;; csdb -;; ldr w0, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x11, [x0, #0x58] +;; 4c: ldr x14, [x0, #0x50] +;; 50: mov w12, w2 +;; 54: mov x13, #0 +;; 58: add x14, x14, w2, uxtw +;; 5c: add x14, x14, #1, lsl #12 +;; 60: cmp x12, x11 +;; 64: csel x12, x13, x14, hi +;; 68: csdb +;; 6c: ldr w0, [x12] +;; 70: ldp x29, x30, [sp], #0x10 +;; 74: ret diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 85904019875d..02a0b7a40447 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,36 +18,36 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ldr x12, [x0, #88] -;; ldr x15, [x0, #80] -;; mov w13, w2 -;; movz x14, #0 -;; add x15, x15, x2, UXTW -;; movz x0, #65535, LSL #16 -;; add x15, x15, x0 -;; subs xzr, x13, x12 -;; csel x13, x14, x15, hi -;; csdb -;; str w3, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x12, [x0, #0x58] +;; c: ldr x15, [x0, #0x50] +;; 10: mov w13, w2 +;; 14: mov x14, #0 +;; 18: add x15, x15, w2, uxtw +;; 1c: mov x0, #0xffff0000 +;; 20: add x15, x15, x0 +;; 24: cmp x13, x12 +;; 28: csel x13, x14, x15, hi +;; 2c: csdb +;; 30: str w3, [x13] +;; 34: ldp x29, x30, [sp], #0x10 +;; 38: ret ;; -;; function u0:1: -;; block0: -;; ldr x12, [x0, #88] -;; ldr x15, [x0, #80] -;; mov w13, w2 -;; movz x14, #0 -;; add x15, x15, x2, UXTW -;; movz x0, #65535, LSL #16 -;; add x15, x15, x0 -;; subs xzr, x13, x12 -;; csel x13, x14, x15, hi -;; csdb -;; ldr w0, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x12, [x0, #0x58] +;; 4c: ldr x15, [x0, #0x50] +;; 50: mov w13, w2 +;; 54: mov x14, #0 +;; 58: add x15, x15, w2, uxtw +;; 5c: mov x0, #0xffff0000 +;; 60: add x15, x15, x0 +;; 64: cmp x13, x12 +;; 68: csel x13, x14, x15, hi +;; 6c: csdb +;; 70: ldr w0, [x13] +;; 74: ldp x29, x30, [sp], #0x10 +;; 78: ret diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat index 01da12cc8753..2e32a56f0e84 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat @@ -18,32 +18,32 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ldr x10, [x0, #88] -;; ldr x11, [x0, #80] -;; mov w12, w2 -;; movz x13, #0 -;; add x11, x11, x2, UXTW -;; subs xzr, x12, x10 -;; csel x11, x13, x11, hs -;; csdb -;; strb w3, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x10, [x0, #0x58] +;; c: ldr x11, [x0, #0x50] +;; 10: mov w12, w2 +;; 14: mov x13, #0 +;; 18: add x11, x11, w2, uxtw +;; 1c: cmp x12, x10 +;; 20: csel x11, x13, x11, hs +;; 24: csdb +;; 28: strb w3, [x11] +;; 2c: ldp x29, x30, [sp], #0x10 +;; 30: ret ;; -;; function u0:1: -;; block0: -;; ldr x10, [x0, #88] -;; ldr x11, [x0, #80] -;; mov w12, w2 -;; movz x13, #0 -;; add x11, x11, x2, UXTW -;; subs xzr, x12, x10 -;; csel x11, x13, x11, hs -;; csdb -;; ldrb w0, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x10, [x0, #0x58] +;; 4c: ldr x11, [x0, #0x50] +;; 50: mov w12, w2 +;; 54: mov x13, #0 +;; 58: add x11, x11, w2, uxtw +;; 5c: cmp x12, x10 +;; 60: csel x11, x13, x11, hs +;; 64: csdb +;; 68: ldrb w0, [x11] +;; 6c: ldp x29, x30, [sp], #0x10 +;; 70: ret diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat index bf4634c821e1..55aadda5b470 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,34 +18,34 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x11, [x0, #88] -;; ldr x14, [x0, #80] -;; mov w12, w2 -;; movz x13, #0 -;; add x14, x14, x2, UXTW -;; add x14, x14, #4096 -;; subs xzr, x12, x11 -;; csel x12, x13, x14, hi -;; csdb -;; strb w3, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x11, [x0, #0x58] +;; c: ldr x14, [x0, #0x50] +;; 10: mov w12, w2 +;; 14: mov x13, #0 +;; 18: add x14, x14, w2, uxtw +;; 1c: add x14, x14, #1, lsl #12 +;; 20: cmp x12, x11 +;; 24: csel x12, x13, x14, hi +;; 28: csdb +;; 2c: strb w3, [x12] +;; 30: ldp x29, x30, [sp], #0x10 +;; 34: ret ;; -;; function u0:1: -;; block0: -;; ldr x11, [x0, #88] -;; ldr x14, [x0, #80] -;; mov w12, w2 -;; movz x13, #0 -;; add x14, x14, x2, UXTW -;; add x14, x14, #4096 -;; subs xzr, x12, x11 -;; csel x12, x13, x14, hi -;; csdb -;; ldrb w0, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x11, [x0, #0x58] +;; 4c: ldr x14, [x0, #0x50] +;; 50: mov w12, w2 +;; 54: mov x13, #0 +;; 58: add x14, x14, w2, uxtw +;; 5c: add x14, x14, #1, lsl #12 +;; 60: cmp x12, x11 +;; 64: csel x12, x13, x14, hi +;; 68: csdb +;; 6c: ldrb w0, [x12] +;; 70: ldp x29, x30, [sp], #0x10 +;; 74: ret diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat index 3349f3cef4fb..1ab7b124b44a 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,36 +18,36 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ldr x12, [x0, #88] -;; ldr x15, [x0, #80] -;; mov w13, w2 -;; movz x14, #0 -;; add x15, x15, x2, UXTW -;; movz x0, #65535, LSL #16 -;; add x15, x15, x0 -;; subs xzr, x13, x12 -;; csel x13, x14, x15, hi -;; csdb -;; strb w3, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x12, [x0, #0x58] +;; c: ldr x15, [x0, #0x50] +;; 10: mov w13, w2 +;; 14: mov x14, #0 +;; 18: add x15, x15, w2, uxtw +;; 1c: mov x0, #0xffff0000 +;; 20: add x15, x15, x0 +;; 24: cmp x13, x12 +;; 28: csel x13, x14, x15, hi +;; 2c: csdb +;; 30: strb w3, [x13] +;; 34: ldp x29, x30, [sp], #0x10 +;; 38: ret ;; -;; function u0:1: -;; block0: -;; ldr x12, [x0, #88] -;; ldr x15, [x0, #80] -;; mov w13, w2 -;; movz x14, #0 -;; add x15, x15, x2, UXTW -;; movz x0, #65535, LSL #16 -;; add x15, x15, x0 -;; subs xzr, x13, x12 -;; csel x13, x14, x15, hi -;; csdb -;; ldrb w0, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x12, [x0, #0x58] +;; 4c: ldr x15, [x0, #0x50] +;; 50: mov w13, w2 +;; 54: mov x14, #0 +;; 58: add x15, x15, w2, uxtw +;; 5c: mov x0, #0xffff0000 +;; 60: add x15, x15, x0 +;; 64: cmp x13, x12 +;; 68: csel x13, x14, x15, hi +;; 6c: csdb +;; 70: ldrb w0, [x13] +;; 74: ldp x29, x30, [sp], #0x10 +;; 78: ret diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat index f28462214978..78378f40744d 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat @@ -18,32 +18,28 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ldr x7, [x0, #88] -;; sub x7, x7, #4 -;; subs xzr, x2, x7 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; str w3, [x9, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x7, [x0, #0x58] +;; c: sub x7, x7, #4 +;; 10: cmp x2, x7 +;; 14: b.hi #0x28 +;; 18: ldr x9, [x0, #0x50] +;; 1c: str w3, [x9, x2] +;; 20: ldp x29, x30, [sp], #0x10 +;; 24: ret +;; 28: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x7, [x0, #88] -;; sub x7, x7, #4 -;; subs xzr, x2, x7 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; ldr w0, [x9, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x7, [x0, #0x58] +;; 4c: sub x7, x7, #4 +;; 50: cmp x2, x7 +;; 54: b.hi #0x68 +;; 58: ldr x9, [x0, #0x50] +;; 5c: ldr w0, [x9, x2] +;; 60: ldp x29, x30, [sp], #0x10 +;; 64: ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat index 1445a3aa5ee6..a38771775fbe 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,36 +18,32 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x9, [x0, #88] -;; movz x10, #4100 -;; sub x9, x9, x10 -;; subs xzr, x2, x9 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x11, [x0, #80] -;; add x11, x11, #4096 -;; str w3, [x11, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x9, [x0, #0x58] +;; c: mov x10, #0x1004 +;; 10: sub x9, x9, x10 +;; 14: cmp x2, x9 +;; 18: b.hi #0x30 +;; 1c: ldr x11, [x0, #0x50] +;; 20: add x11, x11, #1, lsl #12 +;; 24: str w3, [x11, x2] +;; 28: ldp x29, x30, [sp], #0x10 +;; 2c: ret +;; 30: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x9, [x0, #88] -;; movz x10, #4100 -;; sub x9, x9, x10 -;; subs xzr, x2, x9 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x11, [x0, #80] -;; add x10, x11, #4096 -;; ldr w0, [x10, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x9, [x0, #0x58] +;; 4c: mov x10, #0x1004 +;; 50: sub x9, x9, x10 +;; 54: cmp x2, x9 +;; 58: b.hi #0x70 +;; 5c: ldr x11, [x0, #0x50] +;; 60: add x10, x11, #1, lsl #12 +;; 64: ldr w0, [x10, x2] +;; 68: ldp x29, x30, [sp], #0x10 +;; 6c: ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat index 0c4d325b3eba..b7f4e91c8e11 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,40 +18,38 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; movn w10, #65531 -;; adds x10, x2, x10 -;; b.hs #trap=heap_oob -;; ldr x11, [x0, #88] -;; subs xzr, x10, x11 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x13, [x0, #80] -;; add x13, x13, x2 -;; movz x14, #65535, LSL #16 -;; str w3, [x13, x14] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w10, #-0xfffc +;; c: adds x10, x2, x10 +;; 10: b.hs #0x3c +;; 14: ldr x11, [x0, #0x58] +;; 18: cmp x10, x11 +;; 1c: b.hi #0x38 +;; 20: ldr x13, [x0, #0x50] +;; 24: add x13, x13, x2 +;; 28: mov x14, #0xffff0000 +;; 2c: str w3, [x13, x14] +;; 30: ldp x29, x30, [sp], #0x10 +;; 34: ret +;; 38: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 3c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; movn w10, #65531 -;; adds x10, x2, x10 -;; b.hs #trap=heap_oob -;; ldr x11, [x0, #88] -;; subs xzr, x10, x11 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x13, [x0, #80] -;; add x13, x13, x2 -;; movz x14, #65535, LSL #16 -;; ldr w0, [x13, x14] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov w10, #-0xfffc +;; 4c: adds x10, x2, x10 +;; 50: b.hs #0x7c +;; 54: ldr x11, [x0, #0x58] +;; 58: cmp x10, x11 +;; 5c: b.hi #0x78 +;; 60: ldr x13, [x0, #0x50] +;; 64: add x13, x13, x2 +;; 68: mov x14, #0xffff0000 +;; 6c: ldr w0, [x13, x14] +;; 70: ldp x29, x30, [sp], #0x10 +;; 74: ret +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat index 5e9c6648315b..110067ce6524 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat @@ -18,30 +18,26 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ldr x6, [x0, #88] -;; subs xzr, x2, x6 -;; b.hs label3 ; b label1 -;; block1: -;; ldr x8, [x0, #80] -;; strb w3, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x6, [x0, #0x58] +;; c: cmp x2, x6 +;; 10: b.hs #0x24 +;; 14: ldr x8, [x0, #0x50] +;; 18: strb w3, [x8, x2] +;; 1c: ldp x29, x30, [sp], #0x10 +;; 20: ret +;; 24: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x6, [x0, #88] -;; subs xzr, x2, x6 -;; b.hs label3 ; b label1 -;; block1: -;; ldr x8, [x0, #80] -;; ldrb w0, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x6, [x0, #0x58] +;; 4c: cmp x2, x6 +;; 50: b.hs #0x64 +;; 54: ldr x8, [x0, #0x50] +;; 58: ldrb w0, [x8, x2] +;; 5c: ldp x29, x30, [sp], #0x10 +;; 60: ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat index f49c6aa6a3eb..4b2e015ae64a 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,36 +18,32 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x9, [x0, #88] -;; movz x10, #4097 -;; sub x9, x9, x10 -;; subs xzr, x2, x9 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x11, [x0, #80] -;; add x11, x11, #4096 -;; strb w3, [x11, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x9, [x0, #0x58] +;; c: mov x10, #0x1001 +;; 10: sub x9, x9, x10 +;; 14: cmp x2, x9 +;; 18: b.hi #0x30 +;; 1c: ldr x11, [x0, #0x50] +;; 20: add x11, x11, #1, lsl #12 +;; 24: strb w3, [x11, x2] +;; 28: ldp x29, x30, [sp], #0x10 +;; 2c: ret +;; 30: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x9, [x0, #88] -;; movz x10, #4097 -;; sub x9, x9, x10 -;; subs xzr, x2, x9 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x11, [x0, #80] -;; add x10, x11, #4096 -;; ldrb w0, [x10, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x9, [x0, #0x58] +;; 4c: mov x10, #0x1001 +;; 50: sub x9, x9, x10 +;; 54: cmp x2, x9 +;; 58: b.hi #0x70 +;; 5c: ldr x11, [x0, #0x50] +;; 60: add x10, x11, #1, lsl #12 +;; 64: ldrb w0, [x10, x2] +;; 68: ldp x29, x30, [sp], #0x10 +;; 6c: ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat index 1dda47eac71d..f7018a15b9ae 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,40 +18,38 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; movn w10, #65534 -;; adds x10, x2, x10 -;; b.hs #trap=heap_oob -;; ldr x11, [x0, #88] -;; subs xzr, x10, x11 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x13, [x0, #80] -;; add x13, x13, x2 -;; movz x14, #65535, LSL #16 -;; strb w3, [x13, x14] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w10, #-0xffff +;; c: adds x10, x2, x10 +;; 10: b.hs #0x3c +;; 14: ldr x11, [x0, #0x58] +;; 18: cmp x10, x11 +;; 1c: b.hi #0x38 +;; 20: ldr x13, [x0, #0x50] +;; 24: add x13, x13, x2 +;; 28: mov x14, #0xffff0000 +;; 2c: strb w3, [x13, x14] +;; 30: ldp x29, x30, [sp], #0x10 +;; 34: ret +;; 38: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 3c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; movn w10, #65534 -;; adds x10, x2, x10 -;; b.hs #trap=heap_oob -;; ldr x11, [x0, #88] -;; subs xzr, x10, x11 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x13, [x0, #80] -;; add x13, x13, x2 -;; movz x14, #65535, LSL #16 -;; ldrb w0, [x13, x14] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov w10, #-0xffff +;; 4c: adds x10, x2, x10 +;; 50: b.hs #0x7c +;; 54: ldr x11, [x0, #0x58] +;; 58: cmp x10, x11 +;; 5c: b.hi #0x78 +;; 60: ldr x13, [x0, #0x50] +;; 64: add x13, x13, x2 +;; 68: mov x14, #0xffff0000 +;; 6c: ldrb w0, [x13, x14] +;; 70: ldp x29, x30, [sp], #0x10 +;; 74: ret +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat index 386d32b260a3..aefaea3bdfe8 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat @@ -18,32 +18,32 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ldr x11, [x0, #88] -;; ldr x10, [x0, #80] -;; sub x11, x11, #4 -;; movz x12, #0 -;; add x10, x10, x2 -;; subs xzr, x2, x11 -;; csel x11, x12, x10, hi -;; csdb -;; str w3, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x11, [x0, #0x58] +;; c: ldr x10, [x0, #0x50] +;; 10: sub x11, x11, #4 +;; 14: mov x12, #0 +;; 18: add x10, x10, x2 +;; 1c: cmp x2, x11 +;; 20: csel x11, x12, x10, hi +;; 24: csdb +;; 28: str w3, [x11] +;; 2c: ldp x29, x30, [sp], #0x10 +;; 30: ret ;; -;; function u0:1: -;; block0: -;; ldr x11, [x0, #88] -;; ldr x10, [x0, #80] -;; sub x11, x11, #4 -;; movz x12, #0 -;; add x10, x10, x2 -;; subs xzr, x2, x11 -;; csel x11, x12, x10, hi -;; csdb -;; ldr w0, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x11, [x0, #0x58] +;; 4c: ldr x10, [x0, #0x50] +;; 50: sub x11, x11, #4 +;; 54: mov x12, #0 +;; 58: add x10, x10, x2 +;; 5c: cmp x2, x11 +;; 60: csel x11, x12, x10, hi +;; 64: csdb +;; 68: ldr w0, [x11] +;; 6c: ldp x29, x30, [sp], #0x10 +;; 70: ret diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat index 988d1f29570b..99d66c512ecc 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,36 +18,36 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x13, [x0, #88] -;; ldr x12, [x0, #80] -;; movz x14, #4100 -;; sub x13, x13, x14 -;; movz x14, #0 -;; add x12, x12, x2 -;; add x12, x12, #4096 -;; subs xzr, x2, x13 -;; csel x13, x14, x12, hi -;; csdb -;; str w3, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x13, [x0, #0x58] +;; c: ldr x12, [x0, #0x50] +;; 10: mov x14, #0x1004 +;; 14: sub x13, x13, x14 +;; 18: mov x14, #0 +;; 1c: add x12, x12, x2 +;; 20: add x12, x12, #1, lsl #12 +;; 24: cmp x2, x13 +;; 28: csel x13, x14, x12, hi +;; 2c: csdb +;; 30: str w3, [x13] +;; 34: ldp x29, x30, [sp], #0x10 +;; 38: ret ;; -;; function u0:1: -;; block0: -;; ldr x13, [x0, #88] -;; ldr x12, [x0, #80] -;; movz x14, #4100 -;; sub x13, x13, x14 -;; movz x14, #0 -;; add x12, x12, x2 -;; add x12, x12, #4096 -;; subs xzr, x2, x13 -;; csel x13, x14, x12, hi -;; csdb -;; ldr w0, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x13, [x0, #0x58] +;; 4c: ldr x12, [x0, #0x50] +;; 50: mov x14, #0x1004 +;; 54: sub x13, x13, x14 +;; 58: mov x14, #0 +;; 5c: add x12, x12, x2 +;; 60: add x12, x12, #1, lsl #12 +;; 64: cmp x2, x13 +;; 68: csel x13, x14, x12, hi +;; 6c: csdb +;; 70: ldr w0, [x13] +;; 74: ldp x29, x30, [sp], #0x10 +;; 78: ret diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat index c5ff8d6b597b..eaac6394ece1 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,40 +18,42 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; movn w13, #65531 -;; adds x13, x2, x13 -;; b.hs #trap=heap_oob -;; ldr x14, [x0, #88] -;; ldr x0, [x0, #80] -;; movz x15, #0 -;; add x0, x0, x2 -;; movz x1, #65535, LSL #16 -;; add x0, x0, x1 -;; subs xzr, x13, x14 -;; csel x15, x15, x0, hi -;; csdb -;; str w3, [x15] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w13, #-0xfffc +;; c: adds x13, x2, x13 +;; 10: b.hs #0x44 +;; 14: ldr x14, [x0, #0x58] +;; 18: ldr x0, [x0, #0x50] +;; 1c: mov x15, #0 +;; 20: add x0, x0, x2 +;; 24: mov x1, #0xffff0000 +;; 28: add x0, x0, x1 +;; 2c: cmp x13, x14 +;; 30: csel x15, x15, x0, hi +;; 34: csdb +;; 38: str w3, [x15] +;; 3c: ldp x29, x30, [sp], #0x10 +;; 40: ret +;; 44: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; movn w13, #65531 -;; adds x13, x2, x13 -;; b.hs #trap=heap_oob -;; ldr x14, [x0, #88] -;; ldr x0, [x0, #80] -;; movz x15, #0 -;; add x0, x0, x2 -;; movz x1, #65535, LSL #16 -;; add x0, x0, x1 -;; subs xzr, x13, x14 -;; csel x15, x15, x0, hi -;; csdb -;; ldr w0, [x15] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 60: stp x29, x30, [sp, #-0x10]! +;; 64: mov x29, sp +;; 68: mov w13, #-0xfffc +;; 6c: adds x13, x2, x13 +;; 70: b.hs #0xa4 +;; 74: ldr x14, [x0, #0x58] +;; 78: ldr x0, [x0, #0x50] +;; 7c: mov x15, #0 +;; 80: add x0, x0, x2 +;; 84: mov x1, #0xffff0000 +;; 88: add x0, x0, x1 +;; 8c: cmp x13, x14 +;; 90: csel x15, x15, x0, hi +;; 94: csdb +;; 98: ldr w0, [x15] +;; 9c: ldp x29, x30, [sp], #0x10 +;; a0: ret +;; a4: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat index 7b61411822fe..58545f941177 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat @@ -18,30 +18,30 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ldr x9, [x0, #88] -;; ldr x11, [x0, #80] -;; movz x10, #0 -;; add x11, x11, x2 -;; subs xzr, x2, x9 -;; csel x10, x10, x11, hs -;; csdb -;; strb w3, [x10] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x9, [x0, #0x58] +;; c: ldr x11, [x0, #0x50] +;; 10: mov x10, #0 +;; 14: add x11, x11, x2 +;; 18: cmp x2, x9 +;; 1c: csel x10, x10, x11, hs +;; 20: csdb +;; 24: strb w3, [x10] +;; 28: ldp x29, x30, [sp], #0x10 +;; 2c: ret ;; -;; function u0:1: -;; block0: -;; ldr x9, [x0, #88] -;; ldr x11, [x0, #80] -;; movz x10, #0 -;; add x11, x11, x2 -;; subs xzr, x2, x9 -;; csel x10, x10, x11, hs -;; csdb -;; ldrb w0, [x10] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x9, [x0, #0x58] +;; 4c: ldr x11, [x0, #0x50] +;; 50: mov x10, #0 +;; 54: add x11, x11, x2 +;; 58: cmp x2, x9 +;; 5c: csel x10, x10, x11, hs +;; 60: csdb +;; 64: ldrb w0, [x10] +;; 68: ldp x29, x30, [sp], #0x10 +;; 6c: ret diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat index fce3e0089ad8..597e2af26dfa 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,36 +18,36 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x13, [x0, #88] -;; ldr x12, [x0, #80] -;; movz x14, #4097 -;; sub x13, x13, x14 -;; movz x14, #0 -;; add x12, x12, x2 -;; add x12, x12, #4096 -;; subs xzr, x2, x13 -;; csel x13, x14, x12, hi -;; csdb -;; strb w3, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x13, [x0, #0x58] +;; c: ldr x12, [x0, #0x50] +;; 10: mov x14, #0x1001 +;; 14: sub x13, x13, x14 +;; 18: mov x14, #0 +;; 1c: add x12, x12, x2 +;; 20: add x12, x12, #1, lsl #12 +;; 24: cmp x2, x13 +;; 28: csel x13, x14, x12, hi +;; 2c: csdb +;; 30: strb w3, [x13] +;; 34: ldp x29, x30, [sp], #0x10 +;; 38: ret ;; -;; function u0:1: -;; block0: -;; ldr x13, [x0, #88] -;; ldr x12, [x0, #80] -;; movz x14, #4097 -;; sub x13, x13, x14 -;; movz x14, #0 -;; add x12, x12, x2 -;; add x12, x12, #4096 -;; subs xzr, x2, x13 -;; csel x13, x14, x12, hi -;; csdb -;; ldrb w0, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x13, [x0, #0x58] +;; 4c: ldr x12, [x0, #0x50] +;; 50: mov x14, #0x1001 +;; 54: sub x13, x13, x14 +;; 58: mov x14, #0 +;; 5c: add x12, x12, x2 +;; 60: add x12, x12, #1, lsl #12 +;; 64: cmp x2, x13 +;; 68: csel x13, x14, x12, hi +;; 6c: csdb +;; 70: ldrb w0, [x13] +;; 74: ldp x29, x30, [sp], #0x10 +;; 78: ret diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat index 54380c798432..d74673e73b78 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,40 +18,42 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; movn w13, #65534 -;; adds x13, x2, x13 -;; b.hs #trap=heap_oob -;; ldr x14, [x0, #88] -;; ldr x0, [x0, #80] -;; movz x15, #0 -;; add x0, x0, x2 -;; movz x1, #65535, LSL #16 -;; add x0, x0, x1 -;; subs xzr, x13, x14 -;; csel x15, x15, x0, hi -;; csdb -;; strb w3, [x15] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w13, #-0xffff +;; c: adds x13, x2, x13 +;; 10: b.hs #0x44 +;; 14: ldr x14, [x0, #0x58] +;; 18: ldr x0, [x0, #0x50] +;; 1c: mov x15, #0 +;; 20: add x0, x0, x2 +;; 24: mov x1, #0xffff0000 +;; 28: add x0, x0, x1 +;; 2c: cmp x13, x14 +;; 30: csel x15, x15, x0, hi +;; 34: csdb +;; 38: strb w3, [x15] +;; 3c: ldp x29, x30, [sp], #0x10 +;; 40: ret +;; 44: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; movn w13, #65534 -;; adds x13, x2, x13 -;; b.hs #trap=heap_oob -;; ldr x14, [x0, #88] -;; ldr x0, [x0, #80] -;; movz x15, #0 -;; add x0, x0, x2 -;; movz x1, #65535, LSL #16 -;; add x0, x0, x1 -;; subs xzr, x13, x14 -;; csel x15, x15, x0, hi -;; csdb -;; ldrb w0, [x15] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 60: stp x29, x30, [sp, #-0x10]! +;; 64: mov x29, sp +;; 68: mov w13, #-0xffff +;; 6c: adds x13, x2, x13 +;; 70: b.hs #0xa4 +;; 74: ldr x14, [x0, #0x58] +;; 78: ldr x0, [x0, #0x50] +;; 7c: mov x15, #0 +;; 80: add x0, x0, x2 +;; 84: mov x1, #0xffff0000 +;; 88: add x0, x0, x1 +;; 8c: cmp x13, x14 +;; 90: csel x15, x15, x0, hi +;; 94: csdb +;; 98: ldrb w0, [x15] +;; 9c: ldp x29, x30, [sp], #0x10 +;; a0: ret +;; a4: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat index e2046fb6aecc..82f32fab6033 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat @@ -18,30 +18,26 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ldr x6, [x0, #88] -;; subs xzr, x2, x6 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x8, [x0, #80] -;; str w3, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x6, [x0, #0x58] +;; c: cmp x2, x6 +;; 10: b.hi #0x24 +;; 14: ldr x8, [x0, #0x50] +;; 18: str w3, [x8, x2] +;; 1c: ldp x29, x30, [sp], #0x10 +;; 20: ret +;; 24: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x6, [x0, #88] -;; subs xzr, x2, x6 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x8, [x0, #80] -;; ldr w0, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x6, [x0, #0x58] +;; 4c: cmp x2, x6 +;; 50: b.hi #0x64 +;; 54: ldr x8, [x0, #0x50] +;; 58: ldr w0, [x8, x2] +;; 5c: ldp x29, x30, [sp], #0x10 +;; 60: ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat index 55098d76d731..00924685206f 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,32 +18,28 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x7, [x0, #88] -;; subs xzr, x2, x7 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; add x9, x9, #4096 -;; str w3, [x9, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x7, [x0, #0x58] +;; c: cmp x2, x7 +;; 10: b.hi #0x28 +;; 14: ldr x9, [x0, #0x50] +;; 18: add x9, x9, #1, lsl #12 +;; 1c: str w3, [x9, x2] +;; 20: ldp x29, x30, [sp], #0x10 +;; 24: ret +;; 28: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x7, [x0, #88] -;; subs xzr, x2, x7 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; add x8, x9, #4096 -;; ldr w0, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x7, [x0, #0x58] +;; 4c: cmp x2, x7 +;; 50: b.hi #0x68 +;; 54: ldr x9, [x0, #0x50] +;; 58: add x8, x9, #1, lsl #12 +;; 5c: ldr w0, [x8, x2] +;; 60: ldp x29, x30, [sp], #0x10 +;; 64: ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat index ecb774f0f88a..03b243f39f90 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ldr x8, [x0, #88] -;; subs xzr, x2, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; movz x11, #65535, LSL #16 -;; str w3, [x10, x11] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x8, [x0, #0x58] +;; c: cmp x2, x8 +;; 10: b.hi #0x2c +;; 14: ldr x10, [x0, #0x50] +;; 18: add x10, x10, x2 +;; 1c: mov x11, #0xffff0000 +;; 20: str w3, [x10, x11] +;; 24: ldp x29, x30, [sp], #0x10 +;; 28: ret +;; 2c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x8, [x0, #88] -;; subs xzr, x2, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; movz x11, #65535, LSL #16 -;; ldr w0, [x10, x11] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x8, [x0, #0x58] +;; 4c: cmp x2, x8 +;; 50: b.hi #0x6c +;; 54: ldr x10, [x0, #0x50] +;; 58: add x10, x10, x2 +;; 5c: mov x11, #0xffff0000 +;; 60: ldr w0, [x10, x11] +;; 64: ldp x29, x30, [sp], #0x10 +;; 68: ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat index 31b18a141370..a3cb9bbc868a 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat @@ -18,30 +18,26 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ldr x6, [x0, #88] -;; subs xzr, x2, x6 -;; b.hs label3 ; b label1 -;; block1: -;; ldr x8, [x0, #80] -;; strb w3, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x6, [x0, #0x58] +;; c: cmp x2, x6 +;; 10: b.hs #0x24 +;; 14: ldr x8, [x0, #0x50] +;; 18: strb w3, [x8, x2] +;; 1c: ldp x29, x30, [sp], #0x10 +;; 20: ret +;; 24: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x6, [x0, #88] -;; subs xzr, x2, x6 -;; b.hs label3 ; b label1 -;; block1: -;; ldr x8, [x0, #80] -;; ldrb w0, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x6, [x0, #0x58] +;; 4c: cmp x2, x6 +;; 50: b.hs #0x64 +;; 54: ldr x8, [x0, #0x50] +;; 58: ldrb w0, [x8, x2] +;; 5c: ldp x29, x30, [sp], #0x10 +;; 60: ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat index edf652498a2b..fd5c8c8cd502 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,32 +18,28 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x7, [x0, #88] -;; subs xzr, x2, x7 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; add x9, x9, #4096 -;; strb w3, [x9, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x7, [x0, #0x58] +;; c: cmp x2, x7 +;; 10: b.hi #0x28 +;; 14: ldr x9, [x0, #0x50] +;; 18: add x9, x9, #1, lsl #12 +;; 1c: strb w3, [x9, x2] +;; 20: ldp x29, x30, [sp], #0x10 +;; 24: ret +;; 28: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x7, [x0, #88] -;; subs xzr, x2, x7 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; add x8, x9, #4096 -;; ldrb w0, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x7, [x0, #0x58] +;; 4c: cmp x2, x7 +;; 50: b.hi #0x68 +;; 54: ldr x9, [x0, #0x50] +;; 58: add x8, x9, #1, lsl #12 +;; 5c: ldrb w0, [x8, x2] +;; 60: ldp x29, x30, [sp], #0x10 +;; 64: ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat index c67cabb6dbb6..66ff4f22f562 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ldr x8, [x0, #88] -;; subs xzr, x2, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; movz x11, #65535, LSL #16 -;; strb w3, [x10, x11] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x8, [x0, #0x58] +;; c: cmp x2, x8 +;; 10: b.hi #0x2c +;; 14: ldr x10, [x0, #0x50] +;; 18: add x10, x10, x2 +;; 1c: mov x11, #0xffff0000 +;; 20: strb w3, [x10, x11] +;; 24: ldp x29, x30, [sp], #0x10 +;; 28: ret +;; 2c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ldr x8, [x0, #88] -;; subs xzr, x2, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; movz x11, #65535, LSL #16 -;; ldrb w0, [x10, x11] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x8, [x0, #0x58] +;; 4c: cmp x2, x8 +;; 50: b.hi #0x6c +;; 54: ldr x10, [x0, #0x50] +;; 58: add x10, x10, x2 +;; 5c: mov x11, #0xffff0000 +;; 60: ldrb w0, [x10, x11] +;; 64: ldp x29, x30, [sp], #0x10 +;; 68: ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat index 242e1b5752d2..1892d16042be 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat @@ -18,30 +18,30 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ldr x9, [x0, #88] -;; ldr x11, [x0, #80] -;; movz x10, #0 -;; add x11, x11, x2 -;; subs xzr, x2, x9 -;; csel x10, x10, x11, hi -;; csdb -;; str w3, [x10] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x9, [x0, #0x58] +;; c: ldr x11, [x0, #0x50] +;; 10: mov x10, #0 +;; 14: add x11, x11, x2 +;; 18: cmp x2, x9 +;; 1c: csel x10, x10, x11, hi +;; 20: csdb +;; 24: str w3, [x10] +;; 28: ldp x29, x30, [sp], #0x10 +;; 2c: ret ;; -;; function u0:1: -;; block0: -;; ldr x9, [x0, #88] -;; ldr x11, [x0, #80] -;; movz x10, #0 -;; add x11, x11, x2 -;; subs xzr, x2, x9 -;; csel x10, x10, x11, hi -;; csdb -;; ldr w0, [x10] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x9, [x0, #0x58] +;; 4c: ldr x11, [x0, #0x50] +;; 50: mov x10, #0 +;; 54: add x11, x11, x2 +;; 58: cmp x2, x9 +;; 5c: csel x10, x10, x11, hi +;; 60: csdb +;; 64: ldr w0, [x10] +;; 68: ldp x29, x30, [sp], #0x10 +;; 6c: ret diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat index 1b972f5b0972..69e43602e8ee 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,32 +18,32 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x10, [x0, #88] -;; ldr x12, [x0, #80] -;; movz x11, #0 -;; add x12, x12, x2 -;; add x12, x12, #4096 -;; subs xzr, x2, x10 -;; csel x11, x11, x12, hi -;; csdb -;; str w3, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x10, [x0, #0x58] +;; c: ldr x12, [x0, #0x50] +;; 10: mov x11, #0 +;; 14: add x12, x12, x2 +;; 18: add x12, x12, #1, lsl #12 +;; 1c: cmp x2, x10 +;; 20: csel x11, x11, x12, hi +;; 24: csdb +;; 28: str w3, [x11] +;; 2c: ldp x29, x30, [sp], #0x10 +;; 30: ret ;; -;; function u0:1: -;; block0: -;; ldr x10, [x0, #88] -;; ldr x12, [x0, #80] -;; movz x11, #0 -;; add x12, x12, x2 -;; add x12, x12, #4096 -;; subs xzr, x2, x10 -;; csel x11, x11, x12, hi -;; csdb -;; ldr w0, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x10, [x0, #0x58] +;; 4c: ldr x12, [x0, #0x50] +;; 50: mov x11, #0 +;; 54: add x12, x12, x2 +;; 58: add x12, x12, #1, lsl #12 +;; 5c: cmp x2, x10 +;; 60: csel x11, x11, x12, hi +;; 64: csdb +;; 68: ldr w0, [x11] +;; 6c: ldp x29, x30, [sp], #0x10 +;; 70: ret diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 4655e470cb3b..912fc3653031 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,34 +18,34 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ldr x11, [x0, #88] -;; ldr x13, [x0, #80] -;; movz x12, #0 -;; add x13, x13, x2 -;; movz x14, #65535, LSL #16 -;; add x13, x13, x14 -;; subs xzr, x2, x11 -;; csel x12, x12, x13, hi -;; csdb -;; str w3, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x11, [x0, #0x58] +;; c: ldr x13, [x0, #0x50] +;; 10: mov x12, #0 +;; 14: add x13, x13, x2 +;; 18: mov x14, #0xffff0000 +;; 1c: add x13, x13, x14 +;; 20: cmp x2, x11 +;; 24: csel x12, x12, x13, hi +;; 28: csdb +;; 2c: str w3, [x12] +;; 30: ldp x29, x30, [sp], #0x10 +;; 34: ret ;; -;; function u0:1: -;; block0: -;; ldr x11, [x0, #88] -;; ldr x13, [x0, #80] -;; movz x12, #0 -;; add x13, x13, x2 -;; movz x14, #65535, LSL #16 -;; add x13, x13, x14 -;; subs xzr, x2, x11 -;; csel x12, x12, x13, hi -;; csdb -;; ldr w0, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x11, [x0, #0x58] +;; 4c: ldr x13, [x0, #0x50] +;; 50: mov x12, #0 +;; 54: add x13, x13, x2 +;; 58: mov x14, #0xffff0000 +;; 5c: add x13, x13, x14 +;; 60: cmp x2, x11 +;; 64: csel x12, x12, x13, hi +;; 68: csdb +;; 6c: ldr w0, [x12] +;; 70: ldp x29, x30, [sp], #0x10 +;; 74: ret diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat index c427068530d0..f61ff7dc3844 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat @@ -18,30 +18,30 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ldr x9, [x0, #88] -;; ldr x11, [x0, #80] -;; movz x10, #0 -;; add x11, x11, x2 -;; subs xzr, x2, x9 -;; csel x10, x10, x11, hs -;; csdb -;; strb w3, [x10] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x9, [x0, #0x58] +;; c: ldr x11, [x0, #0x50] +;; 10: mov x10, #0 +;; 14: add x11, x11, x2 +;; 18: cmp x2, x9 +;; 1c: csel x10, x10, x11, hs +;; 20: csdb +;; 24: strb w3, [x10] +;; 28: ldp x29, x30, [sp], #0x10 +;; 2c: ret ;; -;; function u0:1: -;; block0: -;; ldr x9, [x0, #88] -;; ldr x11, [x0, #80] -;; movz x10, #0 -;; add x11, x11, x2 -;; subs xzr, x2, x9 -;; csel x10, x10, x11, hs -;; csdb -;; ldrb w0, [x10] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x9, [x0, #0x58] +;; 4c: ldr x11, [x0, #0x50] +;; 50: mov x10, #0 +;; 54: add x11, x11, x2 +;; 58: cmp x2, x9 +;; 5c: csel x10, x10, x11, hs +;; 60: csdb +;; 64: ldrb w0, [x10] +;; 68: ldp x29, x30, [sp], #0x10 +;; 6c: ret diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat index 5e4d1d865e10..b20192afb54f 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,32 +18,32 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x10, [x0, #88] -;; ldr x12, [x0, #80] -;; movz x11, #0 -;; add x12, x12, x2 -;; add x12, x12, #4096 -;; subs xzr, x2, x10 -;; csel x11, x11, x12, hi -;; csdb -;; strb w3, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x10, [x0, #0x58] +;; c: ldr x12, [x0, #0x50] +;; 10: mov x11, #0 +;; 14: add x12, x12, x2 +;; 18: add x12, x12, #1, lsl #12 +;; 1c: cmp x2, x10 +;; 20: csel x11, x11, x12, hi +;; 24: csdb +;; 28: strb w3, [x11] +;; 2c: ldp x29, x30, [sp], #0x10 +;; 30: ret ;; -;; function u0:1: -;; block0: -;; ldr x10, [x0, #88] -;; ldr x12, [x0, #80] -;; movz x11, #0 -;; add x12, x12, x2 -;; add x12, x12, #4096 -;; subs xzr, x2, x10 -;; csel x11, x11, x12, hi -;; csdb -;; ldrb w0, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x10, [x0, #0x58] +;; 4c: ldr x12, [x0, #0x50] +;; 50: mov x11, #0 +;; 54: add x12, x12, x2 +;; 58: add x12, x12, #1, lsl #12 +;; 5c: cmp x2, x10 +;; 60: csel x11, x11, x12, hi +;; 64: csdb +;; 68: ldrb w0, [x11] +;; 6c: ldp x29, x30, [sp], #0x10 +;; 70: ret diff --git a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat index c03b9cdd1807..edea036a1fe0 100644 --- a/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,34 +18,34 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ldr x11, [x0, #88] -;; ldr x13, [x0, #80] -;; movz x12, #0 -;; add x13, x13, x2 -;; movz x14, #65535, LSL #16 -;; add x13, x13, x14 -;; subs xzr, x2, x11 -;; csel x12, x12, x13, hi -;; csdb -;; strb w3, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x11, [x0, #0x58] +;; c: ldr x13, [x0, #0x50] +;; 10: mov x12, #0 +;; 14: add x13, x13, x2 +;; 18: mov x14, #0xffff0000 +;; 1c: add x13, x13, x14 +;; 20: cmp x2, x11 +;; 24: csel x12, x12, x13, hi +;; 28: csdb +;; 2c: strb w3, [x12] +;; 30: ldp x29, x30, [sp], #0x10 +;; 34: ret ;; -;; function u0:1: -;; block0: -;; ldr x11, [x0, #88] -;; ldr x13, [x0, #80] -;; movz x12, #0 -;; add x13, x13, x2 -;; movz x14, #65535, LSL #16 -;; add x13, x13, x14 -;; subs xzr, x2, x11 -;; csel x12, x12, x13, hi -;; csdb -;; ldrb w0, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: ldr x11, [x0, #0x58] +;; 4c: ldr x13, [x0, #0x50] +;; 50: mov x12, #0 +;; 54: add x13, x13, x2 +;; 58: mov x14, #0xffff0000 +;; 5c: add x13, x13, x14 +;; 60: cmp x2, x11 +;; 64: csel x12, x12, x13, hi +;; 68: csdb +;; 6c: ldrb w0, [x12] +;; 70: ldp x29, x30, [sp], #0x10 +;; 74: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat index bc5319e51c5d..ebae83e42b9f 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat @@ -18,32 +18,28 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; mov w7, w2 -;; orr x8, xzr, #4294967292 -;; subs xzr, x7, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; str w3, [x9, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w7, w2 +;; c: orr x8, xzr, #0xfffffffc +;; 10: cmp x7, x8 +;; 14: b.hi #0x28 +;; 18: ldr x9, [x0, #0x50] +;; 1c: str w3, [x9, w2, uxtw] +;; 20: ldp x29, x30, [sp], #0x10 +;; 24: ret +;; 28: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; mov w7, w2 -;; orr x8, xzr, #4294967292 -;; subs xzr, x7, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; ldr w0, [x9, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov w7, w2 +;; 4c: orr x8, xzr, #0xfffffffc +;; 50: cmp x7, x8 +;; 54: b.hi #0x68 +;; 58: ldr x9, [x0, #0x50] +;; 5c: ldr w0, [x9, w2, uxtw] +;; 60: ldp x29, x30, [sp], #0x10 +;; 64: ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat index a347f0c7511a..6c0be3b7430b 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; mov w8, w2 -;; movn w9, #4099 -;; subs xzr, x8, x9 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x10, x10, #4096 -;; str w3, [x10, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w8, w2 +;; c: mov w9, #-0x1004 +;; 10: cmp x8, x9 +;; 14: b.hi #0x2c +;; 18: ldr x10, [x0, #0x50] +;; 1c: add x10, x10, #1, lsl #12 +;; 20: str w3, [x10, w2, uxtw] +;; 24: ldp x29, x30, [sp], #0x10 +;; 28: ret +;; 2c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; mov w8, w2 -;; movn w9, #4099 -;; subs xzr, x8, x9 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x9, x10, #4096 -;; ldr w0, [x9, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov w8, w2 +;; 4c: mov w9, #-0x1004 +;; 50: cmp x8, x9 +;; 54: b.hi #0x6c +;; 58: ldr x10, [x0, #0x50] +;; 5c: add x9, x10, #1, lsl #12 +;; 60: ldr w0, [x9, w2, uxtw] +;; 64: ldp x29, x30, [sp], #0x10 +;; 68: ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat index 11f3ddef532e..fb5294ccc586 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,36 +18,32 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; mov w9, w2 -;; movz x10, #65532 -;; subs xzr, x9, x10 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x11, [x0, #80] -;; add x11, x11, x2, UXTW -;; movz x12, #65535, LSL #16 -;; str w3, [x11, x12] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w9, w2 +;; c: mov x10, #0xfffc +;; 10: cmp x9, x10 +;; 14: b.hi #0x30 +;; 18: ldr x11, [x0, #0x50] +;; 1c: add x11, x11, w2, uxtw +;; 20: mov x12, #0xffff0000 +;; 24: str w3, [x11, x12] +;; 28: ldp x29, x30, [sp], #0x10 +;; 2c: ret +;; 30: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; mov w9, w2 -;; movz x10, #65532 -;; subs xzr, x9, x10 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x11, [x0, #80] -;; add x11, x11, x2, UXTW -;; movz x12, #65535, LSL #16 -;; ldr w0, [x11, x12] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov w9, w2 +;; 4c: mov x10, #0xfffc +;; 50: cmp x9, x10 +;; 54: b.hi #0x70 +;; 58: ldr x11, [x0, #0x50] +;; 5c: add x11, x11, w2, uxtw +;; 60: mov x12, #0xffff0000 +;; 64: ldr w0, [x11, x12] +;; 68: ldp x29, x30, [sp], #0x10 +;; 6c: ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat index c094e411cd25..9978ba51ebfd 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat @@ -18,18 +18,18 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ldr x5, [x0, #80] -;; strb w3, [x5, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x5, [x0, #0x50] +;; c: strb w3, [x5, w2, uxtw] +;; 10: ldp x29, x30, [sp], #0x10 +;; 14: ret ;; -;; function u0:1: -;; block0: -;; ldr x5, [x0, #80] -;; ldrb w0, [x5, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 20: stp x29, x30, [sp, #-0x10]! +;; 24: mov x29, sp +;; 28: ldr x5, [x0, #0x50] +;; 2c: ldrb w0, [x5, w2, uxtw] +;; 30: ldp x29, x30, [sp], #0x10 +;; 34: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat index bcb7fb2094f4..f23c75f7eccb 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; mov w8, w2 -;; movn w9, #4096 -;; subs xzr, x8, x9 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x10, x10, #4096 -;; strb w3, [x10, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w8, w2 +;; c: mov w9, #-0x1001 +;; 10: cmp x8, x9 +;; 14: b.hi #0x2c +;; 18: ldr x10, [x0, #0x50] +;; 1c: add x10, x10, #1, lsl #12 +;; 20: strb w3, [x10, w2, uxtw] +;; 24: ldp x29, x30, [sp], #0x10 +;; 28: ret +;; 2c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; mov w8, w2 -;; movn w9, #4096 -;; subs xzr, x8, x9 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x9, x10, #4096 -;; ldrb w0, [x9, w2, UXTW] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov w8, w2 +;; 4c: mov w9, #-0x1001 +;; 50: cmp x8, x9 +;; 54: b.hi #0x6c +;; 58: ldr x10, [x0, #0x50] +;; 5c: add x9, x10, #1, lsl #12 +;; 60: ldrb w0, [x9, w2, uxtw] +;; 64: ldp x29, x30, [sp], #0x10 +;; 68: ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat index 70ae1214a862..536e3302e070 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,36 +18,32 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; mov w9, w2 -;; movz x10, #65535 -;; subs xzr, x9, x10 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x11, [x0, #80] -;; add x11, x11, x2, UXTW -;; movz x12, #65535, LSL #16 -;; strb w3, [x11, x12] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w9, w2 +;; c: mov x10, #0xffff +;; 10: cmp x9, x10 +;; 14: b.hi #0x30 +;; 18: ldr x11, [x0, #0x50] +;; 1c: add x11, x11, w2, uxtw +;; 20: mov x12, #0xffff0000 +;; 24: strb w3, [x11, x12] +;; 28: ldp x29, x30, [sp], #0x10 +;; 2c: ret +;; 30: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; mov w9, w2 -;; movz x10, #65535 -;; subs xzr, x9, x10 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x11, [x0, #80] -;; add x11, x11, x2, UXTW -;; movz x12, #65535, LSL #16 -;; ldrb w0, [x11, x12] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov w9, w2 +;; 4c: mov x10, #0xffff +;; 50: cmp x9, x10 +;; 54: b.hi #0x70 +;; 58: ldr x11, [x0, #0x50] +;; 5c: add x11, x11, w2, uxtw +;; 60: mov x12, #0xffff0000 +;; 64: ldrb w0, [x11, x12] +;; 68: ldp x29, x30, [sp], #0x10 +;; 6c: ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat index 78e927053739..ef7129189e38 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat @@ -18,32 +18,32 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; mov w10, w2 -;; movz x11, #0 -;; ldr x12, [x0, #80] -;; add x12, x12, x2, UXTW -;; orr x9, xzr, #4294967292 -;; subs xzr, x10, x9 -;; csel x12, x11, x12, hi -;; csdb -;; str w3, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w10, w2 +;; c: mov x11, #0 +;; 10: ldr x12, [x0, #0x50] +;; 14: add x12, x12, w2, uxtw +;; 18: orr x9, xzr, #0xfffffffc +;; 1c: cmp x10, x9 +;; 20: csel x12, x11, x12, hi +;; 24: csdb +;; 28: str w3, [x12] +;; 2c: ldp x29, x30, [sp], #0x10 +;; 30: ret ;; -;; function u0:1: -;; block0: -;; mov w10, w2 -;; movz x11, #0 -;; ldr x12, [x0, #80] -;; add x12, x12, x2, UXTW -;; orr x9, xzr, #4294967292 -;; subs xzr, x10, x9 -;; csel x12, x11, x12, hi -;; csdb -;; ldr w0, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov w10, w2 +;; 4c: mov x11, #0 +;; 50: ldr x12, [x0, #0x50] +;; 54: add x12, x12, w2, uxtw +;; 58: orr x9, xzr, #0xfffffffc +;; 5c: cmp x10, x9 +;; 60: csel x12, x11, x12, hi +;; 64: csdb +;; 68: ldr w0, [x12] +;; 6c: ldp x29, x30, [sp], #0x10 +;; 70: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat index b74530f52acc..2fcc17951fd2 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,34 +18,34 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; mov w11, w2 -;; movz x12, #0 -;; ldr x13, [x0, #80] -;; add x13, x13, x2, UXTW -;; add x13, x13, #4096 -;; movn w10, #4099 -;; subs xzr, x11, x10 -;; csel x13, x12, x13, hi -;; csdb -;; str w3, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w11, w2 +;; c: mov x12, #0 +;; 10: ldr x13, [x0, #0x50] +;; 14: add x13, x13, w2, uxtw +;; 18: add x13, x13, #1, lsl #12 +;; 1c: mov w10, #-0x1004 +;; 20: cmp x11, x10 +;; 24: csel x13, x12, x13, hi +;; 28: csdb +;; 2c: str w3, [x13] +;; 30: ldp x29, x30, [sp], #0x10 +;; 34: ret ;; -;; function u0:1: -;; block0: -;; mov w11, w2 -;; movz x12, #0 -;; ldr x13, [x0, #80] -;; add x13, x13, x2, UXTW -;; add x13, x13, #4096 -;; movn w10, #4099 -;; subs xzr, x11, x10 -;; csel x13, x12, x13, hi -;; csdb -;; ldr w0, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov w11, w2 +;; 4c: mov x12, #0 +;; 50: ldr x13, [x0, #0x50] +;; 54: add x13, x13, w2, uxtw +;; 58: add x13, x13, #1, lsl #12 +;; 5c: mov w10, #-0x1004 +;; 60: cmp x11, x10 +;; 64: csel x13, x12, x13, hi +;; 68: csdb +;; 6c: ldr w0, [x13] +;; 70: ldp x29, x30, [sp], #0x10 +;; 74: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat index d877bfb14d68..64f52a8ef3ec 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,36 +18,36 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; mov w12, w2 -;; movz x13, #0 -;; ldr x14, [x0, #80] -;; add x14, x14, x2, UXTW -;; movz x15, #65535, LSL #16 -;; add x14, x14, x15 -;; movz x11, #65532 -;; subs xzr, x12, x11 -;; csel x14, x13, x14, hi -;; csdb -;; str w3, [x14] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w12, w2 +;; c: mov x13, #0 +;; 10: ldr x14, [x0, #0x50] +;; 14: add x14, x14, w2, uxtw +;; 18: mov x15, #0xffff0000 +;; 1c: add x14, x14, x15 +;; 20: mov x11, #0xfffc +;; 24: cmp x12, x11 +;; 28: csel x14, x13, x14, hi +;; 2c: csdb +;; 30: str w3, [x14] +;; 34: ldp x29, x30, [sp], #0x10 +;; 38: ret ;; -;; function u0:1: -;; block0: -;; mov w12, w2 -;; movz x13, #0 -;; ldr x14, [x0, #80] -;; add x14, x14, x2, UXTW -;; movz x15, #65535, LSL #16 -;; add x14, x14, x15 -;; movz x11, #65532 -;; subs xzr, x12, x11 -;; csel x14, x13, x14, hi -;; csdb -;; ldr w0, [x14] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov w12, w2 +;; 4c: mov x13, #0 +;; 50: ldr x14, [x0, #0x50] +;; 54: add x14, x14, w2, uxtw +;; 58: mov x15, #0xffff0000 +;; 5c: add x14, x14, x15 +;; 60: mov x11, #0xfffc +;; 64: cmp x12, x11 +;; 68: csel x14, x13, x14, hi +;; 6c: csdb +;; 70: ldr w0, [x14] +;; 74: ldp x29, x30, [sp], #0x10 +;; 78: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat index 18175fce8051..521f8578fc24 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat @@ -18,18 +18,18 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ldr x5, [x0, #80] -;; strb w3, [x5, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x5, [x0, #0x50] +;; c: strb w3, [x5, w2, uxtw] +;; 10: ldp x29, x30, [sp], #0x10 +;; 14: ret ;; -;; function u0:1: -;; block0: -;; ldr x5, [x0, #80] -;; ldrb w0, [x5, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 20: stp x29, x30, [sp, #-0x10]! +;; 24: mov x29, sp +;; 28: ldr x5, [x0, #0x50] +;; 2c: ldrb w0, [x5, w2, uxtw] +;; 30: ldp x29, x30, [sp], #0x10 +;; 34: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat index ad943ea2ea86..1b8c7cdb064c 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,34 +18,34 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; mov w11, w2 -;; movz x12, #0 -;; ldr x13, [x0, #80] -;; add x13, x13, x2, UXTW -;; add x13, x13, #4096 -;; movn w10, #4096 -;; subs xzr, x11, x10 -;; csel x13, x12, x13, hi -;; csdb -;; strb w3, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w11, w2 +;; c: mov x12, #0 +;; 10: ldr x13, [x0, #0x50] +;; 14: add x13, x13, w2, uxtw +;; 18: add x13, x13, #1, lsl #12 +;; 1c: mov w10, #-0x1001 +;; 20: cmp x11, x10 +;; 24: csel x13, x12, x13, hi +;; 28: csdb +;; 2c: strb w3, [x13] +;; 30: ldp x29, x30, [sp], #0x10 +;; 34: ret ;; -;; function u0:1: -;; block0: -;; mov w11, w2 -;; movz x12, #0 -;; ldr x13, [x0, #80] -;; add x13, x13, x2, UXTW -;; add x13, x13, #4096 -;; movn w10, #4096 -;; subs xzr, x11, x10 -;; csel x13, x12, x13, hi -;; csdb -;; ldrb w0, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov w11, w2 +;; 4c: mov x12, #0 +;; 50: ldr x13, [x0, #0x50] +;; 54: add x13, x13, w2, uxtw +;; 58: add x13, x13, #1, lsl #12 +;; 5c: mov w10, #-0x1001 +;; 60: cmp x11, x10 +;; 64: csel x13, x12, x13, hi +;; 68: csdb +;; 6c: ldrb w0, [x13] +;; 70: ldp x29, x30, [sp], #0x10 +;; 74: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat index ec7bb21cc0c7..e527998d837f 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,36 +18,36 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; mov w12, w2 -;; movz x13, #0 -;; ldr x14, [x0, #80] -;; add x14, x14, x2, UXTW -;; movz x15, #65535, LSL #16 -;; add x14, x14, x15 -;; movz x11, #65535 -;; subs xzr, x12, x11 -;; csel x14, x13, x14, hi -;; csdb -;; strb w3, [x14] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w12, w2 +;; c: mov x13, #0 +;; 10: ldr x14, [x0, #0x50] +;; 14: add x14, x14, w2, uxtw +;; 18: mov x15, #0xffff0000 +;; 1c: add x14, x14, x15 +;; 20: mov x11, #0xffff +;; 24: cmp x12, x11 +;; 28: csel x14, x13, x14, hi +;; 2c: csdb +;; 30: strb w3, [x14] +;; 34: ldp x29, x30, [sp], #0x10 +;; 38: ret ;; -;; function u0:1: -;; block0: -;; mov w12, w2 -;; movz x13, #0 -;; ldr x14, [x0, #80] -;; add x14, x14, x2, UXTW -;; movz x15, #65535, LSL #16 -;; add x14, x14, x15 -;; movz x11, #65535 -;; subs xzr, x12, x11 -;; csel x14, x13, x14, hi -;; csdb -;; ldrb w0, [x14] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov w12, w2 +;; 4c: mov x13, #0 +;; 50: ldr x14, [x0, #0x50] +;; 54: add x14, x14, w2, uxtw +;; 58: mov x15, #0xffff0000 +;; 5c: add x14, x14, x15 +;; 60: mov x11, #0xffff +;; 64: cmp x12, x11 +;; 68: csel x14, x13, x14, hi +;; 6c: csdb +;; 70: ldrb w0, [x14] +;; 74: ldp x29, x30, [sp], #0x10 +;; 78: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat index a69a313a31e0..57ed50111278 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat @@ -18,18 +18,18 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ldr x5, [x0, #80] -;; str w3, [x5, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x5, [x0, #0x50] +;; c: str w3, [x5, w2, uxtw] +;; 10: ldp x29, x30, [sp], #0x10 +;; 14: ret ;; -;; function u0:1: -;; block0: -;; ldr x5, [x0, #80] -;; ldr w0, [x5, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 20: stp x29, x30, [sp, #-0x10]! +;; 24: mov x29, sp +;; 28: ldr x5, [x0, #0x50] +;; 2c: ldr w0, [x5, w2, uxtw] +;; 30: ldp x29, x30, [sp], #0x10 +;; 34: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat index 6f253e385d8a..f3c0cc0bde38 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,20 +18,20 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x6, [x0, #80] -;; add x6, x6, #4096 -;; str w3, [x6, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x6, [x0, #0x50] +;; c: add x6, x6, #1, lsl #12 +;; 10: str w3, [x6, w2, uxtw] +;; 14: ldp x29, x30, [sp], #0x10 +;; 18: ret ;; -;; function u0:1: -;; block0: -;; ldr x6, [x0, #80] -;; add x5, x6, #4096 -;; ldr w0, [x5, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 20: stp x29, x30, [sp, #-0x10]! +;; 24: mov x29, sp +;; 28: ldr x6, [x0, #0x50] +;; 2c: add x5, x6, #1, lsl #12 +;; 30: ldr w0, [x5, w2, uxtw] +;; 34: ldp x29, x30, [sp], #0x10 +;; 38: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat index 283d900d3f46..56343e56c9a8 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,22 +18,22 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ldr x7, [x0, #80] -;; add x7, x7, x2, UXTW -;; movz x8, #65535, LSL #16 -;; str w3, [x7, x8] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x7, [x0, #0x50] +;; c: add x7, x7, w2, uxtw +;; 10: mov x8, #0xffff0000 +;; 14: str w3, [x7, x8] +;; 18: ldp x29, x30, [sp], #0x10 +;; 1c: ret ;; -;; function u0:1: -;; block0: -;; ldr x7, [x0, #80] -;; add x7, x7, x2, UXTW -;; movz x8, #65535, LSL #16 -;; ldr w0, [x7, x8] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 20: stp x29, x30, [sp, #-0x10]! +;; 24: mov x29, sp +;; 28: ldr x7, [x0, #0x50] +;; 2c: add x7, x7, w2, uxtw +;; 30: mov x8, #0xffff0000 +;; 34: ldr w0, [x7, x8] +;; 38: ldp x29, x30, [sp], #0x10 +;; 3c: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat index 88d3c495b23e..96253eb65d2e 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat @@ -18,18 +18,18 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ldr x5, [x0, #80] -;; strb w3, [x5, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x5, [x0, #0x50] +;; c: strb w3, [x5, w2, uxtw] +;; 10: ldp x29, x30, [sp], #0x10 +;; 14: ret ;; -;; function u0:1: -;; block0: -;; ldr x5, [x0, #80] -;; ldrb w0, [x5, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 20: stp x29, x30, [sp, #-0x10]! +;; 24: mov x29, sp +;; 28: ldr x5, [x0, #0x50] +;; 2c: ldrb w0, [x5, w2, uxtw] +;; 30: ldp x29, x30, [sp], #0x10 +;; 34: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat index e464adc302d4..c035494e935c 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,20 +18,20 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x6, [x0, #80] -;; add x6, x6, #4096 -;; strb w3, [x6, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x6, [x0, #0x50] +;; c: add x6, x6, #1, lsl #12 +;; 10: strb w3, [x6, w2, uxtw] +;; 14: ldp x29, x30, [sp], #0x10 +;; 18: ret ;; -;; function u0:1: -;; block0: -;; ldr x6, [x0, #80] -;; add x5, x6, #4096 -;; ldrb w0, [x5, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 20: stp x29, x30, [sp, #-0x10]! +;; 24: mov x29, sp +;; 28: ldr x6, [x0, #0x50] +;; 2c: add x5, x6, #1, lsl #12 +;; 30: ldrb w0, [x5, w2, uxtw] +;; 34: ldp x29, x30, [sp], #0x10 +;; 38: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat index 21131d98058b..ce58e3374c0f 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,22 +18,22 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ldr x7, [x0, #80] -;; add x7, x7, x2, UXTW -;; movz x8, #65535, LSL #16 -;; strb w3, [x7, x8] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x7, [x0, #0x50] +;; c: add x7, x7, w2, uxtw +;; 10: mov x8, #0xffff0000 +;; 14: strb w3, [x7, x8] +;; 18: ldp x29, x30, [sp], #0x10 +;; 1c: ret ;; -;; function u0:1: -;; block0: -;; ldr x7, [x0, #80] -;; add x7, x7, x2, UXTW -;; movz x8, #65535, LSL #16 -;; ldrb w0, [x7, x8] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 20: stp x29, x30, [sp, #-0x10]! +;; 24: mov x29, sp +;; 28: ldr x7, [x0, #0x50] +;; 2c: add x7, x7, w2, uxtw +;; 30: mov x8, #0xffff0000 +;; 34: ldrb w0, [x7, x8] +;; 38: ldp x29, x30, [sp], #0x10 +;; 3c: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat index 9dfbec63b1bc..c18fe4f5d64b 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat @@ -18,18 +18,18 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ldr x5, [x0, #80] -;; str w3, [x5, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x5, [x0, #0x50] +;; c: str w3, [x5, w2, uxtw] +;; 10: ldp x29, x30, [sp], #0x10 +;; 14: ret ;; -;; function u0:1: -;; block0: -;; ldr x5, [x0, #80] -;; ldr w0, [x5, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 20: stp x29, x30, [sp, #-0x10]! +;; 24: mov x29, sp +;; 28: ldr x5, [x0, #0x50] +;; 2c: ldr w0, [x5, w2, uxtw] +;; 30: ldp x29, x30, [sp], #0x10 +;; 34: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat index ac3934bd047a..a628ba1518fb 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,20 +18,20 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x6, [x0, #80] -;; add x6, x6, #4096 -;; str w3, [x6, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x6, [x0, #0x50] +;; c: add x6, x6, #1, lsl #12 +;; 10: str w3, [x6, w2, uxtw] +;; 14: ldp x29, x30, [sp], #0x10 +;; 18: ret ;; -;; function u0:1: -;; block0: -;; ldr x6, [x0, #80] -;; add x5, x6, #4096 -;; ldr w0, [x5, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 20: stp x29, x30, [sp, #-0x10]! +;; 24: mov x29, sp +;; 28: ldr x6, [x0, #0x50] +;; 2c: add x5, x6, #1, lsl #12 +;; 30: ldr w0, [x5, w2, uxtw] +;; 34: ldp x29, x30, [sp], #0x10 +;; 38: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 19ea0f3aaa37..79b9e808dd75 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,22 +18,22 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ldr x7, [x0, #80] -;; add x7, x7, x2, UXTW -;; movz x8, #65535, LSL #16 -;; str w3, [x7, x8] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x7, [x0, #0x50] +;; c: add x7, x7, w2, uxtw +;; 10: mov x8, #0xffff0000 +;; 14: str w3, [x7, x8] +;; 18: ldp x29, x30, [sp], #0x10 +;; 1c: ret ;; -;; function u0:1: -;; block0: -;; ldr x7, [x0, #80] -;; add x7, x7, x2, UXTW -;; movz x8, #65535, LSL #16 -;; ldr w0, [x7, x8] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 20: stp x29, x30, [sp, #-0x10]! +;; 24: mov x29, sp +;; 28: ldr x7, [x0, #0x50] +;; 2c: add x7, x7, w2, uxtw +;; 30: mov x8, #0xffff0000 +;; 34: ldr w0, [x7, x8] +;; 38: ldp x29, x30, [sp], #0x10 +;; 3c: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat index 0d9ff6a1d2ff..26d32494f4f4 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat @@ -18,18 +18,18 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ldr x5, [x0, #80] -;; strb w3, [x5, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x5, [x0, #0x50] +;; c: strb w3, [x5, w2, uxtw] +;; 10: ldp x29, x30, [sp], #0x10 +;; 14: ret ;; -;; function u0:1: -;; block0: -;; ldr x5, [x0, #80] -;; ldrb w0, [x5, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 20: stp x29, x30, [sp, #-0x10]! +;; 24: mov x29, sp +;; 28: ldr x5, [x0, #0x50] +;; 2c: ldrb w0, [x5, w2, uxtw] +;; 30: ldp x29, x30, [sp], #0x10 +;; 34: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat index 042cd76630e1..9ac87650498f 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,20 +18,20 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ldr x6, [x0, #80] -;; add x6, x6, #4096 -;; strb w3, [x6, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x6, [x0, #0x50] +;; c: add x6, x6, #1, lsl #12 +;; 10: strb w3, [x6, w2, uxtw] +;; 14: ldp x29, x30, [sp], #0x10 +;; 18: ret ;; -;; function u0:1: -;; block0: -;; ldr x6, [x0, #80] -;; add x5, x6, #4096 -;; ldrb w0, [x5, w2, UXTW] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 20: stp x29, x30, [sp, #-0x10]! +;; 24: mov x29, sp +;; 28: ldr x6, [x0, #0x50] +;; 2c: add x5, x6, #1, lsl #12 +;; 30: ldrb w0, [x5, w2, uxtw] +;; 34: ldp x29, x30, [sp], #0x10 +;; 38: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat index dae606fe41ba..3f1fcfa784a9 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,22 +18,22 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ldr x7, [x0, #80] -;; add x7, x7, x2, UXTW -;; movz x8, #65535, LSL #16 -;; strb w3, [x7, x8] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: ldr x7, [x0, #0x50] +;; c: add x7, x7, w2, uxtw +;; 10: mov x8, #0xffff0000 +;; 14: strb w3, [x7, x8] +;; 18: ldp x29, x30, [sp], #0x10 +;; 1c: ret ;; -;; function u0:1: -;; block0: -;; ldr x7, [x0, #80] -;; add x7, x7, x2, UXTW -;; movz x8, #65535, LSL #16 -;; ldrb w0, [x7, x8] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 20: stp x29, x30, [sp, #-0x10]! +;; 24: mov x29, sp +;; 28: ldr x7, [x0, #0x50] +;; 2c: add x7, x7, w2, uxtw +;; 30: mov x8, #0xffff0000 +;; 34: ldrb w0, [x7, x8] +;; 38: ldp x29, x30, [sp], #0x10 +;; 3c: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat index 7c6b4effce19..f1715eec1ed1 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat @@ -18,30 +18,26 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; orr x6, xzr, #4294967292 -;; subs xzr, x2, x6 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x8, [x0, #80] -;; str w3, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: orr x6, xzr, #0xfffffffc +;; c: cmp x2, x6 +;; 10: b.hi #0x24 +;; 14: ldr x8, [x0, #0x50] +;; 18: str w3, [x8, x2] +;; 1c: ldp x29, x30, [sp], #0x10 +;; 20: ret +;; 24: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; orr x6, xzr, #4294967292 -;; subs xzr, x2, x6 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x8, [x0, #80] -;; ldr w0, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: orr x6, xzr, #0xfffffffc +;; 4c: cmp x2, x6 +;; 50: b.hi #0x64 +;; 54: ldr x8, [x0, #0x50] +;; 58: ldr w0, [x8, x2] +;; 5c: ldp x29, x30, [sp], #0x10 +;; 60: ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat index 3344b7fb0a68..3864ae785366 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,32 +18,28 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; movn w7, #4099 -;; subs xzr, x2, x7 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; add x9, x9, #4096 -;; str w3, [x9, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w7, #-0x1004 +;; c: cmp x2, x7 +;; 10: b.hi #0x28 +;; 14: ldr x9, [x0, #0x50] +;; 18: add x9, x9, #1, lsl #12 +;; 1c: str w3, [x9, x2] +;; 20: ldp x29, x30, [sp], #0x10 +;; 24: ret +;; 28: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; movn w7, #4099 -;; subs xzr, x2, x7 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; add x8, x9, #4096 -;; ldr w0, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov w7, #-0x1004 +;; 4c: cmp x2, x7 +;; 50: b.hi #0x68 +;; 54: ldr x9, [x0, #0x50] +;; 58: add x8, x9, #1, lsl #12 +;; 5c: ldr w0, [x8, x2] +;; 60: ldp x29, x30, [sp], #0x10 +;; 64: ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat index 6862fa47c71f..19fe6f0aa944 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; movz x8, #65532 -;; subs xzr, x2, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; movz x11, #65535, LSL #16 -;; str w3, [x10, x11] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov x8, #0xfffc +;; c: cmp x2, x8 +;; 10: b.hi #0x2c +;; 14: ldr x10, [x0, #0x50] +;; 18: add x10, x10, x2 +;; 1c: mov x11, #0xffff0000 +;; 20: str w3, [x10, x11] +;; 24: ldp x29, x30, [sp], #0x10 +;; 28: ret +;; 2c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; movz x8, #65532 -;; subs xzr, x2, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; movz x11, #65535, LSL #16 -;; ldr w0, [x10, x11] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov x8, #0xfffc +;; 4c: cmp x2, x8 +;; 50: b.hi #0x6c +;; 54: ldr x10, [x0, #0x50] +;; 58: add x10, x10, x2 +;; 5c: mov x11, #0xffff0000 +;; 60: ldr w0, [x10, x11] +;; 64: ldp x29, x30, [sp], #0x10 +;; 68: ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat index d36cc05fbd31..9eb7348d5551 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat @@ -18,30 +18,26 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; orr x6, xzr, #4294967295 -;; subs xzr, x2, x6 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x8, [x0, #80] -;; strb w3, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: orr x6, xzr, #0xffffffff +;; c: cmp x2, x6 +;; 10: b.hi #0x24 +;; 14: ldr x8, [x0, #0x50] +;; 18: strb w3, [x8, x2] +;; 1c: ldp x29, x30, [sp], #0x10 +;; 20: ret +;; 24: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; orr x6, xzr, #4294967295 -;; subs xzr, x2, x6 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x8, [x0, #80] -;; ldrb w0, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: orr x6, xzr, #0xffffffff +;; 4c: cmp x2, x6 +;; 50: b.hi #0x64 +;; 54: ldr x8, [x0, #0x50] +;; 58: ldrb w0, [x8, x2] +;; 5c: ldp x29, x30, [sp], #0x10 +;; 60: ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat index 79304567bb23..6f94687c3a01 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,32 +18,28 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; movn w7, #4096 -;; subs xzr, x2, x7 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; add x9, x9, #4096 -;; strb w3, [x9, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w7, #-0x1001 +;; c: cmp x2, x7 +;; 10: b.hi #0x28 +;; 14: ldr x9, [x0, #0x50] +;; 18: add x9, x9, #1, lsl #12 +;; 1c: strb w3, [x9, x2] +;; 20: ldp x29, x30, [sp], #0x10 +;; 24: ret +;; 28: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; movn w7, #4096 -;; subs xzr, x2, x7 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; add x8, x9, #4096 -;; ldrb w0, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov w7, #-0x1001 +;; 4c: cmp x2, x7 +;; 50: b.hi #0x68 +;; 54: ldr x9, [x0, #0x50] +;; 58: add x8, x9, #1, lsl #12 +;; 5c: ldrb w0, [x8, x2] +;; 60: ldp x29, x30, [sp], #0x10 +;; 64: ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat index 9841859c7869..43ec4dda5a23 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; movz x8, #65535 -;; subs xzr, x2, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; movz x11, #65535, LSL #16 -;; strb w3, [x10, x11] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov x8, #0xffff +;; c: cmp x2, x8 +;; 10: b.hi #0x2c +;; 14: ldr x10, [x0, #0x50] +;; 18: add x10, x10, x2 +;; 1c: mov x11, #0xffff0000 +;; 20: strb w3, [x10, x11] +;; 24: ldp x29, x30, [sp], #0x10 +;; 28: ret +;; 2c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; movz x8, #65535 -;; subs xzr, x2, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; movz x11, #65535, LSL #16 -;; ldrb w0, [x10, x11] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov x8, #0xffff +;; 4c: cmp x2, x8 +;; 50: b.hi #0x6c +;; 54: ldr x10, [x0, #0x50] +;; 58: add x10, x10, x2 +;; 5c: mov x11, #0xffff0000 +;; 60: ldrb w0, [x10, x11] +;; 64: ldp x29, x30, [sp], #0x10 +;; 68: ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat index 6040f119cb69..769a18f386f1 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat @@ -18,30 +18,30 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; movz x9, #0 -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; orr x8, xzr, #4294967292 -;; subs xzr, x2, x8 -;; csel x11, x9, x10, hi -;; csdb -;; str w3, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov x9, #0 +;; c: ldr x10, [x0, #0x50] +;; 10: add x10, x10, x2 +;; 14: orr x8, xzr, #0xfffffffc +;; 18: cmp x2, x8 +;; 1c: csel x11, x9, x10, hi +;; 20: csdb +;; 24: str w3, [x11] +;; 28: ldp x29, x30, [sp], #0x10 +;; 2c: ret ;; -;; function u0:1: -;; block0: -;; movz x9, #0 -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; orr x8, xzr, #4294967292 -;; subs xzr, x2, x8 -;; csel x11, x9, x10, hi -;; csdb -;; ldr w0, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov x9, #0 +;; 4c: ldr x10, [x0, #0x50] +;; 50: add x10, x10, x2 +;; 54: orr x8, xzr, #0xfffffffc +;; 58: cmp x2, x8 +;; 5c: csel x11, x9, x10, hi +;; 60: csdb +;; 64: ldr w0, [x11] +;; 68: ldp x29, x30, [sp], #0x10 +;; 6c: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat index 4785dc45f9ce..a9828fa97112 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,32 +18,32 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; movz x10, #0 -;; ldr x11, [x0, #80] -;; add x11, x11, x2 -;; add x11, x11, #4096 -;; movn w9, #4099 -;; subs xzr, x2, x9 -;; csel x12, x10, x11, hi -;; csdb -;; str w3, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov x10, #0 +;; c: ldr x11, [x0, #0x50] +;; 10: add x11, x11, x2 +;; 14: add x11, x11, #1, lsl #12 +;; 18: mov w9, #-0x1004 +;; 1c: cmp x2, x9 +;; 20: csel x12, x10, x11, hi +;; 24: csdb +;; 28: str w3, [x12] +;; 2c: ldp x29, x30, [sp], #0x10 +;; 30: ret ;; -;; function u0:1: -;; block0: -;; movz x10, #0 -;; ldr x11, [x0, #80] -;; add x11, x11, x2 -;; add x11, x11, #4096 -;; movn w9, #4099 -;; subs xzr, x2, x9 -;; csel x12, x10, x11, hi -;; csdb -;; ldr w0, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov x10, #0 +;; 4c: ldr x11, [x0, #0x50] +;; 50: add x11, x11, x2 +;; 54: add x11, x11, #1, lsl #12 +;; 58: mov w9, #-0x1004 +;; 5c: cmp x2, x9 +;; 60: csel x12, x10, x11, hi +;; 64: csdb +;; 68: ldr w0, [x12] +;; 6c: ldp x29, x30, [sp], #0x10 +;; 70: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 3e65a6e60631..80fccca506f9 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,34 +18,34 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; movz x11, #0 -;; ldr x12, [x0, #80] -;; add x12, x12, x2 -;; movz x13, #65535, LSL #16 -;; add x12, x12, x13 -;; movz x10, #65532 -;; subs xzr, x2, x10 -;; csel x13, x11, x12, hi -;; csdb -;; str w3, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov x11, #0 +;; c: ldr x12, [x0, #0x50] +;; 10: add x12, x12, x2 +;; 14: mov x13, #0xffff0000 +;; 18: add x12, x12, x13 +;; 1c: mov x10, #0xfffc +;; 20: cmp x2, x10 +;; 24: csel x13, x11, x12, hi +;; 28: csdb +;; 2c: str w3, [x13] +;; 30: ldp x29, x30, [sp], #0x10 +;; 34: ret ;; -;; function u0:1: -;; block0: -;; movz x11, #0 -;; ldr x12, [x0, #80] -;; add x12, x12, x2 -;; movz x13, #65535, LSL #16 -;; add x12, x12, x13 -;; movz x10, #65532 -;; subs xzr, x2, x10 -;; csel x13, x11, x12, hi -;; csdb -;; ldr w0, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov x11, #0 +;; 4c: ldr x12, [x0, #0x50] +;; 50: add x12, x12, x2 +;; 54: mov x13, #0xffff0000 +;; 58: add x12, x12, x13 +;; 5c: mov x10, #0xfffc +;; 60: cmp x2, x10 +;; 64: csel x13, x11, x12, hi +;; 68: csdb +;; 6c: ldr w0, [x13] +;; 70: ldp x29, x30, [sp], #0x10 +;; 74: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat index 37f218767ced..76fc6bc4b28e 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat @@ -18,30 +18,30 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; movz x9, #0 -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; orr x8, xzr, #4294967295 -;; subs xzr, x2, x8 -;; csel x11, x9, x10, hi -;; csdb -;; strb w3, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov x9, #0 +;; c: ldr x10, [x0, #0x50] +;; 10: add x10, x10, x2 +;; 14: orr x8, xzr, #0xffffffff +;; 18: cmp x2, x8 +;; 1c: csel x11, x9, x10, hi +;; 20: csdb +;; 24: strb w3, [x11] +;; 28: ldp x29, x30, [sp], #0x10 +;; 2c: ret ;; -;; function u0:1: -;; block0: -;; movz x9, #0 -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; orr x8, xzr, #4294967295 -;; subs xzr, x2, x8 -;; csel x11, x9, x10, hi -;; csdb -;; ldrb w0, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov x9, #0 +;; 4c: ldr x10, [x0, #0x50] +;; 50: add x10, x10, x2 +;; 54: orr x8, xzr, #0xffffffff +;; 58: cmp x2, x8 +;; 5c: csel x11, x9, x10, hi +;; 60: csdb +;; 64: ldrb w0, [x11] +;; 68: ldp x29, x30, [sp], #0x10 +;; 6c: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat index b1a8158ce86f..03b003e3644b 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,32 +18,32 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; movz x10, #0 -;; ldr x11, [x0, #80] -;; add x11, x11, x2 -;; add x11, x11, #4096 -;; movn w9, #4096 -;; subs xzr, x2, x9 -;; csel x12, x10, x11, hi -;; csdb -;; strb w3, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov x10, #0 +;; c: ldr x11, [x0, #0x50] +;; 10: add x11, x11, x2 +;; 14: add x11, x11, #1, lsl #12 +;; 18: mov w9, #-0x1001 +;; 1c: cmp x2, x9 +;; 20: csel x12, x10, x11, hi +;; 24: csdb +;; 28: strb w3, [x12] +;; 2c: ldp x29, x30, [sp], #0x10 +;; 30: ret ;; -;; function u0:1: -;; block0: -;; movz x10, #0 -;; ldr x11, [x0, #80] -;; add x11, x11, x2 -;; add x11, x11, #4096 -;; movn w9, #4096 -;; subs xzr, x2, x9 -;; csel x12, x10, x11, hi -;; csdb -;; ldrb w0, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov x10, #0 +;; 4c: ldr x11, [x0, #0x50] +;; 50: add x11, x11, x2 +;; 54: add x11, x11, #1, lsl #12 +;; 58: mov w9, #-0x1001 +;; 5c: cmp x2, x9 +;; 60: csel x12, x10, x11, hi +;; 64: csdb +;; 68: ldrb w0, [x12] +;; 6c: ldp x29, x30, [sp], #0x10 +;; 70: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat index bb4a7648f48f..ab580beb69c2 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,34 +18,34 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; movz x11, #0 -;; ldr x12, [x0, #80] -;; add x12, x12, x2 -;; movz x13, #65535, LSL #16 -;; add x12, x12, x13 -;; movz x10, #65535 -;; subs xzr, x2, x10 -;; csel x13, x11, x12, hi -;; csdb -;; strb w3, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov x11, #0 +;; c: ldr x12, [x0, #0x50] +;; 10: add x12, x12, x2 +;; 14: mov x13, #0xffff0000 +;; 18: add x12, x12, x13 +;; 1c: mov x10, #0xffff +;; 20: cmp x2, x10 +;; 24: csel x13, x11, x12, hi +;; 28: csdb +;; 2c: strb w3, [x13] +;; 30: ldp x29, x30, [sp], #0x10 +;; 34: ret ;; -;; function u0:1: -;; block0: -;; movz x11, #0 -;; ldr x12, [x0, #80] -;; add x12, x12, x2 -;; movz x13, #65535, LSL #16 -;; add x12, x12, x13 -;; movz x10, #65535 -;; subs xzr, x2, x10 -;; csel x13, x11, x12, hi -;; csdb -;; ldrb w0, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov x11, #0 +;; 4c: ldr x12, [x0, #0x50] +;; 50: add x12, x12, x2 +;; 54: mov x13, #0xffff0000 +;; 58: add x12, x12, x13 +;; 5c: mov x10, #0xffff +;; 60: cmp x2, x10 +;; 64: csel x13, x11, x12, hi +;; 68: csdb +;; 6c: ldrb w0, [x13] +;; 70: ldp x29, x30, [sp], #0x10 +;; 74: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat index 11be732667b2..1b4d13dfaa47 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat @@ -18,30 +18,26 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; orr x6, xzr, #4294967292 -;; subs xzr, x2, x6 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x8, [x0, #80] -;; str w3, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: orr x6, xzr, #0xfffffffc +;; c: cmp x2, x6 +;; 10: b.hi #0x24 +;; 14: ldr x8, [x0, #0x50] +;; 18: str w3, [x8, x2] +;; 1c: ldp x29, x30, [sp], #0x10 +;; 20: ret +;; 24: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; orr x6, xzr, #4294967292 -;; subs xzr, x2, x6 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x8, [x0, #80] -;; ldr w0, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: orr x6, xzr, #0xfffffffc +;; 4c: cmp x2, x6 +;; 50: b.hi #0x64 +;; 54: ldr x8, [x0, #0x50] +;; 58: ldr w0, [x8, x2] +;; 5c: ldp x29, x30, [sp], #0x10 +;; 60: ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat index 19278277fad5..7cf91d95db7a 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,32 +18,28 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; movn w7, #4099 -;; subs xzr, x2, x7 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; add x9, x9, #4096 -;; str w3, [x9, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w7, #-0x1004 +;; c: cmp x2, x7 +;; 10: b.hi #0x28 +;; 14: ldr x9, [x0, #0x50] +;; 18: add x9, x9, #1, lsl #12 +;; 1c: str w3, [x9, x2] +;; 20: ldp x29, x30, [sp], #0x10 +;; 24: ret +;; 28: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; movn w7, #4099 -;; subs xzr, x2, x7 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; add x8, x9, #4096 -;; ldr w0, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov w7, #-0x1004 +;; 4c: cmp x2, x7 +;; 50: b.hi #0x68 +;; 54: ldr x9, [x0, #0x50] +;; 58: add x8, x9, #1, lsl #12 +;; 5c: ldr w0, [x8, x2] +;; 60: ldp x29, x30, [sp], #0x10 +;; 64: ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat index f6677ee214d6..4b08467a5893 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; movz x8, #65532 -;; subs xzr, x2, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; movz x11, #65535, LSL #16 -;; str w3, [x10, x11] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov x8, #0xfffc +;; c: cmp x2, x8 +;; 10: b.hi #0x2c +;; 14: ldr x10, [x0, #0x50] +;; 18: add x10, x10, x2 +;; 1c: mov x11, #0xffff0000 +;; 20: str w3, [x10, x11] +;; 24: ldp x29, x30, [sp], #0x10 +;; 28: ret +;; 2c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; movz x8, #65532 -;; subs xzr, x2, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; movz x11, #65535, LSL #16 -;; ldr w0, [x10, x11] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov x8, #0xfffc +;; 4c: cmp x2, x8 +;; 50: b.hi #0x6c +;; 54: ldr x10, [x0, #0x50] +;; 58: add x10, x10, x2 +;; 5c: mov x11, #0xffff0000 +;; 60: ldr w0, [x10, x11] +;; 64: ldp x29, x30, [sp], #0x10 +;; 68: ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat index 20700e264c4e..f5eb7ec88a51 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat @@ -18,30 +18,26 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; orr x6, xzr, #4294967295 -;; subs xzr, x2, x6 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x8, [x0, #80] -;; strb w3, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: orr x6, xzr, #0xffffffff +;; c: cmp x2, x6 +;; 10: b.hi #0x24 +;; 14: ldr x8, [x0, #0x50] +;; 18: strb w3, [x8, x2] +;; 1c: ldp x29, x30, [sp], #0x10 +;; 20: ret +;; 24: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; orr x6, xzr, #4294967295 -;; subs xzr, x2, x6 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x8, [x0, #80] -;; ldrb w0, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: orr x6, xzr, #0xffffffff +;; 4c: cmp x2, x6 +;; 50: b.hi #0x64 +;; 54: ldr x8, [x0, #0x50] +;; 58: ldrb w0, [x8, x2] +;; 5c: ldp x29, x30, [sp], #0x10 +;; 60: ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat index 038d8a3261ca..726a053a0e33 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,32 +18,28 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; movn w7, #4096 -;; subs xzr, x2, x7 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; add x9, x9, #4096 -;; strb w3, [x9, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov w7, #-0x1001 +;; c: cmp x2, x7 +;; 10: b.hi #0x28 +;; 14: ldr x9, [x0, #0x50] +;; 18: add x9, x9, #1, lsl #12 +;; 1c: strb w3, [x9, x2] +;; 20: ldp x29, x30, [sp], #0x10 +;; 24: ret +;; 28: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; movn w7, #4096 -;; subs xzr, x2, x7 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x9, [x0, #80] -;; add x8, x9, #4096 -;; ldrb w0, [x8, x2] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov w7, #-0x1001 +;; 4c: cmp x2, x7 +;; 50: b.hi #0x68 +;; 54: ldr x9, [x0, #0x50] +;; 58: add x8, x9, #1, lsl #12 +;; 5c: ldrb w0, [x8, x2] +;; 60: ldp x29, x30, [sp], #0x10 +;; 64: ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat index 3531536284c8..84dce47f1513 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; movz x8, #65535 -;; subs xzr, x2, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; movz x11, #65535, LSL #16 -;; strb w3, [x10, x11] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov x8, #0xffff +;; c: cmp x2, x8 +;; 10: b.hi #0x2c +;; 14: ldr x10, [x0, #0x50] +;; 18: add x10, x10, x2 +;; 1c: mov x11, #0xffff0000 +;; 20: strb w3, [x10, x11] +;; 24: ldp x29, x30, [sp], #0x10 +;; 28: ret +;; 2c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; movz x8, #65535 -;; subs xzr, x2, x8 -;; b.hi label3 ; b label1 -;; block1: -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; movz x11, #65535, LSL #16 -;; ldrb w0, [x10, x11] -;; b label2 -;; block2: -;; ret -;; block3: -;; udf #0xc11f +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov x8, #0xffff +;; 4c: cmp x2, x8 +;; 50: b.hi #0x6c +;; 54: ldr x10, [x0, #0x50] +;; 58: add x10, x10, x2 +;; 5c: mov x11, #0xffff0000 +;; 60: ldrb w0, [x10, x11] +;; 64: ldp x29, x30, [sp], #0x10 +;; 68: ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat index e80c5915809d..e161324af4c4 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat @@ -18,30 +18,30 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; movz x9, #0 -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; orr x8, xzr, #4294967292 -;; subs xzr, x2, x8 -;; csel x11, x9, x10, hi -;; csdb -;; str w3, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov x9, #0 +;; c: ldr x10, [x0, #0x50] +;; 10: add x10, x10, x2 +;; 14: orr x8, xzr, #0xfffffffc +;; 18: cmp x2, x8 +;; 1c: csel x11, x9, x10, hi +;; 20: csdb +;; 24: str w3, [x11] +;; 28: ldp x29, x30, [sp], #0x10 +;; 2c: ret ;; -;; function u0:1: -;; block0: -;; movz x9, #0 -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; orr x8, xzr, #4294967292 -;; subs xzr, x2, x8 -;; csel x11, x9, x10, hi -;; csdb -;; ldr w0, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov x9, #0 +;; 4c: ldr x10, [x0, #0x50] +;; 50: add x10, x10, x2 +;; 54: orr x8, xzr, #0xfffffffc +;; 58: cmp x2, x8 +;; 5c: csel x11, x9, x10, hi +;; 60: csdb +;; 64: ldr w0, [x11] +;; 68: ldp x29, x30, [sp], #0x10 +;; 6c: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat index 5eb11b928ac2..6f07c908f643 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,32 +18,32 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; movz x10, #0 -;; ldr x11, [x0, #80] -;; add x11, x11, x2 -;; add x11, x11, #4096 -;; movn w9, #4099 -;; subs xzr, x2, x9 -;; csel x12, x10, x11, hi -;; csdb -;; str w3, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov x10, #0 +;; c: ldr x11, [x0, #0x50] +;; 10: add x11, x11, x2 +;; 14: add x11, x11, #1, lsl #12 +;; 18: mov w9, #-0x1004 +;; 1c: cmp x2, x9 +;; 20: csel x12, x10, x11, hi +;; 24: csdb +;; 28: str w3, [x12] +;; 2c: ldp x29, x30, [sp], #0x10 +;; 30: ret ;; -;; function u0:1: -;; block0: -;; movz x10, #0 -;; ldr x11, [x0, #80] -;; add x11, x11, x2 -;; add x11, x11, #4096 -;; movn w9, #4099 -;; subs xzr, x2, x9 -;; csel x12, x10, x11, hi -;; csdb -;; ldr w0, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov x10, #0 +;; 4c: ldr x11, [x0, #0x50] +;; 50: add x11, x11, x2 +;; 54: add x11, x11, #1, lsl #12 +;; 58: mov w9, #-0x1004 +;; 5c: cmp x2, x9 +;; 60: csel x12, x10, x11, hi +;; 64: csdb +;; 68: ldr w0, [x12] +;; 6c: ldp x29, x30, [sp], #0x10 +;; 70: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat index d2394037b07b..c8ef130ec948 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,34 +18,34 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; movz x11, #0 -;; ldr x12, [x0, #80] -;; add x12, x12, x2 -;; movz x13, #65535, LSL #16 -;; add x12, x12, x13 -;; movz x10, #65532 -;; subs xzr, x2, x10 -;; csel x13, x11, x12, hi -;; csdb -;; str w3, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov x11, #0 +;; c: ldr x12, [x0, #0x50] +;; 10: add x12, x12, x2 +;; 14: mov x13, #0xffff0000 +;; 18: add x12, x12, x13 +;; 1c: mov x10, #0xfffc +;; 20: cmp x2, x10 +;; 24: csel x13, x11, x12, hi +;; 28: csdb +;; 2c: str w3, [x13] +;; 30: ldp x29, x30, [sp], #0x10 +;; 34: ret ;; -;; function u0:1: -;; block0: -;; movz x11, #0 -;; ldr x12, [x0, #80] -;; add x12, x12, x2 -;; movz x13, #65535, LSL #16 -;; add x12, x12, x13 -;; movz x10, #65532 -;; subs xzr, x2, x10 -;; csel x13, x11, x12, hi -;; csdb -;; ldr w0, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov x11, #0 +;; 4c: ldr x12, [x0, #0x50] +;; 50: add x12, x12, x2 +;; 54: mov x13, #0xffff0000 +;; 58: add x12, x12, x13 +;; 5c: mov x10, #0xfffc +;; 60: cmp x2, x10 +;; 64: csel x13, x11, x12, hi +;; 68: csdb +;; 6c: ldr w0, [x13] +;; 70: ldp x29, x30, [sp], #0x10 +;; 74: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat index 20f110ded632..2b25591d2626 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat @@ -18,30 +18,30 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; movz x9, #0 -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; orr x8, xzr, #4294967295 -;; subs xzr, x2, x8 -;; csel x11, x9, x10, hi -;; csdb -;; strb w3, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov x9, #0 +;; c: ldr x10, [x0, #0x50] +;; 10: add x10, x10, x2 +;; 14: orr x8, xzr, #0xffffffff +;; 18: cmp x2, x8 +;; 1c: csel x11, x9, x10, hi +;; 20: csdb +;; 24: strb w3, [x11] +;; 28: ldp x29, x30, [sp], #0x10 +;; 2c: ret ;; -;; function u0:1: -;; block0: -;; movz x9, #0 -;; ldr x10, [x0, #80] -;; add x10, x10, x2 -;; orr x8, xzr, #4294967295 -;; subs xzr, x2, x8 -;; csel x11, x9, x10, hi -;; csdb -;; ldrb w0, [x11] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov x9, #0 +;; 4c: ldr x10, [x0, #0x50] +;; 50: add x10, x10, x2 +;; 54: orr x8, xzr, #0xffffffff +;; 58: cmp x2, x8 +;; 5c: csel x11, x9, x10, hi +;; 60: csdb +;; 64: ldrb w0, [x11] +;; 68: ldp x29, x30, [sp], #0x10 +;; 6c: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat index d59f6796b9dd..ee406b9ccd38 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,32 +18,32 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; movz x10, #0 -;; ldr x11, [x0, #80] -;; add x11, x11, x2 -;; add x11, x11, #4096 -;; movn w9, #4096 -;; subs xzr, x2, x9 -;; csel x12, x10, x11, hi -;; csdb -;; strb w3, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov x10, #0 +;; c: ldr x11, [x0, #0x50] +;; 10: add x11, x11, x2 +;; 14: add x11, x11, #1, lsl #12 +;; 18: mov w9, #-0x1001 +;; 1c: cmp x2, x9 +;; 20: csel x12, x10, x11, hi +;; 24: csdb +;; 28: strb w3, [x12] +;; 2c: ldp x29, x30, [sp], #0x10 +;; 30: ret ;; -;; function u0:1: -;; block0: -;; movz x10, #0 -;; ldr x11, [x0, #80] -;; add x11, x11, x2 -;; add x11, x11, #4096 -;; movn w9, #4096 -;; subs xzr, x2, x9 -;; csel x12, x10, x11, hi -;; csdb -;; ldrb w0, [x12] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov x10, #0 +;; 4c: ldr x11, [x0, #0x50] +;; 50: add x11, x11, x2 +;; 54: add x11, x11, #1, lsl #12 +;; 58: mov w9, #-0x1001 +;; 5c: cmp x2, x9 +;; 60: csel x12, x10, x11, hi +;; 64: csdb +;; 68: ldrb w0, [x12] +;; 6c: ldp x29, x30, [sp], #0x10 +;; 70: ret diff --git a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat index d724980faabb..db526b594104 100644 --- a/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/aarch64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,34 +18,34 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; movz x11, #0 -;; ldr x12, [x0, #80] -;; add x12, x12, x2 -;; movz x13, #65535, LSL #16 -;; add x12, x12, x13 -;; movz x10, #65535 -;; subs xzr, x2, x10 -;; csel x13, x11, x12, hi -;; csdb -;; strb w3, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: stp x29, x30, [sp, #-0x10]! +;; 4: mov x29, sp +;; 8: mov x11, #0 +;; c: ldr x12, [x0, #0x50] +;; 10: add x12, x12, x2 +;; 14: mov x13, #0xffff0000 +;; 18: add x12, x12, x13 +;; 1c: mov x10, #0xffff +;; 20: cmp x2, x10 +;; 24: csel x13, x11, x12, hi +;; 28: csdb +;; 2c: strb w3, [x13] +;; 30: ldp x29, x30, [sp], #0x10 +;; 34: ret ;; -;; function u0:1: -;; block0: -;; movz x11, #0 -;; ldr x12, [x0, #80] -;; add x12, x12, x2 -;; movz x13, #65535, LSL #16 -;; add x12, x12, x13 -;; movz x10, #65535 -;; subs xzr, x2, x10 -;; csel x13, x11, x12, hi -;; csdb -;; ldrb w0, [x13] -;; b label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: stp x29, x30, [sp, #-0x10]! +;; 44: mov x29, sp +;; 48: mov x11, #0 +;; 4c: ldr x12, [x0, #0x50] +;; 50: add x12, x12, x2 +;; 54: mov x13, #0xffff0000 +;; 58: add x12, x12, x13 +;; 5c: mov x10, #0xffff +;; 60: cmp x2, x10 +;; 64: csel x13, x11, x12, hi +;; 68: csdb +;; 6c: ldrb w0, [x13] +;; 70: ldp x29, x30, [sp], #0x10 +;; 74: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat index fa6a783994bf..f20febceea2e 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat @@ -18,36 +18,40 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; slli a5,a2,32 -;; srli a5,a5,32 -;; addi a4,a4,-4 -;; bgtu a5,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a0,80(a0) -;; add a5,a0,a5 -;; sw a3,0(a5) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: slli a5, a2, 0x20 +;; 18: srli a5, a5, 0x20 +;; 1c: addi a4, a4, -4 +;; 20: bltu a4, a5, 0x20 +;; 24: ld a0, 0x50(a0) +;; 28: add a5, a0, a5 +;; 2c: sw a3, 0(a5) +;; 30: ld ra, 8(sp) +;; 34: ld s0, 0(sp) +;; 38: addi sp, sp, 0x10 +;; 3c: ret +;; 40: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a4,88(a0) -;; slli a3,a2,32 -;; srli a5,a3,32 -;; addi a4,a4,-4 -;; bgtu a5,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a0,80(a0) -;; add a5,a0,a5 -;; lw a0,0(a5) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 44: addi sp, sp, -0x10 +;; 48: sd ra, 8(sp) +;; 4c: sd s0, 0(sp) +;; 50: mv s0, sp +;; 54: ld a4, 0x58(a0) +;; 58: slli a3, a2, 0x20 +;; 5c: srli a5, a3, 0x20 +;; 60: addi a4, a4, -4 +;; 64: bltu a4, a5, 0x20 +;; 68: ld a0, 0x50(a0) +;; 6c: add a5, a0, a5 +;; 70: lw a0, 0(a5) +;; 74: ld ra, 8(sp) +;; 78: ld s0, 0(sp) +;; 7c: addi sp, sp, 0x10 +;; 80: ret +;; 84: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat index 8ca34eae9393..5688d54cd550 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,40 +18,48 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; slli a5,a2,32 -;; srli a1,a5,32 -;; lui a5,1 -;; addi a2,a5,4 -;; sub a2,a4,a2 -;; bgtu a1,a2,taken(label3),not_taken(label1) -;; block1: -;; ld a2,80(a0) -;; add a1,a2,a1 -;; sw a3,4096(a1) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: slli a5, a2, 0x20 +;; 18: srli a1, a5, 0x20 +;; 1c: lui a5, 1 +;; 20: addi a2, a5, 4 +;; 24: sub a2, a4, a2 +;; 28: bltu a2, a1, 0x28 +;; 2c: ld a2, 0x50(a0) +;; 30: add a1, a2, a1 +;; 34: lui t6, 1 +;; 38: add t6, t6, a1 +;; 3c: sw a3, 0(t6) +;; 40: ld ra, 8(sp) +;; 44: ld s0, 0(sp) +;; 48: addi sp, sp, 0x10 +;; 4c: ret +;; 50: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a3,88(a0) -;; slli a5,a2,32 -;; srli a1,a5,32 -;; lui a5,1 -;; addi a2,a5,4 -;; sub a2,a3,a2 -;; bgtu a1,a2,taken(label3),not_taken(label1) -;; block1: -;; ld a2,80(a0) -;; add a1,a2,a1 -;; lw a0,4096(a1) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 54: addi sp, sp, -0x10 +;; 58: sd ra, 8(sp) +;; 5c: sd s0, 0(sp) +;; 60: mv s0, sp +;; 64: ld a3, 0x58(a0) +;; 68: slli a5, a2, 0x20 +;; 6c: srli a1, a5, 0x20 +;; 70: lui a5, 1 +;; 74: addi a2, a5, 4 +;; 78: sub a2, a3, a2 +;; 7c: bltu a2, a1, 0x28 +;; 80: ld a2, 0x50(a0) +;; 84: add a1, a2, a1 +;; 88: lui t6, 1 +;; 8c: add t6, t6, a1 +;; 90: lw a0, 0(t6) +;; 94: ld ra, 8(sp) +;; 98: ld s0, 0(sp) +;; 9c: addi sp, sp, 0x10 +;; a0: ret +;; a4: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat index 12354e361e84..692675570365 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,50 +18,56 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; slli a4,a2,32 -;; srli a5,a4,32 -;; lui a2,262140 -;; addi a4,a2,1 -;; slli a1,a4,2 -;; add a4,a5,a1 -;; trap_if heap_oob##(a4 ult a5) -;; ld a1,88(a0) -;; bgtu a4,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a0,80(a0) -;; add a0,a0,a5 -;; lui a5,65535 -;; slli a1,a5,4 -;; add a0,a0,a1 -;; sw a3,0(a0) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: slli a4, a2, 0x20 +;; 14: srli a5, a4, 0x20 +;; 18: lui a2, 0x3fffc +;; 1c: addi a4, a2, 1 +;; 20: slli a1, a4, 2 +;; 24: add a4, a5, a1 +;; 28: bgeu a4, a5, 8 +;; 2c: .byte 0x00, 0x00, 0x00, 0x00 +;; 30: ld a1, 0x58(a0) +;; 34: bltu a1, a4, 0x2c +;; 38: ld a0, 0x50(a0) +;; 3c: add a0, a0, a5 +;; 40: lui a5, 0xffff +;; 44: slli a1, a5, 4 +;; 48: add a0, a0, a1 +;; 4c: sw a3, 0(a0) +;; 50: ld ra, 8(sp) +;; 54: ld s0, 0(sp) +;; 58: addi sp, sp, 0x10 +;; 5c: ret +;; 60: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; slli a3,a2,32 -;; srli a5,a3,32 -;; lui a2,262140 -;; addi a4,a2,1 -;; slli a1,a4,2 -;; add a4,a5,a1 -;; trap_if heap_oob##(a4 ult a5) -;; ld a1,88(a0) -;; bgtu a4,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a0,80(a0) -;; add a0,a0,a5 -;; lui a5,65535 -;; slli a1,a5,4 -;; add a0,a0,a1 -;; lw a0,0(a0) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 64: addi sp, sp, -0x10 +;; 68: sd ra, 8(sp) +;; 6c: sd s0, 0(sp) +;; 70: mv s0, sp +;; 74: slli a3, a2, 0x20 +;; 78: srli a5, a3, 0x20 +;; 7c: lui a2, 0x3fffc +;; 80: addi a4, a2, 1 +;; 84: slli a1, a4, 2 +;; 88: add a4, a5, a1 +;; 8c: bgeu a4, a5, 8 +;; 90: .byte 0x00, 0x00, 0x00, 0x00 +;; 94: ld a1, 0x58(a0) +;; 98: bltu a1, a4, 0x2c +;; 9c: ld a0, 0x50(a0) +;; a0: add a0, a0, a5 +;; a4: lui a5, 0xffff +;; a8: slli a1, a5, 4 +;; ac: add a0, a0, a1 +;; b0: lw a0, 0(a0) +;; b4: ld ra, 8(sp) +;; b8: ld s0, 0(sp) +;; bc: addi sp, sp, 0x10 +;; c0: ret +;; c4: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat index adf26e590186..a98f29750bdf 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat @@ -18,34 +18,38 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; slli a2,a2,32 -;; srli a5,a2,32 -;; bgeu a5,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a4,a4,a5 -;; sb a3,0(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: slli a2, a2, 0x20 +;; 18: srli a5, a2, 0x20 +;; 1c: bgeu a5, a4, 0x20 +;; 20: ld a4, 0x50(a0) +;; 24: add a4, a4, a5 +;; 28: sb a3, 0(a4) +;; 2c: ld ra, 8(sp) +;; 30: ld s0, 0(sp) +;; 34: addi sp, sp, 0x10 +;; 38: ret +;; 3c: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a3,88(a0) -;; slli a2,a2,32 -;; srli a4,a2,32 -;; bgeu a4,a3,taken(label3),not_taken(label1) -;; block1: -;; ld a5,80(a0) -;; add a4,a5,a4 -;; lbu a0,0(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 40: addi sp, sp, -0x10 +;; 44: sd ra, 8(sp) +;; 48: sd s0, 0(sp) +;; 4c: mv s0, sp +;; 50: ld a3, 0x58(a0) +;; 54: slli a2, a2, 0x20 +;; 58: srli a4, a2, 0x20 +;; 5c: bgeu a4, a3, 0x20 +;; 60: ld a5, 0x50(a0) +;; 64: add a4, a5, a4 +;; 68: lbu a0, 0(a4) +;; 6c: ld ra, 8(sp) +;; 70: ld s0, 0(sp) +;; 74: addi sp, sp, 0x10 +;; 78: ret +;; 7c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat index 253e8e204991..0a704583a354 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,40 +18,48 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; slli a5,a2,32 -;; srli a1,a5,32 -;; lui a5,1 -;; addi a2,a5,1 -;; sub a2,a4,a2 -;; bgtu a1,a2,taken(label3),not_taken(label1) -;; block1: -;; ld a2,80(a0) -;; add a1,a2,a1 -;; sb a3,4096(a1) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: slli a5, a2, 0x20 +;; 18: srli a1, a5, 0x20 +;; 1c: lui a5, 1 +;; 20: addi a2, a5, 1 +;; 24: sub a2, a4, a2 +;; 28: bltu a2, a1, 0x28 +;; 2c: ld a2, 0x50(a0) +;; 30: add a1, a2, a1 +;; 34: lui t6, 1 +;; 38: add t6, t6, a1 +;; 3c: sb a3, 0(t6) +;; 40: ld ra, 8(sp) +;; 44: ld s0, 0(sp) +;; 48: addi sp, sp, 0x10 +;; 4c: ret +;; 50: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a3,88(a0) -;; slli a5,a2,32 -;; srli a1,a5,32 -;; lui a5,1 -;; addi a2,a5,1 -;; sub a2,a3,a2 -;; bgtu a1,a2,taken(label3),not_taken(label1) -;; block1: -;; ld a2,80(a0) -;; add a1,a2,a1 -;; lbu a0,4096(a1) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 54: addi sp, sp, -0x10 +;; 58: sd ra, 8(sp) +;; 5c: sd s0, 0(sp) +;; 60: mv s0, sp +;; 64: ld a3, 0x58(a0) +;; 68: slli a5, a2, 0x20 +;; 6c: srli a1, a5, 0x20 +;; 70: lui a5, 1 +;; 74: addi a2, a5, 1 +;; 78: sub a2, a3, a2 +;; 7c: bltu a2, a1, 0x28 +;; 80: ld a2, 0x50(a0) +;; 84: add a1, a2, a1 +;; 88: lui t6, 1 +;; 8c: add t6, t6, a1 +;; 90: lbu a0, 0(t6) +;; 94: ld ra, 8(sp) +;; 98: ld s0, 0(sp) +;; 9c: addi sp, sp, 0x10 +;; a0: ret +;; a4: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat index 42bdf176ea1b..37abd355210c 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,46 +18,58 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; slli a1,a2,32 -;; srli a4,a1,32 -;; ld a2,[const(0)] -;; add a2,a4,a2 -;; trap_if heap_oob##(a2 ult a4) -;; ld a5,88(a0) -;; bgtu a2,a5,taken(label3),not_taken(label1) -;; block1: -;; ld a5,80(a0) -;; add a4,a5,a4 -;; lui a5,65535 -;; slli a5,a5,4 -;; add a4,a4,a5 -;; sb a3,0(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: slli a1, a2, 0x20 +;; 14: srli a4, a1, 0x20 +;; 18: auipc a2, 0 +;; 1c: ld a2, 0x48(a2) +;; 20: add a2, a4, a2 +;; 24: bgeu a2, a4, 8 +;; 28: .byte 0x00, 0x00, 0x00, 0x00 +;; 2c: ld a5, 0x58(a0) +;; 30: bltu a5, a2, 0x2c +;; 34: ld a5, 0x50(a0) +;; 38: add a4, a5, a4 +;; 3c: lui a5, 0xffff +;; 40: slli a5, a5, 4 +;; 44: add a4, a4, a5 +;; 48: sb a3, 0(a4) +;; 4c: ld ra, 8(sp) +;; 50: ld s0, 0(sp) +;; 54: addi sp, sp, 0x10 +;; 58: ret +;; 5c: .byte 0x00, 0x00, 0x00, 0x00 +;; 60: .byte 0x01, 0x00, 0xff, 0xff +;; 64: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; slli a1,a2,32 -;; srli a3,a1,32 -;; ld a2,[const(0)] -;; add a2,a3,a2 -;; trap_if heap_oob##(a2 ult a3) -;; ld a4,88(a0) -;; bgtu a2,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a4,a4,a3 -;; lui a3,65535 -;; slli a5,a3,4 -;; add a4,a4,a5 -;; lbu a0,0(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 68: addi sp, sp, -0x10 +;; 6c: sd ra, 8(sp) +;; 70: sd s0, 0(sp) +;; 74: mv s0, sp +;; 78: slli a1, a2, 0x20 +;; 7c: srli a3, a1, 0x20 +;; 80: auipc a2, 0 +;; 84: ld a2, 0x48(a2) +;; 88: add a2, a3, a2 +;; 8c: bgeu a2, a3, 8 +;; 90: .byte 0x00, 0x00, 0x00, 0x00 +;; 94: ld a4, 0x58(a0) +;; 98: bltu a4, a2, 0x2c +;; 9c: ld a4, 0x50(a0) +;; a0: add a4, a4, a3 +;; a4: lui a3, 0xffff +;; a8: slli a5, a3, 4 +;; ac: add a4, a4, a5 +;; b0: lbu a0, 0(a4) +;; b4: ld ra, 8(sp) +;; b8: ld s0, 0(sp) +;; bc: addi sp, sp, 0x10 +;; c0: ret +;; c4: .byte 0x00, 0x00, 0x00, 0x00 +;; c8: .byte 0x01, 0x00, 0xff, 0xff +;; cc: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat index e1bd04aaa959..3ae6afa1a3c6 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat @@ -18,36 +18,44 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; ld a0,80(a0) -;; slli a1,a2,32 -;; srli a5,a1,32 -;; addi a2,a4,-4 -;; sltu a4,a2,a5 -;; add a2,a0,a5 -;; sub a0,zero,a4 -;; not a4,a0 -;; and a4,a2,a4 -;; sw a3,0(a4) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: ld a0, 0x50(a0) +;; 18: slli a1, a2, 0x20 +;; 1c: srli a5, a1, 0x20 +;; 20: addi a2, a4, -4 +;; 24: sltu a4, a2, a5 +;; 28: add a2, a0, a5 +;; 2c: neg a0, a4 +;; 30: not a4, a0 +;; 34: and a4, a2, a4 +;; 38: sw a3, 0(a4) +;; 3c: ld ra, 8(sp) +;; 40: ld s0, 0(sp) +;; 44: addi sp, sp, 0x10 +;; 48: ret ;; -;; function u0:1: -;; block0: -;; ld a3,88(a0) -;; ld a5,80(a0) -;; slli a1,a2,32 -;; srli a4,a1,32 -;; addi a2,a3,-4 -;; sltu a3,a2,a4 -;; add a2,a5,a4 -;; sub a0,zero,a3 -;; not a3,a0 -;; and a4,a2,a3 -;; lw a0,0(a4) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 4c: addi sp, sp, -0x10 +;; 50: sd ra, 8(sp) +;; 54: sd s0, 0(sp) +;; 58: mv s0, sp +;; 5c: ld a3, 0x58(a0) +;; 60: ld a5, 0x50(a0) +;; 64: slli a1, a2, 0x20 +;; 68: srli a4, a1, 0x20 +;; 6c: addi a2, a3, -4 +;; 70: sltu a3, a2, a4 +;; 74: add a2, a5, a4 +;; 78: neg a0, a3 +;; 7c: not a3, a0 +;; 80: and a4, a2, a3 +;; 84: lw a0, 0(a4) +;; 88: ld ra, 8(sp) +;; 8c: ld s0, 0(sp) +;; 90: addi sp, sp, 0x10 +;; 94: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat index c2262872d623..fe4ed5459de7 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,44 +18,52 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a1,88(a0) -;; ld a0,80(a0) -;; slli a5,a2,32 -;; srli a2,a5,32 -;; lui a5,1 -;; addi a4,a5,4 -;; sub a1,a1,a4 -;; sltu a1,a1,a2 -;; add a0,a0,a2 -;; lui a2,1 -;; add a0,a0,a2 -;; sub a4,zero,a1 -;; not a1,a4 -;; and a2,a0,a1 -;; sw a3,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a1, 0x58(a0) +;; 14: ld a0, 0x50(a0) +;; 18: slli a5, a2, 0x20 +;; 1c: srli a2, a5, 0x20 +;; 20: lui a5, 1 +;; 24: addi a4, a5, 4 +;; 28: sub a1, a1, a4 +;; 2c: sltu a1, a1, a2 +;; 30: add a0, a0, a2 +;; 34: lui a2, 1 +;; 38: add a0, a0, a2 +;; 3c: neg a4, a1 +;; 40: not a1, a4 +;; 44: and a2, a0, a1 +;; 48: sw a3, 0(a2) +;; 4c: ld ra, 8(sp) +;; 50: ld s0, 0(sp) +;; 54: addi sp, sp, 0x10 +;; 58: ret ;; -;; function u0:1: -;; block0: -;; ld a1,88(a0) -;; ld a0,80(a0) -;; slli a5,a2,32 -;; srli a2,a5,32 -;; lui a5,1 -;; addi a3,a5,4 -;; sub a1,a1,a3 -;; sltu a1,a1,a2 -;; add a0,a0,a2 -;; lui a2,1 -;; add a0,a0,a2 -;; sub a4,zero,a1 -;; not a1,a4 -;; and a2,a0,a1 -;; lw a0,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 5c: addi sp, sp, -0x10 +;; 60: sd ra, 8(sp) +;; 64: sd s0, 0(sp) +;; 68: mv s0, sp +;; 6c: ld a1, 0x58(a0) +;; 70: ld a0, 0x50(a0) +;; 74: slli a5, a2, 0x20 +;; 78: srli a2, a5, 0x20 +;; 7c: lui a5, 1 +;; 80: addi a3, a5, 4 +;; 84: sub a1, a1, a3 +;; 88: sltu a1, a1, a2 +;; 8c: add a0, a0, a2 +;; 90: lui a2, 1 +;; 94: add a0, a0, a2 +;; 98: neg a4, a1 +;; 9c: not a1, a4 +;; a0: and a2, a0, a1 +;; a4: lw a0, 0(a2) +;; a8: ld ra, 8(sp) +;; ac: ld s0, 0(sp) +;; b0: addi sp, sp, 0x10 +;; b4: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 00d449f10a49..72987d86d4ab 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,50 +18,60 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; slli a1,a2,32 -;; srli a4,a1,32 -;; lui a1,262140 -;; addi a2,a1,1 -;; slli a5,a2,2 -;; add a2,a4,a5 -;; trap_if heap_oob##(a2 ult a4) -;; ld a5,88(a0) -;; ld a0,80(a0) -;; sltu a5,a5,a2 -;; add a4,a0,a4 -;; lui a2,65535 -;; slli a0,a2,4 -;; add a4,a4,a0 -;; sub a1,zero,a5 -;; not a5,a1 -;; and a5,a4,a5 -;; sw a3,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: slli a1, a2, 0x20 +;; 14: srli a4, a1, 0x20 +;; 18: lui a1, 0x3fffc +;; 1c: addi a2, a1, 1 +;; 20: slli a5, a2, 2 +;; 24: add a2, a4, a5 +;; 28: bgeu a2, a4, 8 +;; 2c: .byte 0x00, 0x00, 0x00, 0x00 +;; 30: ld a5, 0x58(a0) +;; 34: ld a0, 0x50(a0) +;; 38: sltu a5, a5, a2 +;; 3c: add a4, a0, a4 +;; 40: lui a2, 0xffff +;; 44: slli a0, a2, 4 +;; 48: add a4, a4, a0 +;; 4c: neg a1, a5 +;; 50: not a5, a1 +;; 54: and a5, a4, a5 +;; 58: sw a3, 0(a5) +;; 5c: ld ra, 8(sp) +;; 60: ld s0, 0(sp) +;; 64: addi sp, sp, 0x10 +;; 68: ret ;; -;; function u0:1: -;; block0: -;; slli a1,a2,32 -;; srli a3,a1,32 -;; lui a1,262140 -;; addi a2,a1,1 -;; slli a4,a2,2 -;; add a2,a3,a4 -;; trap_if heap_oob##(a2 ult a3) -;; ld a4,88(a0) -;; ld a5,80(a0) -;; sltu a4,a4,a2 -;; add a3,a5,a3 -;; lui a2,65535 -;; slli a5,a2,4 -;; add a3,a3,a5 -;; sub a1,zero,a4 -;; not a4,a1 -;; and a5,a3,a4 -;; lw a0,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 6c: addi sp, sp, -0x10 +;; 70: sd ra, 8(sp) +;; 74: sd s0, 0(sp) +;; 78: mv s0, sp +;; 7c: slli a1, a2, 0x20 +;; 80: srli a3, a1, 0x20 +;; 84: lui a1, 0x3fffc +;; 88: addi a2, a1, 1 +;; 8c: slli a4, a2, 2 +;; 90: add a2, a3, a4 +;; 94: bgeu a2, a3, 8 +;; 98: .byte 0x00, 0x00, 0x00, 0x00 +;; 9c: ld a4, 0x58(a0) +;; a0: ld a5, 0x50(a0) +;; a4: sltu a4, a4, a2 +;; a8: add a3, a5, a3 +;; ac: lui a2, 0xffff +;; b0: slli a5, a2, 4 +;; b4: add a3, a3, a5 +;; b8: neg a1, a4 +;; bc: not a4, a1 +;; c0: and a5, a3, a4 +;; c4: lw a0, 0(a5) +;; c8: ld ra, 8(sp) +;; cc: ld s0, 0(sp) +;; d0: addi sp, sp, 0x10 +;; d4: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat index 28b62303b613..7631959d9bc1 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat @@ -18,36 +18,44 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; ld a0,80(a0) -;; slli a1,a2,32 -;; srli a5,a1,32 -;; sltu a1,a5,a4 -;; xori a4,a1,1 -;; add a2,a0,a5 -;; sub a0,zero,a4 -;; not a4,a0 -;; and a4,a2,a4 -;; sb a3,0(a4) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: ld a0, 0x50(a0) +;; 18: slli a1, a2, 0x20 +;; 1c: srli a5, a1, 0x20 +;; 20: sltu a1, a5, a4 +;; 24: xori a4, a1, 1 +;; 28: add a2, a0, a5 +;; 2c: neg a0, a4 +;; 30: not a4, a0 +;; 34: and a4, a2, a4 +;; 38: sb a3, 0(a4) +;; 3c: ld ra, 8(sp) +;; 40: ld s0, 0(sp) +;; 44: addi sp, sp, 0x10 +;; 48: ret ;; -;; function u0:1: -;; block0: -;; ld a3,88(a0) -;; ld a5,80(a0) -;; slli a1,a2,32 -;; srli a4,a1,32 -;; sltu a1,a4,a3 -;; xori a3,a1,1 -;; add a2,a5,a4 -;; sub a0,zero,a3 -;; not a3,a0 -;; and a4,a2,a3 -;; lbu a0,0(a4) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 4c: addi sp, sp, -0x10 +;; 50: sd ra, 8(sp) +;; 54: sd s0, 0(sp) +;; 58: mv s0, sp +;; 5c: ld a3, 0x58(a0) +;; 60: ld a5, 0x50(a0) +;; 64: slli a1, a2, 0x20 +;; 68: srli a4, a1, 0x20 +;; 6c: sltu a1, a4, a3 +;; 70: xori a3, a1, 1 +;; 74: add a2, a5, a4 +;; 78: neg a0, a3 +;; 7c: not a3, a0 +;; 80: and a4, a2, a3 +;; 84: lbu a0, 0(a4) +;; 88: ld ra, 8(sp) +;; 8c: ld s0, 0(sp) +;; 90: addi sp, sp, 0x10 +;; 94: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat index 2f65f626e049..ea89c606b78f 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,44 +18,52 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a1,88(a0) -;; ld a0,80(a0) -;; slli a5,a2,32 -;; srli a2,a5,32 -;; lui a5,1 -;; addi a4,a5,1 -;; sub a1,a1,a4 -;; sltu a1,a1,a2 -;; add a0,a0,a2 -;; lui a2,1 -;; add a0,a0,a2 -;; sub a4,zero,a1 -;; not a1,a4 -;; and a2,a0,a1 -;; sb a3,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a1, 0x58(a0) +;; 14: ld a0, 0x50(a0) +;; 18: slli a5, a2, 0x20 +;; 1c: srli a2, a5, 0x20 +;; 20: lui a5, 1 +;; 24: addi a4, a5, 1 +;; 28: sub a1, a1, a4 +;; 2c: sltu a1, a1, a2 +;; 30: add a0, a0, a2 +;; 34: lui a2, 1 +;; 38: add a0, a0, a2 +;; 3c: neg a4, a1 +;; 40: not a1, a4 +;; 44: and a2, a0, a1 +;; 48: sb a3, 0(a2) +;; 4c: ld ra, 8(sp) +;; 50: ld s0, 0(sp) +;; 54: addi sp, sp, 0x10 +;; 58: ret ;; -;; function u0:1: -;; block0: -;; ld a1,88(a0) -;; ld a0,80(a0) -;; slli a5,a2,32 -;; srli a2,a5,32 -;; lui a5,1 -;; addi a3,a5,1 -;; sub a1,a1,a3 -;; sltu a1,a1,a2 -;; add a0,a0,a2 -;; lui a2,1 -;; add a0,a0,a2 -;; sub a4,zero,a1 -;; not a1,a4 -;; and a2,a0,a1 -;; lbu a0,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 5c: addi sp, sp, -0x10 +;; 60: sd ra, 8(sp) +;; 64: sd s0, 0(sp) +;; 68: mv s0, sp +;; 6c: ld a1, 0x58(a0) +;; 70: ld a0, 0x50(a0) +;; 74: slli a5, a2, 0x20 +;; 78: srli a2, a5, 0x20 +;; 7c: lui a5, 1 +;; 80: addi a3, a5, 1 +;; 84: sub a1, a1, a3 +;; 88: sltu a1, a1, a2 +;; 8c: add a0, a0, a2 +;; 90: lui a2, 1 +;; 94: add a0, a0, a2 +;; 98: neg a4, a1 +;; 9c: not a1, a4 +;; a0: and a2, a0, a1 +;; a4: lbu a0, 0(a2) +;; a8: ld ra, 8(sp) +;; ac: ld s0, 0(sp) +;; b0: addi sp, sp, 0x10 +;; b4: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat index d417e1bfaeb3..93dd4b3592cf 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,46 +18,62 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; slli a5,a2,32 -;; srli a1,a5,32 -;; ld a2,[const(0)] -;; add a2,a1,a2 -;; trap_if heap_oob##(a2 ult a1) -;; ld a4,88(a0) -;; ld a5,80(a0) -;; sltu a2,a4,a2 -;; add a1,a5,a1 -;; lui a0,65535 -;; slli a4,a0,4 -;; add a1,a1,a4 -;; sub a5,zero,a2 -;; not a2,a5 -;; and a4,a1,a2 -;; sb a3,0(a4) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: slli a5, a2, 0x20 +;; 14: srli a1, a5, 0x20 +;; 18: auipc a2, 0 +;; 1c: ld a2, 0x50(a2) +;; 20: add a2, a1, a2 +;; 24: bgeu a2, a1, 8 +;; 28: .byte 0x00, 0x00, 0x00, 0x00 +;; 2c: ld a4, 0x58(a0) +;; 30: ld a5, 0x50(a0) +;; 34: sltu a2, a4, a2 +;; 38: add a1, a5, a1 +;; 3c: lui a0, 0xffff +;; 40: slli a4, a0, 4 +;; 44: add a1, a1, a4 +;; 48: neg a5, a2 +;; 4c: not a2, a5 +;; 50: and a4, a1, a2 +;; 54: sb a3, 0(a4) +;; 58: ld ra, 8(sp) +;; 5c: ld s0, 0(sp) +;; 60: addi sp, sp, 0x10 +;; 64: ret +;; 68: .byte 0x01, 0x00, 0xff, 0xff +;; 6c: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; slli a5,a2,32 -;; srli a1,a5,32 -;; ld a2,[const(0)] -;; add a2,a1,a2 -;; trap_if heap_oob##(a2 ult a1) -;; ld a3,88(a0) -;; ld a4,80(a0) -;; sltu a2,a3,a2 -;; add a1,a4,a1 -;; lui a0,65535 -;; slli a3,a0,4 -;; add a1,a1,a3 -;; sub a5,zero,a2 -;; not a2,a5 -;; and a3,a1,a2 -;; lbu a0,0(a3) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 70: addi sp, sp, -0x10 +;; 74: sd ra, 8(sp) +;; 78: sd s0, 0(sp) +;; 7c: mv s0, sp +;; 80: slli a5, a2, 0x20 +;; 84: srli a1, a5, 0x20 +;; 88: auipc a2, 0 +;; 8c: ld a2, 0x50(a2) +;; 90: add a2, a1, a2 +;; 94: bgeu a2, a1, 8 +;; 98: .byte 0x00, 0x00, 0x00, 0x00 +;; 9c: ld a3, 0x58(a0) +;; a0: ld a4, 0x50(a0) +;; a4: sltu a2, a3, a2 +;; a8: add a1, a4, a1 +;; ac: lui a0, 0xffff +;; b0: slli a3, a0, 4 +;; b4: add a1, a1, a3 +;; b8: neg a5, a2 +;; bc: not a2, a5 +;; c0: and a3, a1, a2 +;; c4: lbu a0, 0(a3) +;; c8: ld ra, 8(sp) +;; cc: ld s0, 0(sp) +;; d0: addi sp, sp, 0x10 +;; d4: ret +;; d8: .byte 0x01, 0x00, 0xff, 0xff +;; dc: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat index 18b83b1a781a..31cfd2415d86 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat @@ -18,34 +18,38 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; slli a2,a2,32 -;; srli a5,a2,32 -;; bgtu a5,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a4,a4,a5 -;; sw a3,0(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: slli a2, a2, 0x20 +;; 18: srli a5, a2, 0x20 +;; 1c: bltu a4, a5, 0x20 +;; 20: ld a4, 0x50(a0) +;; 24: add a4, a4, a5 +;; 28: sw a3, 0(a4) +;; 2c: ld ra, 8(sp) +;; 30: ld s0, 0(sp) +;; 34: addi sp, sp, 0x10 +;; 38: ret +;; 3c: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a3,88(a0) -;; slli a2,a2,32 -;; srli a4,a2,32 -;; bgtu a4,a3,taken(label3),not_taken(label1) -;; block1: -;; ld a5,80(a0) -;; add a4,a5,a4 -;; lw a0,0(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 40: addi sp, sp, -0x10 +;; 44: sd ra, 8(sp) +;; 48: sd s0, 0(sp) +;; 4c: mv s0, sp +;; 50: ld a3, 0x58(a0) +;; 54: slli a2, a2, 0x20 +;; 58: srli a4, a2, 0x20 +;; 5c: bltu a3, a4, 0x20 +;; 60: ld a5, 0x50(a0) +;; 64: add a4, a5, a4 +;; 68: lw a0, 0(a4) +;; 6c: ld ra, 8(sp) +;; 70: ld s0, 0(sp) +;; 74: addi sp, sp, 0x10 +;; 78: ret +;; 7c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat index a30f7c44142c..2c1c2814cae2 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,34 +18,42 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; slli a2,a2,32 -;; srli a5,a2,32 -;; bgtu a5,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a4,a4,a5 -;; sw a3,4096(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: slli a2, a2, 0x20 +;; 18: srli a5, a2, 0x20 +;; 1c: bltu a4, a5, 0x28 +;; 20: ld a4, 0x50(a0) +;; 24: add a4, a4, a5 +;; 28: lui t6, 1 +;; 2c: add t6, t6, a4 +;; 30: sw a3, 0(t6) +;; 34: ld ra, 8(sp) +;; 38: ld s0, 0(sp) +;; 3c: addi sp, sp, 0x10 +;; 40: ret +;; 44: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a3,88(a0) -;; slli a2,a2,32 -;; srli a4,a2,32 -;; bgtu a4,a3,taken(label3),not_taken(label1) -;; block1: -;; ld a5,80(a0) -;; add a4,a5,a4 -;; lw a0,4096(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 48: addi sp, sp, -0x10 +;; 4c: sd ra, 8(sp) +;; 50: sd s0, 0(sp) +;; 54: mv s0, sp +;; 58: ld a3, 0x58(a0) +;; 5c: slli a2, a2, 0x20 +;; 60: srli a4, a2, 0x20 +;; 64: bltu a3, a4, 0x28 +;; 68: ld a5, 0x50(a0) +;; 6c: add a4, a5, a4 +;; 70: lui t6, 1 +;; 74: add t6, t6, a4 +;; 78: lw a0, 0(t6) +;; 7c: ld ra, 8(sp) +;; 80: ld s0, 0(sp) +;; 84: addi sp, sp, 0x10 +;; 88: ret +;; 8c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat index 986873fe5a2b..ac113e6817a5 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,40 +18,44 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ld a1,88(a0) -;; slli a5,a2,32 -;; srli a2,a5,32 -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a1,80(a0) -;; add a1,a1,a2 -;; lui a0,65535 -;; slli a2,a0,4 -;; add a1,a1,a2 -;; sw a3,0(a1) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a1, 0x58(a0) +;; 14: slli a5, a2, 0x20 +;; 18: srli a2, a5, 0x20 +;; 1c: bltu a1, a2, 0x2c +;; 20: ld a1, 0x50(a0) +;; 24: add a1, a1, a2 +;; 28: lui a0, 0xffff +;; 2c: slli a2, a0, 4 +;; 30: add a1, a1, a2 +;; 34: sw a3, 0(a1) +;; 38: ld ra, 8(sp) +;; 3c: ld s0, 0(sp) +;; 40: addi sp, sp, 0x10 +;; 44: ret +;; 48: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a1,88(a0) -;; slli a5,a2,32 -;; srli a2,a5,32 -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a1,80(a0) -;; add a1,a1,a2 -;; lui a0,65535 -;; slli a2,a0,4 -;; add a1,a1,a2 -;; lw a0,0(a1) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 4c: addi sp, sp, -0x10 +;; 50: sd ra, 8(sp) +;; 54: sd s0, 0(sp) +;; 58: mv s0, sp +;; 5c: ld a1, 0x58(a0) +;; 60: slli a5, a2, 0x20 +;; 64: srli a2, a5, 0x20 +;; 68: bltu a1, a2, 0x2c +;; 6c: ld a1, 0x50(a0) +;; 70: add a1, a1, a2 +;; 74: lui a0, 0xffff +;; 78: slli a2, a0, 4 +;; 7c: add a1, a1, a2 +;; 80: lw a0, 0(a1) +;; 84: ld ra, 8(sp) +;; 88: ld s0, 0(sp) +;; 8c: addi sp, sp, 0x10 +;; 90: ret +;; 94: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat index b4d09f6c631f..e3fbe837dda7 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat @@ -18,34 +18,38 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; slli a2,a2,32 -;; srli a5,a2,32 -;; bgeu a5,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a4,a4,a5 -;; sb a3,0(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: slli a2, a2, 0x20 +;; 18: srli a5, a2, 0x20 +;; 1c: bgeu a5, a4, 0x20 +;; 20: ld a4, 0x50(a0) +;; 24: add a4, a4, a5 +;; 28: sb a3, 0(a4) +;; 2c: ld ra, 8(sp) +;; 30: ld s0, 0(sp) +;; 34: addi sp, sp, 0x10 +;; 38: ret +;; 3c: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a3,88(a0) -;; slli a2,a2,32 -;; srli a4,a2,32 -;; bgeu a4,a3,taken(label3),not_taken(label1) -;; block1: -;; ld a5,80(a0) -;; add a4,a5,a4 -;; lbu a0,0(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 40: addi sp, sp, -0x10 +;; 44: sd ra, 8(sp) +;; 48: sd s0, 0(sp) +;; 4c: mv s0, sp +;; 50: ld a3, 0x58(a0) +;; 54: slli a2, a2, 0x20 +;; 58: srli a4, a2, 0x20 +;; 5c: bgeu a4, a3, 0x20 +;; 60: ld a5, 0x50(a0) +;; 64: add a4, a5, a4 +;; 68: lbu a0, 0(a4) +;; 6c: ld ra, 8(sp) +;; 70: ld s0, 0(sp) +;; 74: addi sp, sp, 0x10 +;; 78: ret +;; 7c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat index 2c90cdd72d0c..1c1b3b1e80cf 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,34 +18,42 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; slli a2,a2,32 -;; srli a5,a2,32 -;; bgtu a5,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a4,a4,a5 -;; sb a3,4096(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: slli a2, a2, 0x20 +;; 18: srli a5, a2, 0x20 +;; 1c: bltu a4, a5, 0x28 +;; 20: ld a4, 0x50(a0) +;; 24: add a4, a4, a5 +;; 28: lui t6, 1 +;; 2c: add t6, t6, a4 +;; 30: sb a3, 0(t6) +;; 34: ld ra, 8(sp) +;; 38: ld s0, 0(sp) +;; 3c: addi sp, sp, 0x10 +;; 40: ret +;; 44: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a3,88(a0) -;; slli a2,a2,32 -;; srli a4,a2,32 -;; bgtu a4,a3,taken(label3),not_taken(label1) -;; block1: -;; ld a5,80(a0) -;; add a4,a5,a4 -;; lbu a0,4096(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 48: addi sp, sp, -0x10 +;; 4c: sd ra, 8(sp) +;; 50: sd s0, 0(sp) +;; 54: mv s0, sp +;; 58: ld a3, 0x58(a0) +;; 5c: slli a2, a2, 0x20 +;; 60: srli a4, a2, 0x20 +;; 64: bltu a3, a4, 0x28 +;; 68: ld a5, 0x50(a0) +;; 6c: add a4, a5, a4 +;; 70: lui t6, 1 +;; 74: add t6, t6, a4 +;; 78: lbu a0, 0(t6) +;; 7c: ld ra, 8(sp) +;; 80: ld s0, 0(sp) +;; 84: addi sp, sp, 0x10 +;; 88: ret +;; 8c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat index da557596541d..fd7a7c7836dc 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,40 +18,44 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ld a1,88(a0) -;; slli a5,a2,32 -;; srli a2,a5,32 -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a1,80(a0) -;; add a1,a1,a2 -;; lui a0,65535 -;; slli a2,a0,4 -;; add a1,a1,a2 -;; sb a3,0(a1) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a1, 0x58(a0) +;; 14: slli a5, a2, 0x20 +;; 18: srli a2, a5, 0x20 +;; 1c: bltu a1, a2, 0x2c +;; 20: ld a1, 0x50(a0) +;; 24: add a1, a1, a2 +;; 28: lui a0, 0xffff +;; 2c: slli a2, a0, 4 +;; 30: add a1, a1, a2 +;; 34: sb a3, 0(a1) +;; 38: ld ra, 8(sp) +;; 3c: ld s0, 0(sp) +;; 40: addi sp, sp, 0x10 +;; 44: ret +;; 48: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a1,88(a0) -;; slli a5,a2,32 -;; srli a2,a5,32 -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a1,80(a0) -;; add a1,a1,a2 -;; lui a0,65535 -;; slli a2,a0,4 -;; add a1,a1,a2 -;; lbu a0,0(a1) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 4c: addi sp, sp, -0x10 +;; 50: sd ra, 8(sp) +;; 54: sd s0, 0(sp) +;; 58: mv s0, sp +;; 5c: ld a1, 0x58(a0) +;; 60: slli a5, a2, 0x20 +;; 64: srli a2, a5, 0x20 +;; 68: bltu a1, a2, 0x2c +;; 6c: ld a1, 0x50(a0) +;; 70: add a1, a1, a2 +;; 74: lui a0, 0xffff +;; 78: slli a2, a0, 4 +;; 7c: add a1, a1, a2 +;; 80: lbu a0, 0(a1) +;; 84: ld ra, 8(sp) +;; 88: ld s0, 0(sp) +;; 8c: addi sp, sp, 0x10 +;; 90: ret +;; 94: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat index 5826a811115d..7cd97eb9bffa 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat @@ -18,34 +18,42 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ld a1,88(a0) -;; ld a4,80(a0) -;; slli a0,a2,32 -;; srli a2,a0,32 -;; sltu a5,a1,a2 -;; add a1,a4,a2 -;; sub a5,zero,a5 -;; not a2,a5 -;; and a4,a1,a2 -;; sw a3,0(a4) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a1, 0x58(a0) +;; 14: ld a4, 0x50(a0) +;; 18: slli a0, a2, 0x20 +;; 1c: srli a2, a0, 0x20 +;; 20: sltu a5, a1, a2 +;; 24: add a1, a4, a2 +;; 28: neg a5, a5 +;; 2c: not a2, a5 +;; 30: and a4, a1, a2 +;; 34: sw a3, 0(a4) +;; 38: ld ra, 8(sp) +;; 3c: ld s0, 0(sp) +;; 40: addi sp, sp, 0x10 +;; 44: ret ;; -;; function u0:1: -;; block0: -;; ld a1,88(a0) -;; ld a3,80(a0) -;; slli a0,a2,32 -;; srli a2,a0,32 -;; sltu a4,a1,a2 -;; add a1,a3,a2 -;; sub a5,zero,a4 -;; not a2,a5 -;; and a3,a1,a2 -;; lw a0,0(a3) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 48: addi sp, sp, -0x10 +;; 4c: sd ra, 8(sp) +;; 50: sd s0, 0(sp) +;; 54: mv s0, sp +;; 58: ld a1, 0x58(a0) +;; 5c: ld a3, 0x50(a0) +;; 60: slli a0, a2, 0x20 +;; 64: srli a2, a0, 0x20 +;; 68: sltu a4, a1, a2 +;; 6c: add a1, a3, a2 +;; 70: neg a5, a4 +;; 74: not a2, a5 +;; 78: and a3, a1, a2 +;; 7c: lw a0, 0(a3) +;; 80: ld ra, 8(sp) +;; 84: ld s0, 0(sp) +;; 88: addi sp, sp, 0x10 +;; 8c: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat index e2a423405236..99b3f1fc3e46 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,38 +18,46 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; ld a5,80(a0) -;; slli a2,a2,32 -;; srli a0,a2,32 -;; sltu a4,a4,a0 -;; add a5,a5,a0 -;; lui a0,1 -;; add a5,a5,a0 -;; sub a1,zero,a4 -;; not a4,a1 -;; and a5,a5,a4 -;; sw a3,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: ld a5, 0x50(a0) +;; 18: slli a2, a2, 0x20 +;; 1c: srli a0, a2, 0x20 +;; 20: sltu a4, a4, a0 +;; 24: add a5, a5, a0 +;; 28: lui a0, 1 +;; 2c: add a5, a5, a0 +;; 30: neg a1, a4 +;; 34: not a4, a1 +;; 38: and a5, a5, a4 +;; 3c: sw a3, 0(a5) +;; 40: ld ra, 8(sp) +;; 44: ld s0, 0(sp) +;; 48: addi sp, sp, 0x10 +;; 4c: ret ;; -;; function u0:1: -;; block0: -;; ld a3,88(a0) -;; ld a4,80(a0) -;; slli a2,a2,32 -;; srli a5,a2,32 -;; sltu a3,a3,a5 -;; add a4,a4,a5 -;; lui a5,1 -;; add a4,a4,a5 -;; sub a1,zero,a3 -;; not a3,a1 -;; and a5,a4,a3 -;; lw a0,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 50: addi sp, sp, -0x10 +;; 54: sd ra, 8(sp) +;; 58: sd s0, 0(sp) +;; 5c: mv s0, sp +;; 60: ld a3, 0x58(a0) +;; 64: ld a4, 0x50(a0) +;; 68: slli a2, a2, 0x20 +;; 6c: srli a5, a2, 0x20 +;; 70: sltu a3, a3, a5 +;; 74: add a4, a4, a5 +;; 78: lui a5, 1 +;; 7c: add a4, a4, a5 +;; 80: neg a1, a3 +;; 84: not a3, a1 +;; 88: and a5, a4, a3 +;; 8c: lw a0, 0(a5) +;; 90: ld ra, 8(sp) +;; 94: ld s0, 0(sp) +;; 98: addi sp, sp, 0x10 +;; 9c: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat index b2d489790679..8f73d7baf5a7 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,40 +18,48 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; ld a5,80(a0) -;; slli a0,a2,32 -;; srli a0,a0,32 -;; sltu a4,a4,a0 -;; add a5,a5,a0 -;; lui a0,65535 -;; slli a0,a0,4 -;; add a5,a5,a0 -;; sub a2,zero,a4 -;; not a4,a2 -;; and a0,a5,a4 -;; sw a3,0(a0) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: ld a5, 0x50(a0) +;; 18: slli a0, a2, 0x20 +;; 1c: srli a0, a0, 0x20 +;; 20: sltu a4, a4, a0 +;; 24: add a5, a5, a0 +;; 28: lui a0, 0xffff +;; 2c: slli a0, a0, 4 +;; 30: add a5, a5, a0 +;; 34: neg a2, a4 +;; 38: not a4, a2 +;; 3c: and a0, a5, a4 +;; 40: sw a3, 0(a0) +;; 44: ld ra, 8(sp) +;; 48: ld s0, 0(sp) +;; 4c: addi sp, sp, 0x10 +;; 50: ret ;; -;; function u0:1: -;; block0: -;; ld a4,88(a0) -;; ld a5,80(a0) -;; slli a3,a2,32 -;; srli a0,a3,32 -;; sltu a4,a4,a0 -;; add a5,a5,a0 -;; lui a3,65535 -;; slli a0,a3,4 -;; add a5,a5,a0 -;; sub a2,zero,a4 -;; not a4,a2 -;; and a0,a5,a4 -;; lw a0,0(a0) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 54: addi sp, sp, -0x10 +;; 58: sd ra, 8(sp) +;; 5c: sd s0, 0(sp) +;; 60: mv s0, sp +;; 64: ld a4, 0x58(a0) +;; 68: ld a5, 0x50(a0) +;; 6c: slli a3, a2, 0x20 +;; 70: srli a0, a3, 0x20 +;; 74: sltu a4, a4, a0 +;; 78: add a5, a5, a0 +;; 7c: lui a3, 0xffff +;; 80: slli a0, a3, 4 +;; 84: add a5, a5, a0 +;; 88: neg a2, a4 +;; 8c: not a4, a2 +;; 90: and a0, a5, a4 +;; 94: lw a0, 0(a0) +;; 98: ld ra, 8(sp) +;; 9c: ld s0, 0(sp) +;; a0: addi sp, sp, 0x10 +;; a4: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat index c53d1cea9aec..e8ec0fae5701 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat @@ -18,36 +18,44 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; ld a0,80(a0) -;; slli a1,a2,32 -;; srli a5,a1,32 -;; sltu a1,a5,a4 -;; xori a4,a1,1 -;; add a2,a0,a5 -;; sub a0,zero,a4 -;; not a4,a0 -;; and a4,a2,a4 -;; sb a3,0(a4) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: ld a0, 0x50(a0) +;; 18: slli a1, a2, 0x20 +;; 1c: srli a5, a1, 0x20 +;; 20: sltu a1, a5, a4 +;; 24: xori a4, a1, 1 +;; 28: add a2, a0, a5 +;; 2c: neg a0, a4 +;; 30: not a4, a0 +;; 34: and a4, a2, a4 +;; 38: sb a3, 0(a4) +;; 3c: ld ra, 8(sp) +;; 40: ld s0, 0(sp) +;; 44: addi sp, sp, 0x10 +;; 48: ret ;; -;; function u0:1: -;; block0: -;; ld a3,88(a0) -;; ld a5,80(a0) -;; slli a1,a2,32 -;; srli a4,a1,32 -;; sltu a1,a4,a3 -;; xori a3,a1,1 -;; add a2,a5,a4 -;; sub a0,zero,a3 -;; not a3,a0 -;; and a4,a2,a3 -;; lbu a0,0(a4) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 4c: addi sp, sp, -0x10 +;; 50: sd ra, 8(sp) +;; 54: sd s0, 0(sp) +;; 58: mv s0, sp +;; 5c: ld a3, 0x58(a0) +;; 60: ld a5, 0x50(a0) +;; 64: slli a1, a2, 0x20 +;; 68: srli a4, a1, 0x20 +;; 6c: sltu a1, a4, a3 +;; 70: xori a3, a1, 1 +;; 74: add a2, a5, a4 +;; 78: neg a0, a3 +;; 7c: not a3, a0 +;; 80: and a4, a2, a3 +;; 84: lbu a0, 0(a4) +;; 88: ld ra, 8(sp) +;; 8c: ld s0, 0(sp) +;; 90: addi sp, sp, 0x10 +;; 94: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat index c59a5fc425e1..41e410244881 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,38 +18,46 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; ld a5,80(a0) -;; slli a2,a2,32 -;; srli a0,a2,32 -;; sltu a4,a4,a0 -;; add a5,a5,a0 -;; lui a0,1 -;; add a5,a5,a0 -;; sub a1,zero,a4 -;; not a4,a1 -;; and a5,a5,a4 -;; sb a3,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: ld a5, 0x50(a0) +;; 18: slli a2, a2, 0x20 +;; 1c: srli a0, a2, 0x20 +;; 20: sltu a4, a4, a0 +;; 24: add a5, a5, a0 +;; 28: lui a0, 1 +;; 2c: add a5, a5, a0 +;; 30: neg a1, a4 +;; 34: not a4, a1 +;; 38: and a5, a5, a4 +;; 3c: sb a3, 0(a5) +;; 40: ld ra, 8(sp) +;; 44: ld s0, 0(sp) +;; 48: addi sp, sp, 0x10 +;; 4c: ret ;; -;; function u0:1: -;; block0: -;; ld a3,88(a0) -;; ld a4,80(a0) -;; slli a2,a2,32 -;; srli a5,a2,32 -;; sltu a3,a3,a5 -;; add a4,a4,a5 -;; lui a5,1 -;; add a4,a4,a5 -;; sub a1,zero,a3 -;; not a3,a1 -;; and a5,a4,a3 -;; lbu a0,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 50: addi sp, sp, -0x10 +;; 54: sd ra, 8(sp) +;; 58: sd s0, 0(sp) +;; 5c: mv s0, sp +;; 60: ld a3, 0x58(a0) +;; 64: ld a4, 0x50(a0) +;; 68: slli a2, a2, 0x20 +;; 6c: srli a5, a2, 0x20 +;; 70: sltu a3, a3, a5 +;; 74: add a4, a4, a5 +;; 78: lui a5, 1 +;; 7c: add a4, a4, a5 +;; 80: neg a1, a3 +;; 84: not a3, a1 +;; 88: and a5, a4, a3 +;; 8c: lbu a0, 0(a5) +;; 90: ld ra, 8(sp) +;; 94: ld s0, 0(sp) +;; 98: addi sp, sp, 0x10 +;; 9c: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat index c1b581f2e9fd..56c08f4187bc 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,40 +18,48 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; ld a5,80(a0) -;; slli a0,a2,32 -;; srli a0,a0,32 -;; sltu a4,a4,a0 -;; add a5,a5,a0 -;; lui a0,65535 -;; slli a0,a0,4 -;; add a5,a5,a0 -;; sub a2,zero,a4 -;; not a4,a2 -;; and a0,a5,a4 -;; sb a3,0(a0) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: ld a5, 0x50(a0) +;; 18: slli a0, a2, 0x20 +;; 1c: srli a0, a0, 0x20 +;; 20: sltu a4, a4, a0 +;; 24: add a5, a5, a0 +;; 28: lui a0, 0xffff +;; 2c: slli a0, a0, 4 +;; 30: add a5, a5, a0 +;; 34: neg a2, a4 +;; 38: not a4, a2 +;; 3c: and a0, a5, a4 +;; 40: sb a3, 0(a0) +;; 44: ld ra, 8(sp) +;; 48: ld s0, 0(sp) +;; 4c: addi sp, sp, 0x10 +;; 50: ret ;; -;; function u0:1: -;; block0: -;; ld a4,88(a0) -;; ld a5,80(a0) -;; slli a3,a2,32 -;; srli a0,a3,32 -;; sltu a4,a4,a0 -;; add a5,a5,a0 -;; lui a3,65535 -;; slli a0,a3,4 -;; add a5,a5,a0 -;; sub a2,zero,a4 -;; not a4,a2 -;; and a0,a5,a4 -;; lbu a0,0(a0) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 54: addi sp, sp, -0x10 +;; 58: sd ra, 8(sp) +;; 5c: sd s0, 0(sp) +;; 60: mv s0, sp +;; 64: ld a4, 0x58(a0) +;; 68: ld a5, 0x50(a0) +;; 6c: slli a3, a2, 0x20 +;; 70: srli a0, a3, 0x20 +;; 74: sltu a4, a4, a0 +;; 78: add a5, a5, a0 +;; 7c: lui a3, 0xffff +;; 80: slli a0, a3, 4 +;; 84: add a5, a5, a0 +;; 88: neg a2, a4 +;; 8c: not a4, a2 +;; 90: and a0, a5, a4 +;; 94: lbu a0, 0(a0) +;; 98: ld ra, 8(sp) +;; 9c: ld s0, 0(sp) +;; a0: addi sp, sp, 0x10 +;; a4: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat index 58f4fac6f90a..785676ac3b45 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat @@ -18,32 +18,36 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; addi a4,a4,-4 -;; bgtu a2,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a4,a4,a2 -;; sw a3,0(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: addi a4, a4, -4 +;; 18: bltu a4, a2, 0x20 +;; 1c: ld a4, 0x50(a0) +;; 20: add a4, a4, a2 +;; 24: sw a3, 0(a4) +;; 28: ld ra, 8(sp) +;; 2c: ld s0, 0(sp) +;; 30: addi sp, sp, 0x10 +;; 34: ret +;; 38: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a3,88(a0) -;; addi a3,a3,-4 -;; bgtu a2,a3,taken(label3),not_taken(label1) -;; block1: -;; ld a3,80(a0) -;; add a3,a3,a2 -;; lw a0,0(a3) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 3c: addi sp, sp, -0x10 +;; 40: sd ra, 8(sp) +;; 44: sd s0, 0(sp) +;; 48: mv s0, sp +;; 4c: ld a3, 0x58(a0) +;; 50: addi a3, a3, -4 +;; 54: bltu a3, a2, 0x20 +;; 58: ld a3, 0x50(a0) +;; 5c: add a3, a3, a2 +;; 60: lw a0, 0(a3) +;; 64: ld ra, 8(sp) +;; 68: ld s0, 0(sp) +;; 6c: addi sp, sp, 0x10 +;; 70: ret +;; 74: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat index 9cf041910784..984f9967c69b 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,36 +18,44 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; lui a5,1 -;; addi a5,a5,4 -;; sub a4,a4,a5 -;; bgtu a2,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a5,80(a0) -;; add a5,a5,a2 -;; sw a3,4096(a5) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: lui a5, 1 +;; 18: addi a5, a5, 4 +;; 1c: sub a4, a4, a5 +;; 20: bltu a4, a2, 0x28 +;; 24: ld a5, 0x50(a0) +;; 28: add a5, a5, a2 +;; 2c: lui t6, 1 +;; 30: add t6, t6, a5 +;; 34: sw a3, 0(t6) +;; 38: ld ra, 8(sp) +;; 3c: ld s0, 0(sp) +;; 40: addi sp, sp, 0x10 +;; 44: ret +;; 48: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a4,88(a0) -;; lui a3,1 -;; addi a5,a3,4 -;; sub a4,a4,a5 -;; bgtu a2,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a5,80(a0) -;; add a5,a5,a2 -;; lw a0,4096(a5) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 4c: addi sp, sp, -0x10 +;; 50: sd ra, 8(sp) +;; 54: sd s0, 0(sp) +;; 58: mv s0, sp +;; 5c: ld a4, 0x58(a0) +;; 60: lui a3, 1 +;; 64: addi a5, a3, 4 +;; 68: sub a4, a4, a5 +;; 6c: bltu a4, a2, 0x28 +;; 70: ld a5, 0x50(a0) +;; 74: add a5, a5, a2 +;; 78: lui t6, 1 +;; 7c: add t6, t6, a5 +;; 80: lw a0, 0(t6) +;; 84: ld ra, 8(sp) +;; 88: ld s0, 0(sp) +;; 8c: addi sp, sp, 0x10 +;; 90: ret +;; 94: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat index 49f1ad2ba331..34d1027b3656 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,46 +18,52 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; lui a1,262140 -;; addi a4,a1,1 -;; slli a4,a4,2 -;; add a4,a2,a4 -;; trap_if heap_oob##(a4 ult a2) -;; ld a5,88(a0) -;; bgtu a4,a5,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a4,a4,a2 -;; lui a5,65535 -;; slli a5,a5,4 -;; add a4,a4,a5 -;; sw a3,0(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: lui a1, 0x3fffc +;; 14: addi a4, a1, 1 +;; 18: slli a4, a4, 2 +;; 1c: add a4, a2, a4 +;; 20: bgeu a4, a2, 8 +;; 24: .byte 0x00, 0x00, 0x00, 0x00 +;; 28: ld a5, 0x58(a0) +;; 2c: bltu a5, a4, 0x2c +;; 30: ld a4, 0x50(a0) +;; 34: add a4, a4, a2 +;; 38: lui a5, 0xffff +;; 3c: slli a5, a5, 4 +;; 40: add a4, a4, a5 +;; 44: sw a3, 0(a4) +;; 48: ld ra, 8(sp) +;; 4c: ld s0, 0(sp) +;; 50: addi sp, sp, 0x10 +;; 54: ret +;; 58: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; lui a1,262140 -;; addi a3,a1,1 -;; slli a4,a3,2 -;; add a3,a2,a4 -;; trap_if heap_oob##(a3 ult a2) -;; ld a4,88(a0) -;; bgtu a3,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a4,a4,a2 -;; lui a3,65535 -;; slli a5,a3,4 -;; add a4,a4,a5 -;; lw a0,0(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 5c: addi sp, sp, -0x10 +;; 60: sd ra, 8(sp) +;; 64: sd s0, 0(sp) +;; 68: mv s0, sp +;; 6c: lui a1, 0x3fffc +;; 70: addi a3, a1, 1 +;; 74: slli a4, a3, 2 +;; 78: add a3, a2, a4 +;; 7c: bgeu a3, a2, 8 +;; 80: .byte 0x00, 0x00, 0x00, 0x00 +;; 84: ld a4, 0x58(a0) +;; 88: bltu a4, a3, 0x2c +;; 8c: ld a4, 0x50(a0) +;; 90: add a4, a4, a2 +;; 94: lui a3, 0xffff +;; 98: slli a5, a3, 4 +;; 9c: add a4, a4, a5 +;; a0: lw a0, 0(a4) +;; a4: ld ra, 8(sp) +;; a8: ld s0, 0(sp) +;; ac: addi sp, sp, 0x10 +;; b0: ret +;; b4: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat index 106645e67ca8..5c0684200daf 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat @@ -18,30 +18,34 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ld a1,88(a0) -;; bgeu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a2,a4,a2 -;; sb a3,0(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a1, 0x58(a0) +;; 14: bgeu a2, a1, 0x20 +;; 18: ld a4, 0x50(a0) +;; 1c: add a2, a4, a2 +;; 20: sb a3, 0(a2) +;; 24: ld ra, 8(sp) +;; 28: ld s0, 0(sp) +;; 2c: addi sp, sp, 0x10 +;; 30: ret +;; 34: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a1,88(a0) -;; bgeu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a3,80(a0) -;; add a2,a3,a2 -;; lbu a0,0(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 38: addi sp, sp, -0x10 +;; 3c: sd ra, 8(sp) +;; 40: sd s0, 0(sp) +;; 44: mv s0, sp +;; 48: ld a1, 0x58(a0) +;; 4c: bgeu a2, a1, 0x20 +;; 50: ld a3, 0x50(a0) +;; 54: add a2, a3, a2 +;; 58: lbu a0, 0(a2) +;; 5c: ld ra, 8(sp) +;; 60: ld s0, 0(sp) +;; 64: addi sp, sp, 0x10 +;; 68: ret +;; 6c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat index fc05bb1222ab..8a840ceab450 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,36 +18,44 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; lui a5,1 -;; addi a5,a5,1 -;; sub a4,a4,a5 -;; bgtu a2,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a5,80(a0) -;; add a5,a5,a2 -;; sb a3,4096(a5) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: lui a5, 1 +;; 18: addi a5, a5, 1 +;; 1c: sub a4, a4, a5 +;; 20: bltu a4, a2, 0x28 +;; 24: ld a5, 0x50(a0) +;; 28: add a5, a5, a2 +;; 2c: lui t6, 1 +;; 30: add t6, t6, a5 +;; 34: sb a3, 0(t6) +;; 38: ld ra, 8(sp) +;; 3c: ld s0, 0(sp) +;; 40: addi sp, sp, 0x10 +;; 44: ret +;; 48: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a4,88(a0) -;; lui a3,1 -;; addi a5,a3,1 -;; sub a4,a4,a5 -;; bgtu a2,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a5,80(a0) -;; add a5,a5,a2 -;; lbu a0,4096(a5) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 4c: addi sp, sp, -0x10 +;; 50: sd ra, 8(sp) +;; 54: sd s0, 0(sp) +;; 58: mv s0, sp +;; 5c: ld a4, 0x58(a0) +;; 60: lui a3, 1 +;; 64: addi a5, a3, 1 +;; 68: sub a4, a4, a5 +;; 6c: bltu a4, a2, 0x28 +;; 70: ld a5, 0x50(a0) +;; 74: add a5, a5, a2 +;; 78: lui t6, 1 +;; 7c: add t6, t6, a5 +;; 80: lbu a0, 0(t6) +;; 84: ld ra, 8(sp) +;; 88: ld s0, 0(sp) +;; 8c: addi sp, sp, 0x10 +;; 90: ret +;; 94: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat index dbe48d825660..2b9b3119bf94 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,42 +18,54 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ld a1,[const(0)] -;; add a1,a2,a1 -;; trap_if heap_oob##(a1 ult a2) -;; ld a4,88(a0) -;; bgtu a1,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a2,a4,a2 -;; lui a1,65535 -;; slli a4,a1,4 -;; add a2,a2,a4 -;; sb a3,0(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: auipc a1, 0 +;; 14: ld a1, 0x48(a1) +;; 18: add a1, a2, a1 +;; 1c: bgeu a1, a2, 8 +;; 20: .byte 0x00, 0x00, 0x00, 0x00 +;; 24: ld a4, 0x58(a0) +;; 28: bltu a4, a1, 0x2c +;; 2c: ld a4, 0x50(a0) +;; 30: add a2, a4, a2 +;; 34: lui a1, 0xffff +;; 38: slli a4, a1, 4 +;; 3c: add a2, a2, a4 +;; 40: sb a3, 0(a2) +;; 44: ld ra, 8(sp) +;; 48: ld s0, 0(sp) +;; 4c: addi sp, sp, 0x10 +;; 50: ret +;; 54: .byte 0x00, 0x00, 0x00, 0x00 +;; 58: .byte 0x01, 0x00, 0xff, 0xff +;; 5c: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a1,[const(0)] -;; add a1,a2,a1 -;; trap_if heap_oob##(a1 ult a2) -;; ld a3,88(a0) -;; bgtu a1,a3,taken(label3),not_taken(label1) -;; block1: -;; ld a3,80(a0) -;; add a2,a3,a2 -;; lui a1,65535 -;; slli a3,a1,4 -;; add a2,a2,a3 -;; lbu a0,0(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 60: addi sp, sp, -0x10 +;; 64: sd ra, 8(sp) +;; 68: sd s0, 0(sp) +;; 6c: mv s0, sp +;; 70: auipc a1, 0 +;; 74: ld a1, 0x48(a1) +;; 78: add a1, a2, a1 +;; 7c: bgeu a1, a2, 8 +;; 80: .byte 0x00, 0x00, 0x00, 0x00 +;; 84: ld a3, 0x58(a0) +;; 88: bltu a3, a1, 0x2c +;; 8c: ld a3, 0x50(a0) +;; 90: add a2, a3, a2 +;; 94: lui a1, 0xffff +;; 98: slli a3, a1, 4 +;; 9c: add a2, a2, a3 +;; a0: lbu a0, 0(a2) +;; a4: ld ra, 8(sp) +;; a8: ld s0, 0(sp) +;; ac: addi sp, sp, 0x10 +;; b0: ret +;; b4: .byte 0x00, 0x00, 0x00, 0x00 +;; b8: .byte 0x01, 0x00, 0xff, 0xff +;; bc: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat index 5c28ba9c5f38..7e042808d9ac 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat @@ -18,32 +18,40 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ld a1,88(a0) -;; ld a0,80(a0) -;; addi a1,a1,-4 -;; sltu a1,a1,a2 -;; add a0,a0,a2 -;; sub a4,zero,a1 -;; not a1,a4 -;; and a2,a0,a1 -;; sw a3,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a1, 0x58(a0) +;; 14: ld a0, 0x50(a0) +;; 18: addi a1, a1, -4 +;; 1c: sltu a1, a1, a2 +;; 20: add a0, a0, a2 +;; 24: neg a4, a1 +;; 28: not a1, a4 +;; 2c: and a2, a0, a1 +;; 30: sw a3, 0(a2) +;; 34: ld ra, 8(sp) +;; 38: ld s0, 0(sp) +;; 3c: addi sp, sp, 0x10 +;; 40: ret ;; -;; function u0:1: -;; block0: -;; ld a1,88(a0) -;; ld a0,80(a0) -;; addi a1,a1,-4 -;; sltu a1,a1,a2 -;; add a0,a0,a2 -;; sub a4,zero,a1 -;; not a1,a4 -;; and a2,a0,a1 -;; lw a0,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 44: addi sp, sp, -0x10 +;; 48: sd ra, 8(sp) +;; 4c: sd s0, 0(sp) +;; 50: mv s0, sp +;; 54: ld a1, 0x58(a0) +;; 58: ld a0, 0x50(a0) +;; 5c: addi a1, a1, -4 +;; 60: sltu a1, a1, a2 +;; 64: add a0, a0, a2 +;; 68: neg a4, a1 +;; 6c: not a1, a4 +;; 70: and a2, a0, a1 +;; 74: lw a0, 0(a2) +;; 78: ld ra, 8(sp) +;; 7c: ld s0, 0(sp) +;; 80: addi sp, sp, 0x10 +;; 84: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat index f9e9ebbec110..8b486276177e 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,40 +18,48 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a5,88(a0) -;; ld a4,80(a0) -;; lui a0,1 -;; addi a0,a0,4 -;; sub a5,a5,a0 -;; sltu a5,a5,a2 -;; add a4,a4,a2 -;; lui a0,1 -;; add a4,a4,a0 -;; sub a2,zero,a5 -;; not a5,a2 -;; and a0,a4,a5 -;; sw a3,0(a0) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a5, 0x58(a0) +;; 14: ld a4, 0x50(a0) +;; 18: lui a0, 1 +;; 1c: addi a0, a0, 4 +;; 20: sub a5, a5, a0 +;; 24: sltu a5, a5, a2 +;; 28: add a4, a4, a2 +;; 2c: lui a0, 1 +;; 30: add a4, a4, a0 +;; 34: neg a2, a5 +;; 38: not a5, a2 +;; 3c: and a0, a4, a5 +;; 40: sw a3, 0(a0) +;; 44: ld ra, 8(sp) +;; 48: ld s0, 0(sp) +;; 4c: addi sp, sp, 0x10 +;; 50: ret ;; -;; function u0:1: -;; block0: -;; ld a5,88(a0) -;; ld a4,80(a0) -;; lui a3,1 -;; addi a0,a3,4 -;; sub a5,a5,a0 -;; sltu a5,a5,a2 -;; add a4,a4,a2 -;; lui a0,1 -;; add a4,a4,a0 -;; sub a2,zero,a5 -;; not a5,a2 -;; and a0,a4,a5 -;; lw a0,0(a0) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 54: addi sp, sp, -0x10 +;; 58: sd ra, 8(sp) +;; 5c: sd s0, 0(sp) +;; 60: mv s0, sp +;; 64: ld a5, 0x58(a0) +;; 68: ld a4, 0x50(a0) +;; 6c: lui a3, 1 +;; 70: addi a0, a3, 4 +;; 74: sub a5, a5, a0 +;; 78: sltu a5, a5, a2 +;; 7c: add a4, a4, a2 +;; 80: lui a0, 1 +;; 84: add a4, a4, a0 +;; 88: neg a2, a5 +;; 8c: not a5, a2 +;; 90: and a0, a4, a5 +;; 94: lw a0, 0(a0) +;; 98: ld ra, 8(sp) +;; 9c: ld s0, 0(sp) +;; a0: addi sp, sp, 0x10 +;; a4: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 61e2b664d900..942f14fb31e5 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,46 +18,56 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; lui a4,262140 -;; addi a1,a4,1 -;; slli a4,a1,2 -;; add a1,a2,a4 -;; trap_if heap_oob##(a1 ult a2) -;; ld a4,88(a0) -;; ld a5,80(a0) -;; sltu a1,a4,a1 -;; add a2,a5,a2 -;; lui a0,65535 -;; slli a4,a0,4 -;; add a2,a2,a4 -;; sub a5,zero,a1 -;; not a1,a5 -;; and a4,a2,a1 -;; sw a3,0(a4) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: lui a4, 0x3fffc +;; 14: addi a1, a4, 1 +;; 18: slli a4, a1, 2 +;; 1c: add a1, a2, a4 +;; 20: bgeu a1, a2, 8 +;; 24: .byte 0x00, 0x00, 0x00, 0x00 +;; 28: ld a4, 0x58(a0) +;; 2c: ld a5, 0x50(a0) +;; 30: sltu a1, a4, a1 +;; 34: add a2, a5, a2 +;; 38: lui a0, 0xffff +;; 3c: slli a4, a0, 4 +;; 40: add a2, a2, a4 +;; 44: neg a5, a1 +;; 48: not a1, a5 +;; 4c: and a4, a2, a1 +;; 50: sw a3, 0(a4) +;; 54: ld ra, 8(sp) +;; 58: ld s0, 0(sp) +;; 5c: addi sp, sp, 0x10 +;; 60: ret ;; -;; function u0:1: -;; block0: -;; lui a4,262140 -;; addi a1,a4,1 -;; slli a3,a1,2 -;; add a1,a2,a3 -;; trap_if heap_oob##(a1 ult a2) -;; ld a3,88(a0) -;; ld a4,80(a0) -;; sltu a1,a3,a1 -;; add a2,a4,a2 -;; lui a0,65535 -;; slli a3,a0,4 -;; add a2,a2,a3 -;; sub a5,zero,a1 -;; not a1,a5 -;; and a3,a2,a1 -;; lw a0,0(a3) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 64: addi sp, sp, -0x10 +;; 68: sd ra, 8(sp) +;; 6c: sd s0, 0(sp) +;; 70: mv s0, sp +;; 74: lui a4, 0x3fffc +;; 78: addi a1, a4, 1 +;; 7c: slli a3, a1, 2 +;; 80: add a1, a2, a3 +;; 84: bgeu a1, a2, 8 +;; 88: .byte 0x00, 0x00, 0x00, 0x00 +;; 8c: ld a3, 0x58(a0) +;; 90: ld a4, 0x50(a0) +;; 94: sltu a1, a3, a1 +;; 98: add a2, a4, a2 +;; 9c: lui a0, 0xffff +;; a0: slli a3, a0, 4 +;; a4: add a2, a2, a3 +;; a8: neg a5, a1 +;; ac: not a1, a5 +;; b0: and a3, a2, a1 +;; b4: lw a0, 0(a3) +;; b8: ld ra, 8(sp) +;; bc: ld s0, 0(sp) +;; c0: addi sp, sp, 0x10 +;; c4: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat index 40d11bc6c777..328ba5db9f19 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat @@ -18,32 +18,40 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ld a1,88(a0) -;; ld a0,80(a0) -;; sltu a5,a2,a1 -;; xori a1,a5,1 -;; add a0,a0,a2 -;; sub a4,zero,a1 -;; not a1,a4 -;; and a2,a0,a1 -;; sb a3,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a1, 0x58(a0) +;; 14: ld a0, 0x50(a0) +;; 18: sltu a5, a2, a1 +;; 1c: xori a1, a5, 1 +;; 20: add a0, a0, a2 +;; 24: neg a4, a1 +;; 28: not a1, a4 +;; 2c: and a2, a0, a1 +;; 30: sb a3, 0(a2) +;; 34: ld ra, 8(sp) +;; 38: ld s0, 0(sp) +;; 3c: addi sp, sp, 0x10 +;; 40: ret ;; -;; function u0:1: -;; block0: -;; ld a1,88(a0) -;; ld a0,80(a0) -;; sltu a5,a2,a1 -;; xori a1,a5,1 -;; add a0,a0,a2 -;; sub a4,zero,a1 -;; not a1,a4 -;; and a2,a0,a1 -;; lbu a0,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 44: addi sp, sp, -0x10 +;; 48: sd ra, 8(sp) +;; 4c: sd s0, 0(sp) +;; 50: mv s0, sp +;; 54: ld a1, 0x58(a0) +;; 58: ld a0, 0x50(a0) +;; 5c: sltu a5, a2, a1 +;; 60: xori a1, a5, 1 +;; 64: add a0, a0, a2 +;; 68: neg a4, a1 +;; 6c: not a1, a4 +;; 70: and a2, a0, a1 +;; 74: lbu a0, 0(a2) +;; 78: ld ra, 8(sp) +;; 7c: ld s0, 0(sp) +;; 80: addi sp, sp, 0x10 +;; 84: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat index 798744fe8613..46c76730f068 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,40 +18,48 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a5,88(a0) -;; ld a4,80(a0) -;; lui a0,1 -;; addi a0,a0,1 -;; sub a5,a5,a0 -;; sltu a5,a5,a2 -;; add a4,a4,a2 -;; lui a0,1 -;; add a4,a4,a0 -;; sub a2,zero,a5 -;; not a5,a2 -;; and a0,a4,a5 -;; sb a3,0(a0) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a5, 0x58(a0) +;; 14: ld a4, 0x50(a0) +;; 18: lui a0, 1 +;; 1c: addi a0, a0, 1 +;; 20: sub a5, a5, a0 +;; 24: sltu a5, a5, a2 +;; 28: add a4, a4, a2 +;; 2c: lui a0, 1 +;; 30: add a4, a4, a0 +;; 34: neg a2, a5 +;; 38: not a5, a2 +;; 3c: and a0, a4, a5 +;; 40: sb a3, 0(a0) +;; 44: ld ra, 8(sp) +;; 48: ld s0, 0(sp) +;; 4c: addi sp, sp, 0x10 +;; 50: ret ;; -;; function u0:1: -;; block0: -;; ld a5,88(a0) -;; ld a4,80(a0) -;; lui a3,1 -;; addi a0,a3,1 -;; sub a5,a5,a0 -;; sltu a5,a5,a2 -;; add a4,a4,a2 -;; lui a0,1 -;; add a4,a4,a0 -;; sub a2,zero,a5 -;; not a5,a2 -;; and a0,a4,a5 -;; lbu a0,0(a0) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 54: addi sp, sp, -0x10 +;; 58: sd ra, 8(sp) +;; 5c: sd s0, 0(sp) +;; 60: mv s0, sp +;; 64: ld a5, 0x58(a0) +;; 68: ld a4, 0x50(a0) +;; 6c: lui a3, 1 +;; 70: addi a0, a3, 1 +;; 74: sub a5, a5, a0 +;; 78: sltu a5, a5, a2 +;; 7c: add a4, a4, a2 +;; 80: lui a0, 1 +;; 84: add a4, a4, a0 +;; 88: neg a2, a5 +;; 8c: not a5, a2 +;; 90: and a0, a4, a5 +;; 94: lbu a0, 0(a0) +;; 98: ld ra, 8(sp) +;; 9c: ld s0, 0(sp) +;; a0: addi sp, sp, 0x10 +;; a4: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat index b221b3d52883..2949c6ed5613 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,42 +18,58 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ld a4,[const(0)] -;; add a4,a2,a4 -;; trap_if heap_oob##(a4 ult a2) -;; ld a5,88(a0) -;; ld a0,80(a0) -;; sltu a5,a5,a4 -;; add a0,a0,a2 -;; lui a4,65535 -;; slli a1,a4,4 -;; add a0,a0,a1 -;; sub a4,zero,a5 -;; not a5,a4 -;; and a1,a0,a5 -;; sb a3,0(a1) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: auipc a4, 0 +;; 14: ld a4, 0x50(a4) +;; 18: add a4, a2, a4 +;; 1c: bgeu a4, a2, 8 +;; 20: .byte 0x00, 0x00, 0x00, 0x00 +;; 24: ld a5, 0x58(a0) +;; 28: ld a0, 0x50(a0) +;; 2c: sltu a5, a5, a4 +;; 30: add a0, a0, a2 +;; 34: lui a4, 0xffff +;; 38: slli a1, a4, 4 +;; 3c: add a0, a0, a1 +;; 40: neg a4, a5 +;; 44: not a5, a4 +;; 48: and a1, a0, a5 +;; 4c: sb a3, 0(a1) +;; 50: ld ra, 8(sp) +;; 54: ld s0, 0(sp) +;; 58: addi sp, sp, 0x10 +;; 5c: ret +;; 60: .byte 0x01, 0x00, 0xff, 0xff +;; 64: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a4,[const(0)] -;; add a4,a2,a4 -;; trap_if heap_oob##(a4 ult a2) -;; ld a5,88(a0) -;; ld a0,80(a0) -;; sltu a5,a5,a4 -;; add a0,a0,a2 -;; lui a4,65535 -;; slli a1,a4,4 -;; add a0,a0,a1 -;; sub a3,zero,a5 -;; not a5,a3 -;; and a1,a0,a5 -;; lbu a0,0(a1) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 68: addi sp, sp, -0x10 +;; 6c: sd ra, 8(sp) +;; 70: sd s0, 0(sp) +;; 74: mv s0, sp +;; 78: auipc a4, 0 +;; 7c: ld a4, 0x50(a4) +;; 80: add a4, a2, a4 +;; 84: bgeu a4, a2, 8 +;; 88: .byte 0x00, 0x00, 0x00, 0x00 +;; 8c: ld a5, 0x58(a0) +;; 90: ld a0, 0x50(a0) +;; 94: sltu a5, a5, a4 +;; 98: add a0, a0, a2 +;; 9c: lui a4, 0xffff +;; a0: slli a1, a4, 4 +;; a4: add a0, a0, a1 +;; a8: neg a3, a5 +;; ac: not a5, a3 +;; b0: and a1, a0, a5 +;; b4: lbu a0, 0(a1) +;; b8: ld ra, 8(sp) +;; bc: ld s0, 0(sp) +;; c0: addi sp, sp, 0x10 +;; c4: ret +;; c8: .byte 0x01, 0x00, 0xff, 0xff +;; cc: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat index 0fd55bf4b9c6..b27004454597 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat @@ -18,30 +18,34 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ld a1,88(a0) -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a2,a4,a2 -;; sw a3,0(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a1, 0x58(a0) +;; 14: bltu a1, a2, 0x20 +;; 18: ld a4, 0x50(a0) +;; 1c: add a2, a4, a2 +;; 20: sw a3, 0(a2) +;; 24: ld ra, 8(sp) +;; 28: ld s0, 0(sp) +;; 2c: addi sp, sp, 0x10 +;; 30: ret +;; 34: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a1,88(a0) -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a3,80(a0) -;; add a2,a3,a2 -;; lw a0,0(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 38: addi sp, sp, -0x10 +;; 3c: sd ra, 8(sp) +;; 40: sd s0, 0(sp) +;; 44: mv s0, sp +;; 48: ld a1, 0x58(a0) +;; 4c: bltu a1, a2, 0x20 +;; 50: ld a3, 0x50(a0) +;; 54: add a2, a3, a2 +;; 58: lw a0, 0(a2) +;; 5c: ld ra, 8(sp) +;; 60: ld s0, 0(sp) +;; 64: addi sp, sp, 0x10 +;; 68: ret +;; 6c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat index 11a670316b6f..5dfbc1aee483 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,30 +18,38 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a1,88(a0) -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a2,a4,a2 -;; sw a3,4096(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a1, 0x58(a0) +;; 14: bltu a1, a2, 0x28 +;; 18: ld a4, 0x50(a0) +;; 1c: add a2, a4, a2 +;; 20: lui t6, 1 +;; 24: add t6, t6, a2 +;; 28: sw a3, 0(t6) +;; 2c: ld ra, 8(sp) +;; 30: ld s0, 0(sp) +;; 34: addi sp, sp, 0x10 +;; 38: ret +;; 3c: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a1,88(a0) -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a3,80(a0) -;; add a2,a3,a2 -;; lw a0,4096(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 40: addi sp, sp, -0x10 +;; 44: sd ra, 8(sp) +;; 48: sd s0, 0(sp) +;; 4c: mv s0, sp +;; 50: ld a1, 0x58(a0) +;; 54: bltu a1, a2, 0x28 +;; 58: ld a3, 0x50(a0) +;; 5c: add a2, a3, a2 +;; 60: lui t6, 1 +;; 64: add t6, t6, a2 +;; 68: lw a0, 0(t6) +;; 6c: ld ra, 8(sp) +;; 70: ld s0, 0(sp) +;; 74: addi sp, sp, 0x10 +;; 78: ret +;; 7c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat index a27aa4f5a594..bc33d9494d47 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,36 +18,40 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; bgtu a2,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a5,80(a0) -;; add a5,a5,a2 -;; lui a4,65535 -;; slli a0,a4,4 -;; add a5,a5,a0 -;; sw a3,0(a5) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: bltu a4, a2, 0x2c +;; 18: ld a5, 0x50(a0) +;; 1c: add a5, a5, a2 +;; 20: lui a4, 0xffff +;; 24: slli a0, a4, 4 +;; 28: add a5, a5, a0 +;; 2c: sw a3, 0(a5) +;; 30: ld ra, 8(sp) +;; 34: ld s0, 0(sp) +;; 38: addi sp, sp, 0x10 +;; 3c: ret +;; 40: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a4,88(a0) -;; bgtu a2,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a5,80(a0) -;; add a5,a5,a2 -;; lui a4,65535 -;; slli a0,a4,4 -;; add a5,a5,a0 -;; lw a0,0(a5) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 44: addi sp, sp, -0x10 +;; 48: sd ra, 8(sp) +;; 4c: sd s0, 0(sp) +;; 50: mv s0, sp +;; 54: ld a4, 0x58(a0) +;; 58: bltu a4, a2, 0x2c +;; 5c: ld a5, 0x50(a0) +;; 60: add a5, a5, a2 +;; 64: lui a4, 0xffff +;; 68: slli a0, a4, 4 +;; 6c: add a5, a5, a0 +;; 70: lw a0, 0(a5) +;; 74: ld ra, 8(sp) +;; 78: ld s0, 0(sp) +;; 7c: addi sp, sp, 0x10 +;; 80: ret +;; 84: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat index 6ef48b3318f3..a031d62d5869 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat @@ -18,30 +18,34 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ld a1,88(a0) -;; bgeu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a2,a4,a2 -;; sb a3,0(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a1, 0x58(a0) +;; 14: bgeu a2, a1, 0x20 +;; 18: ld a4, 0x50(a0) +;; 1c: add a2, a4, a2 +;; 20: sb a3, 0(a2) +;; 24: ld ra, 8(sp) +;; 28: ld s0, 0(sp) +;; 2c: addi sp, sp, 0x10 +;; 30: ret +;; 34: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a1,88(a0) -;; bgeu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a3,80(a0) -;; add a2,a3,a2 -;; lbu a0,0(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 38: addi sp, sp, -0x10 +;; 3c: sd ra, 8(sp) +;; 40: sd s0, 0(sp) +;; 44: mv s0, sp +;; 48: ld a1, 0x58(a0) +;; 4c: bgeu a2, a1, 0x20 +;; 50: ld a3, 0x50(a0) +;; 54: add a2, a3, a2 +;; 58: lbu a0, 0(a2) +;; 5c: ld ra, 8(sp) +;; 60: ld s0, 0(sp) +;; 64: addi sp, sp, 0x10 +;; 68: ret +;; 6c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat index 949030a22b6b..d8a3098aa6c1 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,30 +18,38 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a1,88(a0) -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a2,a4,a2 -;; sb a3,4096(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a1, 0x58(a0) +;; 14: bltu a1, a2, 0x28 +;; 18: ld a4, 0x50(a0) +;; 1c: add a2, a4, a2 +;; 20: lui t6, 1 +;; 24: add t6, t6, a2 +;; 28: sb a3, 0(t6) +;; 2c: ld ra, 8(sp) +;; 30: ld s0, 0(sp) +;; 34: addi sp, sp, 0x10 +;; 38: ret +;; 3c: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a1,88(a0) -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a3,80(a0) -;; add a2,a3,a2 -;; lbu a0,4096(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 40: addi sp, sp, -0x10 +;; 44: sd ra, 8(sp) +;; 48: sd s0, 0(sp) +;; 4c: mv s0, sp +;; 50: ld a1, 0x58(a0) +;; 54: bltu a1, a2, 0x28 +;; 58: ld a3, 0x50(a0) +;; 5c: add a2, a3, a2 +;; 60: lui t6, 1 +;; 64: add t6, t6, a2 +;; 68: lbu a0, 0(t6) +;; 6c: ld ra, 8(sp) +;; 70: ld s0, 0(sp) +;; 74: addi sp, sp, 0x10 +;; 78: ret +;; 7c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat index 80a67006d3d0..d278d207c923 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,36 +18,40 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; bgtu a2,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a5,80(a0) -;; add a5,a5,a2 -;; lui a4,65535 -;; slli a0,a4,4 -;; add a5,a5,a0 -;; sb a3,0(a5) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: bltu a4, a2, 0x2c +;; 18: ld a5, 0x50(a0) +;; 1c: add a5, a5, a2 +;; 20: lui a4, 0xffff +;; 24: slli a0, a4, 4 +;; 28: add a5, a5, a0 +;; 2c: sb a3, 0(a5) +;; 30: ld ra, 8(sp) +;; 34: ld s0, 0(sp) +;; 38: addi sp, sp, 0x10 +;; 3c: ret +;; 40: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a4,88(a0) -;; bgtu a2,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a5,80(a0) -;; add a5,a5,a2 -;; lui a4,65535 -;; slli a0,a4,4 -;; add a5,a5,a0 -;; lbu a0,0(a5) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 44: addi sp, sp, -0x10 +;; 48: sd ra, 8(sp) +;; 4c: sd s0, 0(sp) +;; 50: mv s0, sp +;; 54: ld a4, 0x58(a0) +;; 58: bltu a4, a2, 0x2c +;; 5c: ld a5, 0x50(a0) +;; 60: add a5, a5, a2 +;; 64: lui a4, 0xffff +;; 68: slli a0, a4, 4 +;; 6c: add a5, a5, a0 +;; 70: lbu a0, 0(a5) +;; 74: ld ra, 8(sp) +;; 78: ld s0, 0(sp) +;; 7c: addi sp, sp, 0x10 +;; 80: ret +;; 84: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat index 347106930828..6d253adf60ab 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat @@ -18,30 +18,38 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ld a5,88(a0) -;; ld a0,80(a0) -;; sltu a1,a5,a2 -;; add a5,a0,a2 -;; sub a4,zero,a1 -;; not a0,a4 -;; and a1,a5,a0 -;; sw a3,0(a1) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a5, 0x58(a0) +;; 14: ld a0, 0x50(a0) +;; 18: sltu a1, a5, a2 +;; 1c: add a5, a0, a2 +;; 20: neg a4, a1 +;; 24: not a0, a4 +;; 28: and a1, a5, a0 +;; 2c: sw a3, 0(a1) +;; 30: ld ra, 8(sp) +;; 34: ld s0, 0(sp) +;; 38: addi sp, sp, 0x10 +;; 3c: ret ;; -;; function u0:1: -;; block0: -;; ld a5,88(a0) -;; ld a0,80(a0) -;; sltu a1,a5,a2 -;; add a5,a0,a2 -;; sub a3,zero,a1 -;; not a0,a3 -;; and a1,a5,a0 -;; lw a0,0(a1) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: addi sp, sp, -0x10 +;; 44: sd ra, 8(sp) +;; 48: sd s0, 0(sp) +;; 4c: mv s0, sp +;; 50: ld a5, 0x58(a0) +;; 54: ld a0, 0x50(a0) +;; 58: sltu a1, a5, a2 +;; 5c: add a5, a0, a2 +;; 60: neg a3, a1 +;; 64: not a0, a3 +;; 68: and a1, a5, a0 +;; 6c: lw a0, 0(a1) +;; 70: ld ra, 8(sp) +;; 74: ld s0, 0(sp) +;; 78: addi sp, sp, 0x10 +;; 7c: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat index 17862c63f8f2..f1a597d1d2ed 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,34 +18,42 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a1,88(a0) -;; ld a4,80(a0) -;; sltu a1,a1,a2 -;; add a2,a4,a2 -;; lui a4,1 -;; add a2,a2,a4 -;; sub a5,zero,a1 -;; not a1,a5 -;; and a4,a2,a1 -;; sw a3,0(a4) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a1, 0x58(a0) +;; 14: ld a4, 0x50(a0) +;; 18: sltu a1, a1, a2 +;; 1c: add a2, a4, a2 +;; 20: lui a4, 1 +;; 24: add a2, a2, a4 +;; 28: neg a5, a1 +;; 2c: not a1, a5 +;; 30: and a4, a2, a1 +;; 34: sw a3, 0(a4) +;; 38: ld ra, 8(sp) +;; 3c: ld s0, 0(sp) +;; 40: addi sp, sp, 0x10 +;; 44: ret ;; -;; function u0:1: -;; block0: -;; ld a1,88(a0) -;; ld a3,80(a0) -;; sltu a1,a1,a2 -;; add a2,a3,a2 -;; lui a3,1 -;; add a2,a2,a3 -;; sub a5,zero,a1 -;; not a1,a5 -;; and a3,a2,a1 -;; lw a0,0(a3) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 48: addi sp, sp, -0x10 +;; 4c: sd ra, 8(sp) +;; 50: sd s0, 0(sp) +;; 54: mv s0, sp +;; 58: ld a1, 0x58(a0) +;; 5c: ld a3, 0x50(a0) +;; 60: sltu a1, a1, a2 +;; 64: add a2, a3, a2 +;; 68: lui a3, 1 +;; 6c: add a2, a2, a3 +;; 70: neg a5, a1 +;; 74: not a1, a5 +;; 78: and a3, a2, a1 +;; 7c: lw a0, 0(a3) +;; 80: ld ra, 8(sp) +;; 84: ld s0, 0(sp) +;; 88: addi sp, sp, 0x10 +;; 8c: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 419805d0515a..7ad35f8fe6a6 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,36 +18,44 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; ld a5,80(a0) -;; sltu a4,a4,a2 -;; add a2,a5,a2 -;; lui a1,65535 -;; slli a5,a1,4 -;; add a2,a2,a5 -;; sub a0,zero,a4 -;; not a4,a0 -;; and a4,a2,a4 -;; sw a3,0(a4) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: ld a5, 0x50(a0) +;; 18: sltu a4, a4, a2 +;; 1c: add a2, a5, a2 +;; 20: lui a1, 0xffff +;; 24: slli a5, a1, 4 +;; 28: add a2, a2, a5 +;; 2c: neg a0, a4 +;; 30: not a4, a0 +;; 34: and a4, a2, a4 +;; 38: sw a3, 0(a4) +;; 3c: ld ra, 8(sp) +;; 40: ld s0, 0(sp) +;; 44: addi sp, sp, 0x10 +;; 48: ret ;; -;; function u0:1: -;; block0: -;; ld a3,88(a0) -;; ld a4,80(a0) -;; sltu a3,a3,a2 -;; add a2,a4,a2 -;; lui a1,65535 -;; slli a4,a1,4 -;; add a2,a2,a4 -;; sub a0,zero,a3 -;; not a3,a0 -;; and a4,a2,a3 -;; lw a0,0(a4) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 4c: addi sp, sp, -0x10 +;; 50: sd ra, 8(sp) +;; 54: sd s0, 0(sp) +;; 58: mv s0, sp +;; 5c: ld a3, 0x58(a0) +;; 60: ld a4, 0x50(a0) +;; 64: sltu a3, a3, a2 +;; 68: add a2, a4, a2 +;; 6c: lui a1, 0xffff +;; 70: slli a4, a1, 4 +;; 74: add a2, a2, a4 +;; 78: neg a0, a3 +;; 7c: not a3, a0 +;; 80: and a4, a2, a3 +;; 84: lw a0, 0(a4) +;; 88: ld ra, 8(sp) +;; 8c: ld s0, 0(sp) +;; 90: addi sp, sp, 0x10 +;; 94: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat index 9ecf0575ec72..eef48ed1df32 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat @@ -18,32 +18,40 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ld a1,88(a0) -;; ld a0,80(a0) -;; sltu a5,a2,a1 -;; xori a1,a5,1 -;; add a0,a0,a2 -;; sub a4,zero,a1 -;; not a1,a4 -;; and a2,a0,a1 -;; sb a3,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a1, 0x58(a0) +;; 14: ld a0, 0x50(a0) +;; 18: sltu a5, a2, a1 +;; 1c: xori a1, a5, 1 +;; 20: add a0, a0, a2 +;; 24: neg a4, a1 +;; 28: not a1, a4 +;; 2c: and a2, a0, a1 +;; 30: sb a3, 0(a2) +;; 34: ld ra, 8(sp) +;; 38: ld s0, 0(sp) +;; 3c: addi sp, sp, 0x10 +;; 40: ret ;; -;; function u0:1: -;; block0: -;; ld a1,88(a0) -;; ld a0,80(a0) -;; sltu a5,a2,a1 -;; xori a1,a5,1 -;; add a0,a0,a2 -;; sub a4,zero,a1 -;; not a1,a4 -;; and a2,a0,a1 -;; lbu a0,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 44: addi sp, sp, -0x10 +;; 48: sd ra, 8(sp) +;; 4c: sd s0, 0(sp) +;; 50: mv s0, sp +;; 54: ld a1, 0x58(a0) +;; 58: ld a0, 0x50(a0) +;; 5c: sltu a5, a2, a1 +;; 60: xori a1, a5, 1 +;; 64: add a0, a0, a2 +;; 68: neg a4, a1 +;; 6c: not a1, a4 +;; 70: and a2, a0, a1 +;; 74: lbu a0, 0(a2) +;; 78: ld ra, 8(sp) +;; 7c: ld s0, 0(sp) +;; 80: addi sp, sp, 0x10 +;; 84: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat index 4d11ec77f80f..54c6e1a1c60c 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,34 +18,42 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a1,88(a0) -;; ld a4,80(a0) -;; sltu a1,a1,a2 -;; add a2,a4,a2 -;; lui a4,1 -;; add a2,a2,a4 -;; sub a5,zero,a1 -;; not a1,a5 -;; and a4,a2,a1 -;; sb a3,0(a4) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a1, 0x58(a0) +;; 14: ld a4, 0x50(a0) +;; 18: sltu a1, a1, a2 +;; 1c: add a2, a4, a2 +;; 20: lui a4, 1 +;; 24: add a2, a2, a4 +;; 28: neg a5, a1 +;; 2c: not a1, a5 +;; 30: and a4, a2, a1 +;; 34: sb a3, 0(a4) +;; 38: ld ra, 8(sp) +;; 3c: ld s0, 0(sp) +;; 40: addi sp, sp, 0x10 +;; 44: ret ;; -;; function u0:1: -;; block0: -;; ld a1,88(a0) -;; ld a3,80(a0) -;; sltu a1,a1,a2 -;; add a2,a3,a2 -;; lui a3,1 -;; add a2,a2,a3 -;; sub a5,zero,a1 -;; not a1,a5 -;; and a3,a2,a1 -;; lbu a0,0(a3) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 48: addi sp, sp, -0x10 +;; 4c: sd ra, 8(sp) +;; 50: sd s0, 0(sp) +;; 54: mv s0, sp +;; 58: ld a1, 0x58(a0) +;; 5c: ld a3, 0x50(a0) +;; 60: sltu a1, a1, a2 +;; 64: add a2, a3, a2 +;; 68: lui a3, 1 +;; 6c: add a2, a2, a3 +;; 70: neg a5, a1 +;; 74: not a1, a5 +;; 78: and a3, a2, a1 +;; 7c: lbu a0, 0(a3) +;; 80: ld ra, 8(sp) +;; 84: ld s0, 0(sp) +;; 88: addi sp, sp, 0x10 +;; 8c: ret diff --git a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat index 466b28f0537f..f37d0b6c59d7 100644 --- a/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,36 +18,44 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ld a4,88(a0) -;; ld a5,80(a0) -;; sltu a4,a4,a2 -;; add a2,a5,a2 -;; lui a1,65535 -;; slli a5,a1,4 -;; add a2,a2,a5 -;; sub a0,zero,a4 -;; not a4,a0 -;; and a4,a2,a4 -;; sb a3,0(a4) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x58(a0) +;; 14: ld a5, 0x50(a0) +;; 18: sltu a4, a4, a2 +;; 1c: add a2, a5, a2 +;; 20: lui a1, 0xffff +;; 24: slli a5, a1, 4 +;; 28: add a2, a2, a5 +;; 2c: neg a0, a4 +;; 30: not a4, a0 +;; 34: and a4, a2, a4 +;; 38: sb a3, 0(a4) +;; 3c: ld ra, 8(sp) +;; 40: ld s0, 0(sp) +;; 44: addi sp, sp, 0x10 +;; 48: ret ;; -;; function u0:1: -;; block0: -;; ld a3,88(a0) -;; ld a4,80(a0) -;; sltu a3,a3,a2 -;; add a2,a4,a2 -;; lui a1,65535 -;; slli a4,a1,4 -;; add a2,a2,a4 -;; sub a0,zero,a3 -;; not a3,a0 -;; and a4,a2,a3 -;; lbu a0,0(a4) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 4c: addi sp, sp, -0x10 +;; 50: sd ra, 8(sp) +;; 54: sd s0, 0(sp) +;; 58: mv s0, sp +;; 5c: ld a3, 0x58(a0) +;; 60: ld a4, 0x50(a0) +;; 64: sltu a3, a3, a2 +;; 68: add a2, a4, a2 +;; 6c: lui a1, 0xffff +;; 70: slli a4, a1, 4 +;; 74: add a2, a2, a4 +;; 78: neg a0, a3 +;; 7c: not a3, a0 +;; 80: and a4, a2, a3 +;; 84: lbu a0, 0(a4) +;; 88: ld ra, 8(sp) +;; 8c: ld s0, 0(sp) +;; 90: addi sp, sp, 0x10 +;; 94: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat index 1edda5b55461..e1de0a8125f5 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat @@ -18,38 +18,42 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; slli a4,a2,32 -;; srli a1,a4,32 -;; lui a4,262144 -;; addi a5,a4,-1 -;; slli a2,a5,2 -;; bgtu a1,a2,taken(label3),not_taken(label1) -;; block1: -;; ld a0,80(a0) -;; add a0,a0,a1 -;; sw a3,0(a0) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: slli a4, a2, 0x20 +;; 14: srli a1, a4, 0x20 +;; 18: lui a4, 0x40000 +;; 1c: addi a5, a4, -1 +;; 20: slli a2, a5, 2 +;; 24: bltu a2, a1, 0x20 +;; 28: ld a0, 0x50(a0) +;; 2c: add a0, a0, a1 +;; 30: sw a3, 0(a0) +;; 34: ld ra, 8(sp) +;; 38: ld s0, 0(sp) +;; 3c: addi sp, sp, 0x10 +;; 40: ret +;; 44: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; slli a4,a2,32 -;; srli a1,a4,32 -;; lui a3,262144 -;; addi a5,a3,-1 -;; slli a2,a5,2 -;; bgtu a1,a2,taken(label3),not_taken(label1) -;; block1: -;; ld a0,80(a0) -;; add a0,a0,a1 -;; lw a0,0(a0) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 48: addi sp, sp, -0x10 +;; 4c: sd ra, 8(sp) +;; 50: sd s0, 0(sp) +;; 54: mv s0, sp +;; 58: slli a4, a2, 0x20 +;; 5c: srli a1, a4, 0x20 +;; 60: lui a3, 0x40000 +;; 64: addi a5, a3, -1 +;; 68: slli a2, a5, 2 +;; 6c: bltu a2, a1, 0x20 +;; 70: ld a0, 0x50(a0) +;; 74: add a0, a0, a1 +;; 78: lw a0, 0(a0) +;; 7c: ld ra, 8(sp) +;; 80: ld s0, 0(sp) +;; 84: addi sp, sp, 0x10 +;; 88: ret +;; 8c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat index b6cb8a217c00..acdb9bcbbd61 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,38 +18,46 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; slli a4,a2,32 -;; srli a1,a4,32 -;; lui a4,262144 -;; addi a5,a4,-1025 -;; slli a2,a5,2 -;; bgtu a1,a2,taken(label3),not_taken(label1) -;; block1: -;; ld a0,80(a0) -;; add a0,a0,a1 -;; sw a3,4096(a0) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: slli a4, a2, 0x20 +;; 14: srli a1, a4, 0x20 +;; 18: lui a4, 0x40000 +;; 1c: addi a5, a4, -0x401 +;; 20: slli a2, a5, 2 +;; 24: bltu a2, a1, 0x28 +;; 28: ld a0, 0x50(a0) +;; 2c: add a0, a0, a1 +;; 30: lui t6, 1 +;; 34: add t6, t6, a0 +;; 38: sw a3, 0(t6) +;; 3c: ld ra, 8(sp) +;; 40: ld s0, 0(sp) +;; 44: addi sp, sp, 0x10 +;; 48: ret +;; 4c: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; slli a4,a2,32 -;; srli a1,a4,32 -;; lui a3,262144 -;; addi a5,a3,-1025 -;; slli a2,a5,2 -;; bgtu a1,a2,taken(label3),not_taken(label1) -;; block1: -;; ld a0,80(a0) -;; add a0,a0,a1 -;; lw a0,4096(a0) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 50: addi sp, sp, -0x10 +;; 54: sd ra, 8(sp) +;; 58: sd s0, 0(sp) +;; 5c: mv s0, sp +;; 60: slli a4, a2, 0x20 +;; 64: srli a1, a4, 0x20 +;; 68: lui a3, 0x40000 +;; 6c: addi a5, a3, -0x401 +;; 70: slli a2, a5, 2 +;; 74: bltu a2, a1, 0x28 +;; 78: ld a0, 0x50(a0) +;; 7c: add a0, a0, a1 +;; 80: lui t6, 1 +;; 84: add t6, t6, a0 +;; 88: lw a0, 0(t6) +;; 8c: ld ra, 8(sp) +;; 90: ld s0, 0(sp) +;; 94: addi sp, sp, 0x10 +;; 98: ret +;; 9c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat index f6472198b328..f63c00a495a5 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,42 +18,46 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; slli a1,a2,32 -;; srli a2,a1,32 -;; lui a1,16 -;; addi a4,a1,-4 -;; bgtu a2,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a2,a4,a2 -;; lui a1,65535 -;; slli a4,a1,4 -;; add a2,a2,a4 -;; sw a3,0(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: slli a1, a2, 0x20 +;; 14: srli a2, a1, 0x20 +;; 18: lui a1, 0x10 +;; 1c: addi a4, a1, -4 +;; 20: bltu a4, a2, 0x2c +;; 24: ld a4, 0x50(a0) +;; 28: add a2, a4, a2 +;; 2c: lui a1, 0xffff +;; 30: slli a4, a1, 4 +;; 34: add a2, a2, a4 +;; 38: sw a3, 0(a2) +;; 3c: ld ra, 8(sp) +;; 40: ld s0, 0(sp) +;; 44: addi sp, sp, 0x10 +;; 48: ret +;; 4c: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; slli a1,a2,32 -;; srli a2,a1,32 -;; lui a1,16 -;; addi a3,a1,-4 -;; bgtu a2,a3,taken(label3),not_taken(label1) -;; block1: -;; ld a3,80(a0) -;; add a2,a3,a2 -;; lui a1,65535 -;; slli a3,a1,4 -;; add a2,a2,a3 -;; lw a0,0(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 50: addi sp, sp, -0x10 +;; 54: sd ra, 8(sp) +;; 58: sd s0, 0(sp) +;; 5c: mv s0, sp +;; 60: slli a1, a2, 0x20 +;; 64: srli a2, a1, 0x20 +;; 68: lui a1, 0x10 +;; 6c: addi a3, a1, -4 +;; 70: bltu a3, a2, 0x2c +;; 74: ld a3, 0x50(a0) +;; 78: add a2, a3, a2 +;; 7c: lui a1, 0xffff +;; 80: slli a3, a1, 4 +;; 84: add a2, a2, a3 +;; 88: lw a0, 0(a2) +;; 8c: ld ra, 8(sp) +;; 90: ld s0, 0(sp) +;; 94: addi sp, sp, 0x10 +;; 98: ret +;; 9c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat index 7303c5567080..6fe247880ce4 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat @@ -18,24 +18,32 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ld a4,80(a0) -;; slli a1,a2,32 -;; srli a5,a1,32 -;; add a2,a4,a5 -;; sb a3,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x50(a0) +;; 14: slli a1, a2, 0x20 +;; 18: srli a5, a1, 0x20 +;; 1c: add a2, a4, a5 +;; 20: sb a3, 0(a2) +;; 24: ld ra, 8(sp) +;; 28: ld s0, 0(sp) +;; 2c: addi sp, sp, 0x10 +;; 30: ret ;; -;; function u0:1: -;; block0: -;; ld a3,80(a0) -;; slli a1,a2,32 -;; srli a4,a1,32 -;; add a2,a3,a4 -;; lbu a0,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 34: addi sp, sp, -0x10 +;; 38: sd ra, 8(sp) +;; 3c: sd s0, 0(sp) +;; 40: mv s0, sp +;; 44: ld a3, 0x50(a0) +;; 48: slli a1, a2, 0x20 +;; 4c: srli a4, a1, 0x20 +;; 50: add a2, a3, a4 +;; 54: lbu a0, 0(a2) +;; 58: ld ra, 8(sp) +;; 5c: ld s0, 0(sp) +;; 60: addi sp, sp, 0x10 +;; 64: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat index 12b7513a3b44..72ccd44776d3 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,34 +18,50 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; slli a2,a2,32 -;; srli a4,a2,32 -;; ld a5,[const(0)] -;; bgtu a4,a5,taken(label3),not_taken(label1) -;; block1: -;; ld a5,80(a0) -;; add a4,a5,a4 -;; sb a3,4096(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: slli a2, a2, 0x20 +;; 14: srli a4, a2, 0x20 +;; 18: auipc a5, 0 +;; 1c: ld a5, 0x38(a5) +;; 20: bltu a5, a4, 0x28 +;; 24: ld a5, 0x50(a0) +;; 28: add a4, a5, a4 +;; 2c: lui t6, 1 +;; 30: add t6, t6, a4 +;; 34: sb a3, 0(t6) +;; 38: ld ra, 8(sp) +;; 3c: ld s0, 0(sp) +;; 40: addi sp, sp, 0x10 +;; 44: ret +;; 48: .byte 0x00, 0x00, 0x00, 0x00 +;; 4c: .byte 0x00, 0x00, 0x00, 0x00 +;; 50: .byte 0xff, 0xef, 0xff, 0xff +;; 54: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; slli a2,a2,32 -;; srli a4,a2,32 -;; ld a3,[const(0)] -;; bgtu a4,a3,taken(label3),not_taken(label1) -;; block1: -;; ld a5,80(a0) -;; add a4,a5,a4 -;; lbu a0,4096(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 58: addi sp, sp, -0x10 +;; 5c: sd ra, 8(sp) +;; 60: sd s0, 0(sp) +;; 64: mv s0, sp +;; 68: slli a2, a2, 0x20 +;; 6c: srli a4, a2, 0x20 +;; 70: auipc a3, 0 +;; 74: ld a3, 0x38(a3) +;; 78: bltu a3, a4, 0x28 +;; 7c: ld a5, 0x50(a0) +;; 80: add a4, a5, a4 +;; 84: lui t6, 1 +;; 88: add t6, t6, a4 +;; 8c: lbu a0, 0(t6) +;; 90: ld ra, 8(sp) +;; 94: ld s0, 0(sp) +;; 98: addi sp, sp, 0x10 +;; 9c: ret +;; a0: .byte 0x00, 0x00, 0x00, 0x00 +;; a4: .byte 0x00, 0x00, 0x00, 0x00 +;; a8: .byte 0xff, 0xef, 0xff, 0xff +;; ac: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat index a544945c0411..4cee19f8dfc5 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,42 +18,46 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; slli a1,a2,32 -;; srli a2,a1,32 -;; lui a1,16 -;; addi a4,a1,-1 -;; bgtu a2,a4,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a2,a4,a2 -;; lui a1,65535 -;; slli a4,a1,4 -;; add a2,a2,a4 -;; sb a3,0(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: slli a1, a2, 0x20 +;; 14: srli a2, a1, 0x20 +;; 18: lui a1, 0x10 +;; 1c: addi a4, a1, -1 +;; 20: bltu a4, a2, 0x2c +;; 24: ld a4, 0x50(a0) +;; 28: add a2, a4, a2 +;; 2c: lui a1, 0xffff +;; 30: slli a4, a1, 4 +;; 34: add a2, a2, a4 +;; 38: sb a3, 0(a2) +;; 3c: ld ra, 8(sp) +;; 40: ld s0, 0(sp) +;; 44: addi sp, sp, 0x10 +;; 48: ret +;; 4c: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; slli a1,a2,32 -;; srli a2,a1,32 -;; lui a1,16 -;; addi a3,a1,-1 -;; bgtu a2,a3,taken(label3),not_taken(label1) -;; block1: -;; ld a3,80(a0) -;; add a2,a3,a2 -;; lui a1,65535 -;; slli a3,a1,4 -;; add a2,a2,a3 -;; lbu a0,0(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 50: addi sp, sp, -0x10 +;; 54: sd ra, 8(sp) +;; 58: sd s0, 0(sp) +;; 5c: mv s0, sp +;; 60: slli a1, a2, 0x20 +;; 64: srli a2, a1, 0x20 +;; 68: lui a1, 0x10 +;; 6c: addi a3, a1, -1 +;; 70: bltu a3, a2, 0x2c +;; 74: ld a3, 0x50(a0) +;; 78: add a2, a3, a2 +;; 7c: lui a1, 0xffff +;; 80: slli a3, a1, 4 +;; 84: add a2, a2, a3 +;; 88: lbu a0, 0(a2) +;; 8c: ld ra, 8(sp) +;; 90: ld s0, 0(sp) +;; 94: addi sp, sp, 0x10 +;; 98: ret +;; 9c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat index 3ad5901c48e4..e17648ccea26 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat @@ -18,38 +18,46 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; slli a2,a2,32 -;; srli a4,a2,32 -;; lui a1,262144 -;; addi a5,a1,-1 -;; slli a5,a5,2 -;; sltu a5,a5,a4 -;; ld a0,80(a0) -;; add a4,a0,a4 -;; sub a1,zero,a5 -;; not a5,a1 -;; and a5,a4,a5 -;; sw a3,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: slli a2, a2, 0x20 +;; 14: srli a4, a2, 0x20 +;; 18: lui a1, 0x40000 +;; 1c: addi a5, a1, -1 +;; 20: slli a5, a5, 2 +;; 24: sltu a5, a5, a4 +;; 28: ld a0, 0x50(a0) +;; 2c: add a4, a0, a4 +;; 30: neg a1, a5 +;; 34: not a5, a1 +;; 38: and a5, a4, a5 +;; 3c: sw a3, 0(a5) +;; 40: ld ra, 8(sp) +;; 44: ld s0, 0(sp) +;; 48: addi sp, sp, 0x10 +;; 4c: ret ;; -;; function u0:1: -;; block0: -;; slli a2,a2,32 -;; srli a4,a2,32 -;; lui a1,262144 -;; addi a3,a1,-1 -;; slli a5,a3,2 -;; sltu a3,a5,a4 -;; ld a5,80(a0) -;; add a4,a5,a4 -;; sub a1,zero,a3 -;; not a3,a1 -;; and a5,a4,a3 -;; lw a0,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 50: addi sp, sp, -0x10 +;; 54: sd ra, 8(sp) +;; 58: sd s0, 0(sp) +;; 5c: mv s0, sp +;; 60: slli a2, a2, 0x20 +;; 64: srli a4, a2, 0x20 +;; 68: lui a1, 0x40000 +;; 6c: addi a3, a1, -1 +;; 70: slli a5, a3, 2 +;; 74: sltu a3, a5, a4 +;; 78: ld a5, 0x50(a0) +;; 7c: add a4, a5, a4 +;; 80: neg a1, a3 +;; 84: not a3, a1 +;; 88: and a5, a4, a3 +;; 8c: lw a0, 0(a5) +;; 90: ld ra, 8(sp) +;; 94: ld s0, 0(sp) +;; 98: addi sp, sp, 0x10 +;; 9c: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat index afda581c094f..7eae95963cc6 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,42 +18,50 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; slli a4,a2,32 -;; srli a1,a4,32 -;; lui a4,262144 -;; addi a5,a4,-1025 -;; slli a2,a5,2 -;; sltu a5,a2,a1 -;; ld a0,80(a0) -;; add a0,a0,a1 -;; lui a1,1 -;; add a0,a0,a1 -;; sub a4,zero,a5 -;; not a5,a4 -;; and a1,a0,a5 -;; sw a3,0(a1) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: slli a4, a2, 0x20 +;; 14: srli a1, a4, 0x20 +;; 18: lui a4, 0x40000 +;; 1c: addi a5, a4, -0x401 +;; 20: slli a2, a5, 2 +;; 24: sltu a5, a2, a1 +;; 28: ld a0, 0x50(a0) +;; 2c: add a0, a0, a1 +;; 30: lui a1, 1 +;; 34: add a0, a0, a1 +;; 38: neg a4, a5 +;; 3c: not a5, a4 +;; 40: and a1, a0, a5 +;; 44: sw a3, 0(a1) +;; 48: ld ra, 8(sp) +;; 4c: ld s0, 0(sp) +;; 50: addi sp, sp, 0x10 +;; 54: ret ;; -;; function u0:1: -;; block0: -;; slli a4,a2,32 -;; srli a1,a4,32 -;; lui a3,262144 -;; addi a5,a3,-1025 -;; slli a2,a5,2 -;; sltu a5,a2,a1 -;; ld a0,80(a0) -;; add a0,a0,a1 -;; lui a1,1 -;; add a0,a0,a1 -;; sub a3,zero,a5 -;; not a5,a3 -;; and a1,a0,a5 -;; lw a0,0(a1) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 58: addi sp, sp, -0x10 +;; 5c: sd ra, 8(sp) +;; 60: sd s0, 0(sp) +;; 64: mv s0, sp +;; 68: slli a4, a2, 0x20 +;; 6c: srli a1, a4, 0x20 +;; 70: lui a3, 0x40000 +;; 74: addi a5, a3, -0x401 +;; 78: slli a2, a5, 2 +;; 7c: sltu a5, a2, a1 +;; 80: ld a0, 0x50(a0) +;; 84: add a0, a0, a1 +;; 88: lui a1, 1 +;; 8c: add a0, a0, a1 +;; 90: neg a3, a5 +;; 94: not a5, a3 +;; 98: and a1, a0, a5 +;; 9c: lw a0, 0(a1) +;; a0: ld ra, 8(sp) +;; a4: ld s0, 0(sp) +;; a8: addi sp, sp, 0x10 +;; ac: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 00f7c80debd8..bd0bf6391387 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,42 +18,50 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; slli a4,a2,32 -;; srli a1,a4,32 -;; lui a4,16 -;; addi a2,a4,-4 -;; sltu a5,a2,a1 -;; ld a0,80(a0) -;; add a0,a0,a1 -;; lui a4,65535 -;; slli a1,a4,4 -;; add a0,a0,a1 -;; sub a4,zero,a5 -;; not a5,a4 -;; and a1,a0,a5 -;; sw a3,0(a1) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: slli a4, a2, 0x20 +;; 14: srli a1, a4, 0x20 +;; 18: lui a4, 0x10 +;; 1c: addi a2, a4, -4 +;; 20: sltu a5, a2, a1 +;; 24: ld a0, 0x50(a0) +;; 28: add a0, a0, a1 +;; 2c: lui a4, 0xffff +;; 30: slli a1, a4, 4 +;; 34: add a0, a0, a1 +;; 38: neg a4, a5 +;; 3c: not a5, a4 +;; 40: and a1, a0, a5 +;; 44: sw a3, 0(a1) +;; 48: ld ra, 8(sp) +;; 4c: ld s0, 0(sp) +;; 50: addi sp, sp, 0x10 +;; 54: ret ;; -;; function u0:1: -;; block0: -;; slli a4,a2,32 -;; srli a1,a4,32 -;; lui a4,16 -;; addi a2,a4,-4 -;; sltu a5,a2,a1 -;; ld a0,80(a0) -;; add a0,a0,a1 -;; lui a4,65535 -;; slli a1,a4,4 -;; add a0,a0,a1 -;; sub a3,zero,a5 -;; not a5,a3 -;; and a1,a0,a5 -;; lw a0,0(a1) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 58: addi sp, sp, -0x10 +;; 5c: sd ra, 8(sp) +;; 60: sd s0, 0(sp) +;; 64: mv s0, sp +;; 68: slli a4, a2, 0x20 +;; 6c: srli a1, a4, 0x20 +;; 70: lui a4, 0x10 +;; 74: addi a2, a4, -4 +;; 78: sltu a5, a2, a1 +;; 7c: ld a0, 0x50(a0) +;; 80: add a0, a0, a1 +;; 84: lui a4, 0xffff +;; 88: slli a1, a4, 4 +;; 8c: add a0, a0, a1 +;; 90: neg a3, a5 +;; 94: not a5, a3 +;; 98: and a1, a0, a5 +;; 9c: lw a0, 0(a1) +;; a0: ld ra, 8(sp) +;; a4: ld s0, 0(sp) +;; a8: addi sp, sp, 0x10 +;; ac: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat index b63095c1518f..4ef29b9ab76c 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat @@ -18,24 +18,32 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ld a4,80(a0) -;; slli a1,a2,32 -;; srli a5,a1,32 -;; add a2,a4,a5 -;; sb a3,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x50(a0) +;; 14: slli a1, a2, 0x20 +;; 18: srli a5, a1, 0x20 +;; 1c: add a2, a4, a5 +;; 20: sb a3, 0(a2) +;; 24: ld ra, 8(sp) +;; 28: ld s0, 0(sp) +;; 2c: addi sp, sp, 0x10 +;; 30: ret ;; -;; function u0:1: -;; block0: -;; ld a3,80(a0) -;; slli a1,a2,32 -;; srli a4,a1,32 -;; add a2,a3,a4 -;; lbu a0,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 34: addi sp, sp, -0x10 +;; 38: sd ra, 8(sp) +;; 3c: sd s0, 0(sp) +;; 40: mv s0, sp +;; 44: ld a3, 0x50(a0) +;; 48: slli a1, a2, 0x20 +;; 4c: srli a4, a1, 0x20 +;; 50: add a2, a3, a4 +;; 54: lbu a0, 0(a2) +;; 58: ld ra, 8(sp) +;; 5c: ld s0, 0(sp) +;; 60: addi sp, sp, 0x10 +;; 64: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat index cd4a1c28c1f4..1581404efab5 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,38 +18,54 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; slli a2,a2,32 -;; srli a5,a2,32 -;; ld a4,[const(0)] -;; sltu a4,a4,a5 -;; ld a0,80(a0) -;; add a5,a0,a5 -;; lui a0,1 -;; add a5,a5,a0 -;; sub a1,zero,a4 -;; not a4,a1 -;; and a5,a5,a4 -;; sb a3,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: slli a2, a2, 0x20 +;; 14: srli a5, a2, 0x20 +;; 18: auipc a4, 0 +;; 1c: ld a4, 0x40(a4) +;; 20: sltu a4, a4, a5 +;; 24: ld a0, 0x50(a0) +;; 28: add a5, a0, a5 +;; 2c: lui a0, 1 +;; 30: add a5, a5, a0 +;; 34: neg a1, a4 +;; 38: not a4, a1 +;; 3c: and a5, a5, a4 +;; 40: sb a3, 0(a5) +;; 44: ld ra, 8(sp) +;; 48: ld s0, 0(sp) +;; 4c: addi sp, sp, 0x10 +;; 50: ret +;; 54: .byte 0x00, 0x00, 0x00, 0x00 +;; 58: .byte 0xff, 0xef, 0xff, 0xff +;; 5c: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; slli a2,a2,32 -;; srli a4,a2,32 -;; ld a3,[const(0)] -;; sltu a3,a3,a4 -;; ld a5,80(a0) -;; add a4,a5,a4 -;; lui a5,1 -;; add a4,a4,a5 -;; sub a1,zero,a3 -;; not a3,a1 -;; and a5,a4,a3 -;; lbu a0,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 60: addi sp, sp, -0x10 +;; 64: sd ra, 8(sp) +;; 68: sd s0, 0(sp) +;; 6c: mv s0, sp +;; 70: slli a2, a2, 0x20 +;; 74: srli a4, a2, 0x20 +;; 78: auipc a3, 0 +;; 7c: ld a3, 0x40(a3) +;; 80: sltu a3, a3, a4 +;; 84: ld a5, 0x50(a0) +;; 88: add a4, a5, a4 +;; 8c: lui a5, 1 +;; 90: add a4, a4, a5 +;; 94: neg a1, a3 +;; 98: not a3, a1 +;; 9c: and a5, a4, a3 +;; a0: lbu a0, 0(a5) +;; a4: ld ra, 8(sp) +;; a8: ld s0, 0(sp) +;; ac: addi sp, sp, 0x10 +;; b0: ret +;; b4: .byte 0x00, 0x00, 0x00, 0x00 +;; b8: .byte 0xff, 0xef, 0xff, 0xff +;; bc: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat index 8962082327bd..75d46c664452 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,42 +18,50 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; slli a4,a2,32 -;; srli a1,a4,32 -;; lui a4,16 -;; addi a2,a4,-1 -;; sltu a5,a2,a1 -;; ld a0,80(a0) -;; add a0,a0,a1 -;; lui a4,65535 -;; slli a1,a4,4 -;; add a0,a0,a1 -;; sub a4,zero,a5 -;; not a5,a4 -;; and a1,a0,a5 -;; sb a3,0(a1) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: slli a4, a2, 0x20 +;; 14: srli a1, a4, 0x20 +;; 18: lui a4, 0x10 +;; 1c: addi a2, a4, -1 +;; 20: sltu a5, a2, a1 +;; 24: ld a0, 0x50(a0) +;; 28: add a0, a0, a1 +;; 2c: lui a4, 0xffff +;; 30: slli a1, a4, 4 +;; 34: add a0, a0, a1 +;; 38: neg a4, a5 +;; 3c: not a5, a4 +;; 40: and a1, a0, a5 +;; 44: sb a3, 0(a1) +;; 48: ld ra, 8(sp) +;; 4c: ld s0, 0(sp) +;; 50: addi sp, sp, 0x10 +;; 54: ret ;; -;; function u0:1: -;; block0: -;; slli a4,a2,32 -;; srli a1,a4,32 -;; lui a4,16 -;; addi a2,a4,-1 -;; sltu a5,a2,a1 -;; ld a0,80(a0) -;; add a0,a0,a1 -;; lui a4,65535 -;; slli a1,a4,4 -;; add a0,a0,a1 -;; sub a3,zero,a5 -;; not a5,a3 -;; and a1,a0,a5 -;; lbu a0,0(a1) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 58: addi sp, sp, -0x10 +;; 5c: sd ra, 8(sp) +;; 60: sd s0, 0(sp) +;; 64: mv s0, sp +;; 68: slli a4, a2, 0x20 +;; 6c: srli a1, a4, 0x20 +;; 70: lui a4, 0x10 +;; 74: addi a2, a4, -1 +;; 78: sltu a5, a2, a1 +;; 7c: ld a0, 0x50(a0) +;; 80: add a0, a0, a1 +;; 84: lui a4, 0xffff +;; 88: slli a1, a4, 4 +;; 8c: add a0, a0, a1 +;; 90: neg a3, a5 +;; 94: not a5, a3 +;; 98: and a1, a0, a5 +;; 9c: lbu a0, 0(a1) +;; a0: ld ra, 8(sp) +;; a4: ld s0, 0(sp) +;; a8: addi sp, sp, 0x10 +;; ac: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat index 40422b891ca0..513f8862b43f 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat @@ -18,24 +18,32 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ld a4,80(a0) -;; slli a1,a2,32 -;; srli a5,a1,32 -;; add a2,a4,a5 -;; sw a3,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x50(a0) +;; 14: slli a1, a2, 0x20 +;; 18: srli a5, a1, 0x20 +;; 1c: add a2, a4, a5 +;; 20: sw a3, 0(a2) +;; 24: ld ra, 8(sp) +;; 28: ld s0, 0(sp) +;; 2c: addi sp, sp, 0x10 +;; 30: ret ;; -;; function u0:1: -;; block0: -;; ld a3,80(a0) -;; slli a1,a2,32 -;; srli a4,a1,32 -;; add a2,a3,a4 -;; lw a0,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 34: addi sp, sp, -0x10 +;; 38: sd ra, 8(sp) +;; 3c: sd s0, 0(sp) +;; 40: mv s0, sp +;; 44: ld a3, 0x50(a0) +;; 48: slli a1, a2, 0x20 +;; 4c: srli a4, a1, 0x20 +;; 50: add a2, a3, a4 +;; 54: lw a0, 0(a2) +;; 58: ld ra, 8(sp) +;; 5c: ld s0, 0(sp) +;; 60: addi sp, sp, 0x10 +;; 64: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat index a1f3144f2715..2ff836cd3b90 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,24 +18,36 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a4,80(a0) -;; slli a1,a2,32 -;; srli a5,a1,32 -;; add a2,a4,a5 -;; sw a3,4096(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x50(a0) +;; 14: slli a1, a2, 0x20 +;; 18: srli a5, a1, 0x20 +;; 1c: add a2, a4, a5 +;; 20: lui t6, 1 +;; 24: add t6, t6, a2 +;; 28: sw a3, 0(t6) +;; 2c: ld ra, 8(sp) +;; 30: ld s0, 0(sp) +;; 34: addi sp, sp, 0x10 +;; 38: ret ;; -;; function u0:1: -;; block0: -;; ld a3,80(a0) -;; slli a1,a2,32 -;; srli a4,a1,32 -;; add a2,a3,a4 -;; lw a0,4096(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 3c: addi sp, sp, -0x10 +;; 40: sd ra, 8(sp) +;; 44: sd s0, 0(sp) +;; 48: mv s0, sp +;; 4c: ld a3, 0x50(a0) +;; 50: slli a1, a2, 0x20 +;; 54: srli a4, a1, 0x20 +;; 58: add a2, a3, a4 +;; 5c: lui t6, 1 +;; 60: add t6, t6, a2 +;; 64: lw a0, 0(t6) +;; 68: ld ra, 8(sp) +;; 6c: ld s0, 0(sp) +;; 70: addi sp, sp, 0x10 +;; 74: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat index d8f08386cb41..3ea1fdad508d 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,30 +18,38 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ld a5,80(a0) -;; slli a4,a2,32 -;; srli a0,a4,32 -;; add a5,a5,a0 -;; lui a4,65535 -;; slli a0,a4,4 -;; add a5,a5,a0 -;; sw a3,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a5, 0x50(a0) +;; 14: slli a4, a2, 0x20 +;; 18: srli a0, a4, 0x20 +;; 1c: add a5, a5, a0 +;; 20: lui a4, 0xffff +;; 24: slli a0, a4, 4 +;; 28: add a5, a5, a0 +;; 2c: sw a3, 0(a5) +;; 30: ld ra, 8(sp) +;; 34: ld s0, 0(sp) +;; 38: addi sp, sp, 0x10 +;; 3c: ret ;; -;; function u0:1: -;; block0: -;; ld a5,80(a0) -;; slli a4,a2,32 -;; srli a0,a4,32 -;; add a5,a5,a0 -;; lui a4,65535 -;; slli a0,a4,4 -;; add a5,a5,a0 -;; lw a0,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: addi sp, sp, -0x10 +;; 44: sd ra, 8(sp) +;; 48: sd s0, 0(sp) +;; 4c: mv s0, sp +;; 50: ld a5, 0x50(a0) +;; 54: slli a4, a2, 0x20 +;; 58: srli a0, a4, 0x20 +;; 5c: add a5, a5, a0 +;; 60: lui a4, 0xffff +;; 64: slli a0, a4, 4 +;; 68: add a5, a5, a0 +;; 6c: lw a0, 0(a5) +;; 70: ld ra, 8(sp) +;; 74: ld s0, 0(sp) +;; 78: addi sp, sp, 0x10 +;; 7c: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat index a269a2cec80f..96427640804c 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat @@ -18,24 +18,32 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ld a4,80(a0) -;; slli a1,a2,32 -;; srli a5,a1,32 -;; add a2,a4,a5 -;; sb a3,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x50(a0) +;; 14: slli a1, a2, 0x20 +;; 18: srli a5, a1, 0x20 +;; 1c: add a2, a4, a5 +;; 20: sb a3, 0(a2) +;; 24: ld ra, 8(sp) +;; 28: ld s0, 0(sp) +;; 2c: addi sp, sp, 0x10 +;; 30: ret ;; -;; function u0:1: -;; block0: -;; ld a3,80(a0) -;; slli a1,a2,32 -;; srli a4,a1,32 -;; add a2,a3,a4 -;; lbu a0,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 34: addi sp, sp, -0x10 +;; 38: sd ra, 8(sp) +;; 3c: sd s0, 0(sp) +;; 40: mv s0, sp +;; 44: ld a3, 0x50(a0) +;; 48: slli a1, a2, 0x20 +;; 4c: srli a4, a1, 0x20 +;; 50: add a2, a3, a4 +;; 54: lbu a0, 0(a2) +;; 58: ld ra, 8(sp) +;; 5c: ld s0, 0(sp) +;; 60: addi sp, sp, 0x10 +;; 64: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat index ec340e145473..7eb06b614757 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,24 +18,36 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a4,80(a0) -;; slli a1,a2,32 -;; srli a5,a1,32 -;; add a2,a4,a5 -;; sb a3,4096(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x50(a0) +;; 14: slli a1, a2, 0x20 +;; 18: srli a5, a1, 0x20 +;; 1c: add a2, a4, a5 +;; 20: lui t6, 1 +;; 24: add t6, t6, a2 +;; 28: sb a3, 0(t6) +;; 2c: ld ra, 8(sp) +;; 30: ld s0, 0(sp) +;; 34: addi sp, sp, 0x10 +;; 38: ret ;; -;; function u0:1: -;; block0: -;; ld a3,80(a0) -;; slli a1,a2,32 -;; srli a4,a1,32 -;; add a2,a3,a4 -;; lbu a0,4096(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 3c: addi sp, sp, -0x10 +;; 40: sd ra, 8(sp) +;; 44: sd s0, 0(sp) +;; 48: mv s0, sp +;; 4c: ld a3, 0x50(a0) +;; 50: slli a1, a2, 0x20 +;; 54: srli a4, a1, 0x20 +;; 58: add a2, a3, a4 +;; 5c: lui t6, 1 +;; 60: add t6, t6, a2 +;; 64: lbu a0, 0(t6) +;; 68: ld ra, 8(sp) +;; 6c: ld s0, 0(sp) +;; 70: addi sp, sp, 0x10 +;; 74: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat index 7530c2056d54..cce85293a74d 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,30 +18,38 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ld a5,80(a0) -;; slli a4,a2,32 -;; srli a0,a4,32 -;; add a5,a5,a0 -;; lui a4,65535 -;; slli a0,a4,4 -;; add a5,a5,a0 -;; sb a3,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a5, 0x50(a0) +;; 14: slli a4, a2, 0x20 +;; 18: srli a0, a4, 0x20 +;; 1c: add a5, a5, a0 +;; 20: lui a4, 0xffff +;; 24: slli a0, a4, 4 +;; 28: add a5, a5, a0 +;; 2c: sb a3, 0(a5) +;; 30: ld ra, 8(sp) +;; 34: ld s0, 0(sp) +;; 38: addi sp, sp, 0x10 +;; 3c: ret ;; -;; function u0:1: -;; block0: -;; ld a5,80(a0) -;; slli a4,a2,32 -;; srli a0,a4,32 -;; add a5,a5,a0 -;; lui a4,65535 -;; slli a0,a4,4 -;; add a5,a5,a0 -;; lbu a0,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: addi sp, sp, -0x10 +;; 44: sd ra, 8(sp) +;; 48: sd s0, 0(sp) +;; 4c: mv s0, sp +;; 50: ld a5, 0x50(a0) +;; 54: slli a4, a2, 0x20 +;; 58: srli a0, a4, 0x20 +;; 5c: add a5, a5, a0 +;; 60: lui a4, 0xffff +;; 64: slli a0, a4, 4 +;; 68: add a5, a5, a0 +;; 6c: lbu a0, 0(a5) +;; 70: ld ra, 8(sp) +;; 74: ld s0, 0(sp) +;; 78: addi sp, sp, 0x10 +;; 7c: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat index f5e032500c89..76a5b5fd9eba 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat @@ -18,24 +18,32 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; ld a4,80(a0) -;; slli a1,a2,32 -;; srli a5,a1,32 -;; add a2,a4,a5 -;; sw a3,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x50(a0) +;; 14: slli a1, a2, 0x20 +;; 18: srli a5, a1, 0x20 +;; 1c: add a2, a4, a5 +;; 20: sw a3, 0(a2) +;; 24: ld ra, 8(sp) +;; 28: ld s0, 0(sp) +;; 2c: addi sp, sp, 0x10 +;; 30: ret ;; -;; function u0:1: -;; block0: -;; ld a3,80(a0) -;; slli a1,a2,32 -;; srli a4,a1,32 -;; add a2,a3,a4 -;; lw a0,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 34: addi sp, sp, -0x10 +;; 38: sd ra, 8(sp) +;; 3c: sd s0, 0(sp) +;; 40: mv s0, sp +;; 44: ld a3, 0x50(a0) +;; 48: slli a1, a2, 0x20 +;; 4c: srli a4, a1, 0x20 +;; 50: add a2, a3, a4 +;; 54: lw a0, 0(a2) +;; 58: ld ra, 8(sp) +;; 5c: ld s0, 0(sp) +;; 60: addi sp, sp, 0x10 +;; 64: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat index e3e4a0c62dc8..0595056e1f57 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,24 +18,36 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a4,80(a0) -;; slli a1,a2,32 -;; srli a5,a1,32 -;; add a2,a4,a5 -;; sw a3,4096(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x50(a0) +;; 14: slli a1, a2, 0x20 +;; 18: srli a5, a1, 0x20 +;; 1c: add a2, a4, a5 +;; 20: lui t6, 1 +;; 24: add t6, t6, a2 +;; 28: sw a3, 0(t6) +;; 2c: ld ra, 8(sp) +;; 30: ld s0, 0(sp) +;; 34: addi sp, sp, 0x10 +;; 38: ret ;; -;; function u0:1: -;; block0: -;; ld a3,80(a0) -;; slli a1,a2,32 -;; srli a4,a1,32 -;; add a2,a3,a4 -;; lw a0,4096(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 3c: addi sp, sp, -0x10 +;; 40: sd ra, 8(sp) +;; 44: sd s0, 0(sp) +;; 48: mv s0, sp +;; 4c: ld a3, 0x50(a0) +;; 50: slli a1, a2, 0x20 +;; 54: srli a4, a1, 0x20 +;; 58: add a2, a3, a4 +;; 5c: lui t6, 1 +;; 60: add t6, t6, a2 +;; 64: lw a0, 0(t6) +;; 68: ld ra, 8(sp) +;; 6c: ld s0, 0(sp) +;; 70: addi sp, sp, 0x10 +;; 74: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 1c3108861f69..156467f21ea4 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,30 +18,38 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ld a5,80(a0) -;; slli a4,a2,32 -;; srli a0,a4,32 -;; add a5,a5,a0 -;; lui a4,65535 -;; slli a0,a4,4 -;; add a5,a5,a0 -;; sw a3,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a5, 0x50(a0) +;; 14: slli a4, a2, 0x20 +;; 18: srli a0, a4, 0x20 +;; 1c: add a5, a5, a0 +;; 20: lui a4, 0xffff +;; 24: slli a0, a4, 4 +;; 28: add a5, a5, a0 +;; 2c: sw a3, 0(a5) +;; 30: ld ra, 8(sp) +;; 34: ld s0, 0(sp) +;; 38: addi sp, sp, 0x10 +;; 3c: ret ;; -;; function u0:1: -;; block0: -;; ld a5,80(a0) -;; slli a4,a2,32 -;; srli a0,a4,32 -;; add a5,a5,a0 -;; lui a4,65535 -;; slli a0,a4,4 -;; add a5,a5,a0 -;; lw a0,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: addi sp, sp, -0x10 +;; 44: sd ra, 8(sp) +;; 48: sd s0, 0(sp) +;; 4c: mv s0, sp +;; 50: ld a5, 0x50(a0) +;; 54: slli a4, a2, 0x20 +;; 58: srli a0, a4, 0x20 +;; 5c: add a5, a5, a0 +;; 60: lui a4, 0xffff +;; 64: slli a0, a4, 4 +;; 68: add a5, a5, a0 +;; 6c: lw a0, 0(a5) +;; 70: ld ra, 8(sp) +;; 74: ld s0, 0(sp) +;; 78: addi sp, sp, 0x10 +;; 7c: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat index ef17ba2fc273..7f38bfbee6d8 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat @@ -18,24 +18,32 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ld a4,80(a0) -;; slli a1,a2,32 -;; srli a5,a1,32 -;; add a2,a4,a5 -;; sb a3,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x50(a0) +;; 14: slli a1, a2, 0x20 +;; 18: srli a5, a1, 0x20 +;; 1c: add a2, a4, a5 +;; 20: sb a3, 0(a2) +;; 24: ld ra, 8(sp) +;; 28: ld s0, 0(sp) +;; 2c: addi sp, sp, 0x10 +;; 30: ret ;; -;; function u0:1: -;; block0: -;; ld a3,80(a0) -;; slli a1,a2,32 -;; srli a4,a1,32 -;; add a2,a3,a4 -;; lbu a0,0(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 34: addi sp, sp, -0x10 +;; 38: sd ra, 8(sp) +;; 3c: sd s0, 0(sp) +;; 40: mv s0, sp +;; 44: ld a3, 0x50(a0) +;; 48: slli a1, a2, 0x20 +;; 4c: srli a4, a1, 0x20 +;; 50: add a2, a3, a4 +;; 54: lbu a0, 0(a2) +;; 58: ld ra, 8(sp) +;; 5c: ld s0, 0(sp) +;; 60: addi sp, sp, 0x10 +;; 64: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat index 67a9d45864ba..53d209a4190d 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,24 +18,36 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a4,80(a0) -;; slli a1,a2,32 -;; srli a5,a1,32 -;; add a2,a4,a5 -;; sb a3,4096(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a4, 0x50(a0) +;; 14: slli a1, a2, 0x20 +;; 18: srli a5, a1, 0x20 +;; 1c: add a2, a4, a5 +;; 20: lui t6, 1 +;; 24: add t6, t6, a2 +;; 28: sb a3, 0(t6) +;; 2c: ld ra, 8(sp) +;; 30: ld s0, 0(sp) +;; 34: addi sp, sp, 0x10 +;; 38: ret ;; -;; function u0:1: -;; block0: -;; ld a3,80(a0) -;; slli a1,a2,32 -;; srli a4,a1,32 -;; add a2,a3,a4 -;; lbu a0,4096(a2) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 3c: addi sp, sp, -0x10 +;; 40: sd ra, 8(sp) +;; 44: sd s0, 0(sp) +;; 48: mv s0, sp +;; 4c: ld a3, 0x50(a0) +;; 50: slli a1, a2, 0x20 +;; 54: srli a4, a1, 0x20 +;; 58: add a2, a3, a4 +;; 5c: lui t6, 1 +;; 60: add t6, t6, a2 +;; 64: lbu a0, 0(t6) +;; 68: ld ra, 8(sp) +;; 6c: ld s0, 0(sp) +;; 70: addi sp, sp, 0x10 +;; 74: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat index fd714ca47c59..5e83b637b383 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,30 +18,38 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; ld a5,80(a0) -;; slli a4,a2,32 -;; srli a0,a4,32 -;; add a5,a5,a0 -;; lui a4,65535 -;; slli a0,a4,4 -;; add a5,a5,a0 -;; sb a3,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: ld a5, 0x50(a0) +;; 14: slli a4, a2, 0x20 +;; 18: srli a0, a4, 0x20 +;; 1c: add a5, a5, a0 +;; 20: lui a4, 0xffff +;; 24: slli a0, a4, 4 +;; 28: add a5, a5, a0 +;; 2c: sb a3, 0(a5) +;; 30: ld ra, 8(sp) +;; 34: ld s0, 0(sp) +;; 38: addi sp, sp, 0x10 +;; 3c: ret ;; -;; function u0:1: -;; block0: -;; ld a5,80(a0) -;; slli a4,a2,32 -;; srli a0,a4,32 -;; add a5,a5,a0 -;; lui a4,65535 -;; slli a0,a4,4 -;; add a5,a5,a0 -;; lbu a0,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 40: addi sp, sp, -0x10 +;; 44: sd ra, 8(sp) +;; 48: sd s0, 0(sp) +;; 4c: mv s0, sp +;; 50: ld a5, 0x50(a0) +;; 54: slli a4, a2, 0x20 +;; 58: srli a0, a4, 0x20 +;; 5c: add a5, a5, a0 +;; 60: lui a4, 0xffff +;; 64: slli a0, a4, 4 +;; 68: add a5, a5, a0 +;; 6c: lbu a0, 0(a5) +;; 70: ld ra, 8(sp) +;; 74: ld s0, 0(sp) +;; 78: addi sp, sp, 0x10 +;; 7c: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat index 999ee2df214c..4ea3e6277a6d 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat @@ -18,34 +18,38 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; lui a1,262144 -;; addi a4,a1,-1 -;; slli a5,a4,2 -;; bgtu a2,a5,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a4,a4,a2 -;; sw a3,0(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: lui a1, 0x40000 +;; 14: addi a4, a1, -1 +;; 18: slli a5, a4, 2 +;; 1c: bltu a5, a2, 0x20 +;; 20: ld a4, 0x50(a0) +;; 24: add a4, a4, a2 +;; 28: sw a3, 0(a4) +;; 2c: ld ra, 8(sp) +;; 30: ld s0, 0(sp) +;; 34: addi sp, sp, 0x10 +;; 38: ret +;; 3c: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; lui a1,262144 -;; addi a3,a1,-1 -;; slli a5,a3,2 -;; bgtu a2,a5,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a4,a4,a2 -;; lw a0,0(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 40: addi sp, sp, -0x10 +;; 44: sd ra, 8(sp) +;; 48: sd s0, 0(sp) +;; 4c: mv s0, sp +;; 50: lui a1, 0x40000 +;; 54: addi a3, a1, -1 +;; 58: slli a5, a3, 2 +;; 5c: bltu a5, a2, 0x20 +;; 60: ld a4, 0x50(a0) +;; 64: add a4, a4, a2 +;; 68: lw a0, 0(a4) +;; 6c: ld ra, 8(sp) +;; 70: ld s0, 0(sp) +;; 74: addi sp, sp, 0x10 +;; 78: ret +;; 7c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat index 5061aa5e0645..dc5428337261 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,34 +18,42 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; lui a1,262144 -;; addi a4,a1,-1025 -;; slli a5,a4,2 -;; bgtu a2,a5,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a4,a4,a2 -;; sw a3,4096(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: lui a1, 0x40000 +;; 14: addi a4, a1, -0x401 +;; 18: slli a5, a4, 2 +;; 1c: bltu a5, a2, 0x28 +;; 20: ld a4, 0x50(a0) +;; 24: add a4, a4, a2 +;; 28: lui t6, 1 +;; 2c: add t6, t6, a4 +;; 30: sw a3, 0(t6) +;; 34: ld ra, 8(sp) +;; 38: ld s0, 0(sp) +;; 3c: addi sp, sp, 0x10 +;; 40: ret +;; 44: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; lui a1,262144 -;; addi a3,a1,-1025 -;; slli a5,a3,2 -;; bgtu a2,a5,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a4,a4,a2 -;; lw a0,4096(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 48: addi sp, sp, -0x10 +;; 4c: sd ra, 8(sp) +;; 50: sd s0, 0(sp) +;; 54: mv s0, sp +;; 58: lui a1, 0x40000 +;; 5c: addi a3, a1, -0x401 +;; 60: slli a5, a3, 2 +;; 64: bltu a5, a2, 0x28 +;; 68: ld a4, 0x50(a0) +;; 6c: add a4, a4, a2 +;; 70: lui t6, 1 +;; 74: add t6, t6, a4 +;; 78: lw a0, 0(t6) +;; 7c: ld ra, 8(sp) +;; 80: ld s0, 0(sp) +;; 84: addi sp, sp, 0x10 +;; 88: ret +;; 8c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat index 5b0e4228872e..8b3dc3b07400 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,38 +18,42 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; lui a4,16 -;; addi a1,a4,-4 -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a0,80(a0) -;; add a0,a0,a2 -;; lui a5,65535 -;; slli a1,a5,4 -;; add a0,a0,a1 -;; sw a3,0(a0) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: lui a4, 0x10 +;; 14: addi a1, a4, -4 +;; 18: bltu a1, a2, 0x2c +;; 1c: ld a0, 0x50(a0) +;; 20: add a0, a0, a2 +;; 24: lui a5, 0xffff +;; 28: slli a1, a5, 4 +;; 2c: add a0, a0, a1 +;; 30: sw a3, 0(a0) +;; 34: ld ra, 8(sp) +;; 38: ld s0, 0(sp) +;; 3c: addi sp, sp, 0x10 +;; 40: ret +;; 44: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; lui a4,16 -;; addi a1,a4,-4 -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a0,80(a0) -;; add a0,a0,a2 -;; lui a5,65535 -;; slli a1,a5,4 -;; add a0,a0,a1 -;; lw a0,0(a0) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 48: addi sp, sp, -0x10 +;; 4c: sd ra, 8(sp) +;; 50: sd s0, 0(sp) +;; 54: mv s0, sp +;; 58: lui a4, 0x10 +;; 5c: addi a1, a4, -4 +;; 60: bltu a1, a2, 0x2c +;; 64: ld a0, 0x50(a0) +;; 68: add a0, a0, a2 +;; 6c: lui a5, 0xffff +;; 70: slli a1, a5, 4 +;; 74: add a0, a0, a1 +;; 78: lw a0, 0(a0) +;; 7c: ld ra, 8(sp) +;; 80: ld s0, 0(sp) +;; 84: addi sp, sp, 0x10 +;; 88: ret +;; 8c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat index b01d4d58d211..cc52d41de479 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat @@ -18,30 +18,42 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ld a1,[const(0)] -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a2,a4,a2 -;; sb a3,0(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: auipc a1, 0 +;; 14: ld a1, 0x30(a1) +;; 18: bltu a1, a2, 0x20 +;; 1c: ld a4, 0x50(a0) +;; 20: add a2, a4, a2 +;; 24: sb a3, 0(a2) +;; 28: ld ra, 8(sp) +;; 2c: ld s0, 0(sp) +;; 30: addi sp, sp, 0x10 +;; 34: ret +;; 38: .byte 0x00, 0x00, 0x00, 0x00 +;; 3c: .byte 0x00, 0x00, 0x00, 0x00 +;; 40: .byte 0xff, 0xff, 0xff, 0xff +;; 44: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a1,[const(0)] -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a3,80(a0) -;; add a2,a3,a2 -;; lbu a0,0(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 48: addi sp, sp, -0x10 +;; 4c: sd ra, 8(sp) +;; 50: sd s0, 0(sp) +;; 54: mv s0, sp +;; 58: auipc a1, 0 +;; 5c: ld a1, 0x30(a1) +;; 60: bltu a1, a2, 0x20 +;; 64: ld a3, 0x50(a0) +;; 68: add a2, a3, a2 +;; 6c: lbu a0, 0(a2) +;; 70: ld ra, 8(sp) +;; 74: ld s0, 0(sp) +;; 78: addi sp, sp, 0x10 +;; 7c: ret +;; 80: .byte 0x00, 0x00, 0x00, 0x00 +;; 84: .byte 0x00, 0x00, 0x00, 0x00 +;; 88: .byte 0xff, 0xff, 0xff, 0xff +;; 8c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat index 1bacd1701473..1a54b77f92fb 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,30 +18,46 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a1,[const(0)] -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a2,a4,a2 -;; sb a3,4096(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: auipc a1, 0 +;; 14: ld a1, 0x38(a1) +;; 18: bltu a1, a2, 0x28 +;; 1c: ld a4, 0x50(a0) +;; 20: add a2, a4, a2 +;; 24: lui t6, 1 +;; 28: add t6, t6, a2 +;; 2c: sb a3, 0(t6) +;; 30: ld ra, 8(sp) +;; 34: ld s0, 0(sp) +;; 38: addi sp, sp, 0x10 +;; 3c: ret +;; 40: .byte 0x00, 0x00, 0x00, 0x00 +;; 44: .byte 0x00, 0x00, 0x00, 0x00 +;; 48: .byte 0xff, 0xef, 0xff, 0xff +;; 4c: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a1,[const(0)] -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a3,80(a0) -;; add a2,a3,a2 -;; lbu a0,4096(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 50: addi sp, sp, -0x10 +;; 54: sd ra, 8(sp) +;; 58: sd s0, 0(sp) +;; 5c: mv s0, sp +;; 60: auipc a1, 0 +;; 64: ld a1, 0x38(a1) +;; 68: bltu a1, a2, 0x28 +;; 6c: ld a3, 0x50(a0) +;; 70: add a2, a3, a2 +;; 74: lui t6, 1 +;; 78: add t6, t6, a2 +;; 7c: lbu a0, 0(t6) +;; 80: ld ra, 8(sp) +;; 84: ld s0, 0(sp) +;; 88: addi sp, sp, 0x10 +;; 8c: ret +;; 90: .byte 0x00, 0x00, 0x00, 0x00 +;; 94: .byte 0x00, 0x00, 0x00, 0x00 +;; 98: .byte 0xff, 0xef, 0xff, 0xff +;; 9c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat index eb11b84b2311..44682cd31028 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,38 +18,42 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; lui a4,16 -;; addi a1,a4,-1 -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a0,80(a0) -;; add a0,a0,a2 -;; lui a5,65535 -;; slli a1,a5,4 -;; add a0,a0,a1 -;; sb a3,0(a0) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: lui a4, 0x10 +;; 14: addi a1, a4, -1 +;; 18: bltu a1, a2, 0x2c +;; 1c: ld a0, 0x50(a0) +;; 20: add a0, a0, a2 +;; 24: lui a5, 0xffff +;; 28: slli a1, a5, 4 +;; 2c: add a0, a0, a1 +;; 30: sb a3, 0(a0) +;; 34: ld ra, 8(sp) +;; 38: ld s0, 0(sp) +;; 3c: addi sp, sp, 0x10 +;; 40: ret +;; 44: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; lui a4,16 -;; addi a1,a4,-1 -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a0,80(a0) -;; add a0,a0,a2 -;; lui a5,65535 -;; slli a1,a5,4 -;; add a0,a0,a1 -;; lbu a0,0(a0) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 48: addi sp, sp, -0x10 +;; 4c: sd ra, 8(sp) +;; 50: sd s0, 0(sp) +;; 54: mv s0, sp +;; 58: lui a4, 0x10 +;; 5c: addi a1, a4, -1 +;; 60: bltu a1, a2, 0x2c +;; 64: ld a0, 0x50(a0) +;; 68: add a0, a0, a2 +;; 6c: lui a5, 0xffff +;; 70: slli a1, a5, 4 +;; 74: add a0, a0, a1 +;; 78: lbu a0, 0(a0) +;; 7c: ld ra, 8(sp) +;; 80: ld s0, 0(sp) +;; 84: addi sp, sp, 0x10 +;; 88: ret +;; 8c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat index f01d9e2d65ca..a5d97493832b 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat @@ -18,34 +18,42 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; lui a5,262144 -;; addi a1,a5,-1 -;; slli a4,a1,2 -;; sltu a1,a4,a2 -;; ld a4,80(a0) -;; add a2,a4,a2 -;; sub a5,zero,a1 -;; not a1,a5 -;; and a4,a2,a1 -;; sw a3,0(a4) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: lui a5, 0x40000 +;; 14: addi a1, a5, -1 +;; 18: slli a4, a1, 2 +;; 1c: sltu a1, a4, a2 +;; 20: ld a4, 0x50(a0) +;; 24: add a2, a4, a2 +;; 28: neg a5, a1 +;; 2c: not a1, a5 +;; 30: and a4, a2, a1 +;; 34: sw a3, 0(a4) +;; 38: ld ra, 8(sp) +;; 3c: ld s0, 0(sp) +;; 40: addi sp, sp, 0x10 +;; 44: ret ;; -;; function u0:1: -;; block0: -;; lui a5,262144 -;; addi a1,a5,-1 -;; slli a3,a1,2 -;; sltu a1,a3,a2 -;; ld a3,80(a0) -;; add a2,a3,a2 -;; sub a5,zero,a1 -;; not a1,a5 -;; and a3,a2,a1 -;; lw a0,0(a3) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 48: addi sp, sp, -0x10 +;; 4c: sd ra, 8(sp) +;; 50: sd s0, 0(sp) +;; 54: mv s0, sp +;; 58: lui a5, 0x40000 +;; 5c: addi a1, a5, -1 +;; 60: slli a3, a1, 2 +;; 64: sltu a1, a3, a2 +;; 68: ld a3, 0x50(a0) +;; 6c: add a2, a3, a2 +;; 70: neg a5, a1 +;; 74: not a1, a5 +;; 78: and a3, a2, a1 +;; 7c: lw a0, 0(a3) +;; 80: ld ra, 8(sp) +;; 84: ld s0, 0(sp) +;; 88: addi sp, sp, 0x10 +;; 8c: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat index 4322e5cd5128..76dc32fe7894 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,38 +18,46 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; lui a1,262144 -;; addi a4,a1,-1025 -;; slli a5,a4,2 -;; sltu a4,a5,a2 -;; ld a5,80(a0) -;; add a5,a5,a2 -;; lui a0,1 -;; add a5,a5,a0 -;; sub a1,zero,a4 -;; not a4,a1 -;; and a5,a5,a4 -;; sw a3,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: lui a1, 0x40000 +;; 14: addi a4, a1, -0x401 +;; 18: slli a5, a4, 2 +;; 1c: sltu a4, a5, a2 +;; 20: ld a5, 0x50(a0) +;; 24: add a5, a5, a2 +;; 28: lui a0, 1 +;; 2c: add a5, a5, a0 +;; 30: neg a1, a4 +;; 34: not a4, a1 +;; 38: and a5, a5, a4 +;; 3c: sw a3, 0(a5) +;; 40: ld ra, 8(sp) +;; 44: ld s0, 0(sp) +;; 48: addi sp, sp, 0x10 +;; 4c: ret ;; -;; function u0:1: -;; block0: -;; lui a1,262144 -;; addi a3,a1,-1025 -;; slli a5,a3,2 -;; sltu a3,a5,a2 -;; ld a4,80(a0) -;; add a4,a4,a2 -;; lui a5,1 -;; add a4,a4,a5 -;; sub a1,zero,a3 -;; not a3,a1 -;; and a5,a4,a3 -;; lw a0,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 50: addi sp, sp, -0x10 +;; 54: sd ra, 8(sp) +;; 58: sd s0, 0(sp) +;; 5c: mv s0, sp +;; 60: lui a1, 0x40000 +;; 64: addi a3, a1, -0x401 +;; 68: slli a5, a3, 2 +;; 6c: sltu a3, a5, a2 +;; 70: ld a4, 0x50(a0) +;; 74: add a4, a4, a2 +;; 78: lui a5, 1 +;; 7c: add a4, a4, a5 +;; 80: neg a1, a3 +;; 84: not a3, a1 +;; 88: and a5, a4, a3 +;; 8c: lw a0, 0(a5) +;; 90: ld ra, 8(sp) +;; 94: ld s0, 0(sp) +;; 98: addi sp, sp, 0x10 +;; 9c: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 9888a53bd07f..3455881cf434 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,38 +18,46 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; lui a4,16 -;; addi a4,a4,-4 -;; sltu a4,a4,a2 -;; ld a5,80(a0) -;; add a5,a5,a2 -;; lui a2,65535 -;; slli a0,a2,4 -;; add a5,a5,a0 -;; sub a1,zero,a4 -;; not a4,a1 -;; and a5,a5,a4 -;; sw a3,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: lui a4, 0x10 +;; 14: addi a4, a4, -4 +;; 18: sltu a4, a4, a2 +;; 1c: ld a5, 0x50(a0) +;; 20: add a5, a5, a2 +;; 24: lui a2, 0xffff +;; 28: slli a0, a2, 4 +;; 2c: add a5, a5, a0 +;; 30: neg a1, a4 +;; 34: not a4, a1 +;; 38: and a5, a5, a4 +;; 3c: sw a3, 0(a5) +;; 40: ld ra, 8(sp) +;; 44: ld s0, 0(sp) +;; 48: addi sp, sp, 0x10 +;; 4c: ret ;; -;; function u0:1: -;; block0: -;; lui a3,16 -;; addi a4,a3,-4 -;; sltu a3,a4,a2 -;; ld a4,80(a0) -;; add a4,a4,a2 -;; lui a2,65535 -;; slli a5,a2,4 -;; add a4,a4,a5 -;; sub a1,zero,a3 -;; not a3,a1 -;; and a5,a4,a3 -;; lw a0,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 50: addi sp, sp, -0x10 +;; 54: sd ra, 8(sp) +;; 58: sd s0, 0(sp) +;; 5c: mv s0, sp +;; 60: lui a3, 0x10 +;; 64: addi a4, a3, -4 +;; 68: sltu a3, a4, a2 +;; 6c: ld a4, 0x50(a0) +;; 70: add a4, a4, a2 +;; 74: lui a2, 0xffff +;; 78: slli a5, a2, 4 +;; 7c: add a4, a4, a5 +;; 80: neg a1, a3 +;; 84: not a3, a1 +;; 88: and a5, a4, a3 +;; 8c: lw a0, 0(a5) +;; 90: ld ra, 8(sp) +;; 94: ld s0, 0(sp) +;; 98: addi sp, sp, 0x10 +;; 9c: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat index 1c82f2bc4ff1..56e4cf49a926 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat @@ -18,30 +18,46 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ld a5,[const(0)] -;; sltu a5,a5,a2 -;; ld a0,80(a0) -;; add a0,a0,a2 -;; sub a4,zero,a5 -;; not a5,a4 -;; and a1,a0,a5 -;; sb a3,0(a1) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: auipc a5, 0 +;; 14: ld a5, 0x38(a5) +;; 18: sltu a5, a5, a2 +;; 1c: ld a0, 0x50(a0) +;; 20: add a0, a0, a2 +;; 24: neg a4, a5 +;; 28: not a5, a4 +;; 2c: and a1, a0, a5 +;; 30: sb a3, 0(a1) +;; 34: ld ra, 8(sp) +;; 38: ld s0, 0(sp) +;; 3c: addi sp, sp, 0x10 +;; 40: ret +;; 44: .byte 0x00, 0x00, 0x00, 0x00 +;; 48: .byte 0xff, 0xff, 0xff, 0xff +;; 4c: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a5,[const(0)] -;; sltu a5,a5,a2 -;; ld a0,80(a0) -;; add a0,a0,a2 -;; sub a3,zero,a5 -;; not a5,a3 -;; and a1,a0,a5 -;; lbu a0,0(a1) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 50: addi sp, sp, -0x10 +;; 54: sd ra, 8(sp) +;; 58: sd s0, 0(sp) +;; 5c: mv s0, sp +;; 60: auipc a5, 0 +;; 64: ld a5, 0x38(a5) +;; 68: sltu a5, a5, a2 +;; 6c: ld a0, 0x50(a0) +;; 70: add a0, a0, a2 +;; 74: neg a3, a5 +;; 78: not a5, a3 +;; 7c: and a1, a0, a5 +;; 80: lbu a0, 0(a1) +;; 84: ld ra, 8(sp) +;; 88: ld s0, 0(sp) +;; 8c: addi sp, sp, 0x10 +;; 90: ret +;; 94: .byte 0x00, 0x00, 0x00, 0x00 +;; 98: .byte 0xff, 0xff, 0xff, 0xff +;; 9c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat index 3b07febaf442..93f592eda8db 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,34 +18,50 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a1,[const(0)] -;; sltu a1,a1,a2 -;; ld a4,80(a0) -;; add a2,a4,a2 -;; lui a4,1 -;; add a2,a2,a4 -;; sub a5,zero,a1 -;; not a1,a5 -;; and a4,a2,a1 -;; sb a3,0(a4) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: auipc a1, 0 +;; 14: ld a1, 0x40(a1) +;; 18: sltu a1, a1, a2 +;; 1c: ld a4, 0x50(a0) +;; 20: add a2, a4, a2 +;; 24: lui a4, 1 +;; 28: add a2, a2, a4 +;; 2c: neg a5, a1 +;; 30: not a1, a5 +;; 34: and a4, a2, a1 +;; 38: sb a3, 0(a4) +;; 3c: ld ra, 8(sp) +;; 40: ld s0, 0(sp) +;; 44: addi sp, sp, 0x10 +;; 48: ret +;; 4c: .byte 0x00, 0x00, 0x00, 0x00 +;; 50: .byte 0xff, 0xef, 0xff, 0xff +;; 54: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a1,[const(0)] -;; sltu a1,a1,a2 -;; ld a3,80(a0) -;; add a2,a3,a2 -;; lui a3,1 -;; add a2,a2,a3 -;; sub a5,zero,a1 -;; not a1,a5 -;; and a3,a2,a1 -;; lbu a0,0(a3) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 58: addi sp, sp, -0x10 +;; 5c: sd ra, 8(sp) +;; 60: sd s0, 0(sp) +;; 64: mv s0, sp +;; 68: auipc a1, 0 +;; 6c: ld a1, 0x40(a1) +;; 70: sltu a1, a1, a2 +;; 74: ld a3, 0x50(a0) +;; 78: add a2, a3, a2 +;; 7c: lui a3, 1 +;; 80: add a2, a2, a3 +;; 84: neg a5, a1 +;; 88: not a1, a5 +;; 8c: and a3, a2, a1 +;; 90: lbu a0, 0(a3) +;; 94: ld ra, 8(sp) +;; 98: ld s0, 0(sp) +;; 9c: addi sp, sp, 0x10 +;; a0: ret +;; a4: .byte 0x00, 0x00, 0x00, 0x00 +;; a8: .byte 0xff, 0xef, 0xff, 0xff +;; ac: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat index e99f9ea45e71..946817dd1cff 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,38 +18,46 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; lui a4,16 -;; addi a4,a4,-1 -;; sltu a4,a4,a2 -;; ld a5,80(a0) -;; add a5,a5,a2 -;; lui a2,65535 -;; slli a0,a2,4 -;; add a5,a5,a0 -;; sub a1,zero,a4 -;; not a4,a1 -;; and a5,a5,a4 -;; sb a3,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: lui a4, 0x10 +;; 14: addi a4, a4, -1 +;; 18: sltu a4, a4, a2 +;; 1c: ld a5, 0x50(a0) +;; 20: add a5, a5, a2 +;; 24: lui a2, 0xffff +;; 28: slli a0, a2, 4 +;; 2c: add a5, a5, a0 +;; 30: neg a1, a4 +;; 34: not a4, a1 +;; 38: and a5, a5, a4 +;; 3c: sb a3, 0(a5) +;; 40: ld ra, 8(sp) +;; 44: ld s0, 0(sp) +;; 48: addi sp, sp, 0x10 +;; 4c: ret ;; -;; function u0:1: -;; block0: -;; lui a3,16 -;; addi a4,a3,-1 -;; sltu a3,a4,a2 -;; ld a4,80(a0) -;; add a4,a4,a2 -;; lui a2,65535 -;; slli a5,a2,4 -;; add a4,a4,a5 -;; sub a1,zero,a3 -;; not a3,a1 -;; and a5,a4,a3 -;; lbu a0,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 50: addi sp, sp, -0x10 +;; 54: sd ra, 8(sp) +;; 58: sd s0, 0(sp) +;; 5c: mv s0, sp +;; 60: lui a3, 0x10 +;; 64: addi a4, a3, -1 +;; 68: sltu a3, a4, a2 +;; 6c: ld a4, 0x50(a0) +;; 70: add a4, a4, a2 +;; 74: lui a2, 0xffff +;; 78: slli a5, a2, 4 +;; 7c: add a4, a4, a5 +;; 80: neg a1, a3 +;; 84: not a3, a1 +;; 88: and a5, a4, a3 +;; 8c: lbu a0, 0(a5) +;; 90: ld ra, 8(sp) +;; 94: ld s0, 0(sp) +;; 98: addi sp, sp, 0x10 +;; 9c: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat index 412f674d029c..d9c28623602e 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat @@ -18,34 +18,38 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; lui a1,262144 -;; addi a4,a1,-1 -;; slli a5,a4,2 -;; bgtu a2,a5,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a4,a4,a2 -;; sw a3,0(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: lui a1, 0x40000 +;; 14: addi a4, a1, -1 +;; 18: slli a5, a4, 2 +;; 1c: bltu a5, a2, 0x20 +;; 20: ld a4, 0x50(a0) +;; 24: add a4, a4, a2 +;; 28: sw a3, 0(a4) +;; 2c: ld ra, 8(sp) +;; 30: ld s0, 0(sp) +;; 34: addi sp, sp, 0x10 +;; 38: ret +;; 3c: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; lui a1,262144 -;; addi a3,a1,-1 -;; slli a5,a3,2 -;; bgtu a2,a5,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a4,a4,a2 -;; lw a0,0(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 40: addi sp, sp, -0x10 +;; 44: sd ra, 8(sp) +;; 48: sd s0, 0(sp) +;; 4c: mv s0, sp +;; 50: lui a1, 0x40000 +;; 54: addi a3, a1, -1 +;; 58: slli a5, a3, 2 +;; 5c: bltu a5, a2, 0x20 +;; 60: ld a4, 0x50(a0) +;; 64: add a4, a4, a2 +;; 68: lw a0, 0(a4) +;; 6c: ld ra, 8(sp) +;; 70: ld s0, 0(sp) +;; 74: addi sp, sp, 0x10 +;; 78: ret +;; 7c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat index a26e21cf90cf..700d04336314 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,34 +18,42 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; lui a1,262144 -;; addi a4,a1,-1025 -;; slli a5,a4,2 -;; bgtu a2,a5,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a4,a4,a2 -;; sw a3,4096(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: lui a1, 0x40000 +;; 14: addi a4, a1, -0x401 +;; 18: slli a5, a4, 2 +;; 1c: bltu a5, a2, 0x28 +;; 20: ld a4, 0x50(a0) +;; 24: add a4, a4, a2 +;; 28: lui t6, 1 +;; 2c: add t6, t6, a4 +;; 30: sw a3, 0(t6) +;; 34: ld ra, 8(sp) +;; 38: ld s0, 0(sp) +;; 3c: addi sp, sp, 0x10 +;; 40: ret +;; 44: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; lui a1,262144 -;; addi a3,a1,-1025 -;; slli a5,a3,2 -;; bgtu a2,a5,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a4,a4,a2 -;; lw a0,4096(a4) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 48: addi sp, sp, -0x10 +;; 4c: sd ra, 8(sp) +;; 50: sd s0, 0(sp) +;; 54: mv s0, sp +;; 58: lui a1, 0x40000 +;; 5c: addi a3, a1, -0x401 +;; 60: slli a5, a3, 2 +;; 64: bltu a5, a2, 0x28 +;; 68: ld a4, 0x50(a0) +;; 6c: add a4, a4, a2 +;; 70: lui t6, 1 +;; 74: add t6, t6, a4 +;; 78: lw a0, 0(t6) +;; 7c: ld ra, 8(sp) +;; 80: ld s0, 0(sp) +;; 84: addi sp, sp, 0x10 +;; 88: ret +;; 8c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat index 879dfc5fcdd2..49f40dfe8849 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,38 +18,42 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; lui a4,16 -;; addi a1,a4,-4 -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a0,80(a0) -;; add a0,a0,a2 -;; lui a5,65535 -;; slli a1,a5,4 -;; add a0,a0,a1 -;; sw a3,0(a0) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: lui a4, 0x10 +;; 14: addi a1, a4, -4 +;; 18: bltu a1, a2, 0x2c +;; 1c: ld a0, 0x50(a0) +;; 20: add a0, a0, a2 +;; 24: lui a5, 0xffff +;; 28: slli a1, a5, 4 +;; 2c: add a0, a0, a1 +;; 30: sw a3, 0(a0) +;; 34: ld ra, 8(sp) +;; 38: ld s0, 0(sp) +;; 3c: addi sp, sp, 0x10 +;; 40: ret +;; 44: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; lui a4,16 -;; addi a1,a4,-4 -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a0,80(a0) -;; add a0,a0,a2 -;; lui a5,65535 -;; slli a1,a5,4 -;; add a0,a0,a1 -;; lw a0,0(a0) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 48: addi sp, sp, -0x10 +;; 4c: sd ra, 8(sp) +;; 50: sd s0, 0(sp) +;; 54: mv s0, sp +;; 58: lui a4, 0x10 +;; 5c: addi a1, a4, -4 +;; 60: bltu a1, a2, 0x2c +;; 64: ld a0, 0x50(a0) +;; 68: add a0, a0, a2 +;; 6c: lui a5, 0xffff +;; 70: slli a1, a5, 4 +;; 74: add a0, a0, a1 +;; 78: lw a0, 0(a0) +;; 7c: ld ra, 8(sp) +;; 80: ld s0, 0(sp) +;; 84: addi sp, sp, 0x10 +;; 88: ret +;; 8c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat index da4a5568f213..9c6d65de13ca 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat @@ -18,30 +18,42 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ld a1,[const(0)] -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a2,a4,a2 -;; sb a3,0(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: auipc a1, 0 +;; 14: ld a1, 0x30(a1) +;; 18: bltu a1, a2, 0x20 +;; 1c: ld a4, 0x50(a0) +;; 20: add a2, a4, a2 +;; 24: sb a3, 0(a2) +;; 28: ld ra, 8(sp) +;; 2c: ld s0, 0(sp) +;; 30: addi sp, sp, 0x10 +;; 34: ret +;; 38: .byte 0x00, 0x00, 0x00, 0x00 +;; 3c: .byte 0x00, 0x00, 0x00, 0x00 +;; 40: .byte 0xff, 0xff, 0xff, 0xff +;; 44: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a1,[const(0)] -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a3,80(a0) -;; add a2,a3,a2 -;; lbu a0,0(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 48: addi sp, sp, -0x10 +;; 4c: sd ra, 8(sp) +;; 50: sd s0, 0(sp) +;; 54: mv s0, sp +;; 58: auipc a1, 0 +;; 5c: ld a1, 0x30(a1) +;; 60: bltu a1, a2, 0x20 +;; 64: ld a3, 0x50(a0) +;; 68: add a2, a3, a2 +;; 6c: lbu a0, 0(a2) +;; 70: ld ra, 8(sp) +;; 74: ld s0, 0(sp) +;; 78: addi sp, sp, 0x10 +;; 7c: ret +;; 80: .byte 0x00, 0x00, 0x00, 0x00 +;; 84: .byte 0x00, 0x00, 0x00, 0x00 +;; 88: .byte 0xff, 0xff, 0xff, 0xff +;; 8c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat index 7a8f9cb15fd9..a814536ae889 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,30 +18,46 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a1,[const(0)] -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a4,80(a0) -;; add a2,a4,a2 -;; sb a3,4096(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: auipc a1, 0 +;; 14: ld a1, 0x38(a1) +;; 18: bltu a1, a2, 0x28 +;; 1c: ld a4, 0x50(a0) +;; 20: add a2, a4, a2 +;; 24: lui t6, 1 +;; 28: add t6, t6, a2 +;; 2c: sb a3, 0(t6) +;; 30: ld ra, 8(sp) +;; 34: ld s0, 0(sp) +;; 38: addi sp, sp, 0x10 +;; 3c: ret +;; 40: .byte 0x00, 0x00, 0x00, 0x00 +;; 44: .byte 0x00, 0x00, 0x00, 0x00 +;; 48: .byte 0xff, 0xef, 0xff, 0xff +;; 4c: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a1,[const(0)] -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a3,80(a0) -;; add a2,a3,a2 -;; lbu a0,4096(a2) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 50: addi sp, sp, -0x10 +;; 54: sd ra, 8(sp) +;; 58: sd s0, 0(sp) +;; 5c: mv s0, sp +;; 60: auipc a1, 0 +;; 64: ld a1, 0x38(a1) +;; 68: bltu a1, a2, 0x28 +;; 6c: ld a3, 0x50(a0) +;; 70: add a2, a3, a2 +;; 74: lui t6, 1 +;; 78: add t6, t6, a2 +;; 7c: lbu a0, 0(t6) +;; 80: ld ra, 8(sp) +;; 84: ld s0, 0(sp) +;; 88: addi sp, sp, 0x10 +;; 8c: ret +;; 90: .byte 0x00, 0x00, 0x00, 0x00 +;; 94: .byte 0x00, 0x00, 0x00, 0x00 +;; 98: .byte 0xff, 0xef, 0xff, 0xff +;; 9c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat index be97688bd849..d5ffdb762f35 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,38 +18,42 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; lui a4,16 -;; addi a1,a4,-1 -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a0,80(a0) -;; add a0,a0,a2 -;; lui a5,65535 -;; slli a1,a5,4 -;; add a0,a0,a1 -;; sb a3,0(a0) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: lui a4, 0x10 +;; 14: addi a1, a4, -1 +;; 18: bltu a1, a2, 0x2c +;; 1c: ld a0, 0x50(a0) +;; 20: add a0, a0, a2 +;; 24: lui a5, 0xffff +;; 28: slli a1, a5, 4 +;; 2c: add a0, a0, a1 +;; 30: sb a3, 0(a0) +;; 34: ld ra, 8(sp) +;; 38: ld s0, 0(sp) +;; 3c: addi sp, sp, 0x10 +;; 40: ret +;; 44: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; lui a4,16 -;; addi a1,a4,-1 -;; bgtu a2,a1,taken(label3),not_taken(label1) -;; block1: -;; ld a0,80(a0) -;; add a0,a0,a2 -;; lui a5,65535 -;; slli a1,a5,4 -;; add a0,a0,a1 -;; lbu a0,0(a0) -;; j label2 -;; block2: -;; ret -;; block3: -;; udf##trap_code=heap_oob +;; wasm[0]::function[1]: +;; 48: addi sp, sp, -0x10 +;; 4c: sd ra, 8(sp) +;; 50: sd s0, 0(sp) +;; 54: mv s0, sp +;; 58: lui a4, 0x10 +;; 5c: addi a1, a4, -1 +;; 60: bltu a1, a2, 0x2c +;; 64: ld a0, 0x50(a0) +;; 68: add a0, a0, a2 +;; 6c: lui a5, 0xffff +;; 70: slli a1, a5, 4 +;; 74: add a0, a0, a1 +;; 78: lbu a0, 0(a0) +;; 7c: ld ra, 8(sp) +;; 80: ld s0, 0(sp) +;; 84: addi sp, sp, 0x10 +;; 88: ret +;; 8c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat index 43755d95a7cb..7d40c5d3c520 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat @@ -18,34 +18,42 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; block0: -;; lui a5,262144 -;; addi a1,a5,-1 -;; slli a4,a1,2 -;; sltu a1,a4,a2 -;; ld a4,80(a0) -;; add a2,a4,a2 -;; sub a5,zero,a1 -;; not a1,a5 -;; and a4,a2,a1 -;; sw a3,0(a4) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: lui a5, 0x40000 +;; 14: addi a1, a5, -1 +;; 18: slli a4, a1, 2 +;; 1c: sltu a1, a4, a2 +;; 20: ld a4, 0x50(a0) +;; 24: add a2, a4, a2 +;; 28: neg a5, a1 +;; 2c: not a1, a5 +;; 30: and a4, a2, a1 +;; 34: sw a3, 0(a4) +;; 38: ld ra, 8(sp) +;; 3c: ld s0, 0(sp) +;; 40: addi sp, sp, 0x10 +;; 44: ret ;; -;; function u0:1: -;; block0: -;; lui a5,262144 -;; addi a1,a5,-1 -;; slli a3,a1,2 -;; sltu a1,a3,a2 -;; ld a3,80(a0) -;; add a2,a3,a2 -;; sub a5,zero,a1 -;; not a1,a5 -;; and a3,a2,a1 -;; lw a0,0(a3) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 48: addi sp, sp, -0x10 +;; 4c: sd ra, 8(sp) +;; 50: sd s0, 0(sp) +;; 54: mv s0, sp +;; 58: lui a5, 0x40000 +;; 5c: addi a1, a5, -1 +;; 60: slli a3, a1, 2 +;; 64: sltu a1, a3, a2 +;; 68: ld a3, 0x50(a0) +;; 6c: add a2, a3, a2 +;; 70: neg a5, a1 +;; 74: not a1, a5 +;; 78: and a3, a2, a1 +;; 7c: lw a0, 0(a3) +;; 80: ld ra, 8(sp) +;; 84: ld s0, 0(sp) +;; 88: addi sp, sp, 0x10 +;; 8c: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat index 14f60c79ff55..2e6d44c17070 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,38 +18,46 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; block0: -;; lui a1,262144 -;; addi a4,a1,-1025 -;; slli a5,a4,2 -;; sltu a4,a5,a2 -;; ld a5,80(a0) -;; add a5,a5,a2 -;; lui a0,1 -;; add a5,a5,a0 -;; sub a1,zero,a4 -;; not a4,a1 -;; and a5,a5,a4 -;; sw a3,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: lui a1, 0x40000 +;; 14: addi a4, a1, -0x401 +;; 18: slli a5, a4, 2 +;; 1c: sltu a4, a5, a2 +;; 20: ld a5, 0x50(a0) +;; 24: add a5, a5, a2 +;; 28: lui a0, 1 +;; 2c: add a5, a5, a0 +;; 30: neg a1, a4 +;; 34: not a4, a1 +;; 38: and a5, a5, a4 +;; 3c: sw a3, 0(a5) +;; 40: ld ra, 8(sp) +;; 44: ld s0, 0(sp) +;; 48: addi sp, sp, 0x10 +;; 4c: ret ;; -;; function u0:1: -;; block0: -;; lui a1,262144 -;; addi a3,a1,-1025 -;; slli a5,a3,2 -;; sltu a3,a5,a2 -;; ld a4,80(a0) -;; add a4,a4,a2 -;; lui a5,1 -;; add a4,a4,a5 -;; sub a1,zero,a3 -;; not a3,a1 -;; and a5,a4,a3 -;; lw a0,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 50: addi sp, sp, -0x10 +;; 54: sd ra, 8(sp) +;; 58: sd s0, 0(sp) +;; 5c: mv s0, sp +;; 60: lui a1, 0x40000 +;; 64: addi a3, a1, -0x401 +;; 68: slli a5, a3, 2 +;; 6c: sltu a3, a5, a2 +;; 70: ld a4, 0x50(a0) +;; 74: add a4, a4, a2 +;; 78: lui a5, 1 +;; 7c: add a4, a4, a5 +;; 80: neg a1, a3 +;; 84: not a3, a1 +;; 88: and a5, a4, a3 +;; 8c: lw a0, 0(a5) +;; 90: ld ra, 8(sp) +;; 94: ld s0, 0(sp) +;; 98: addi sp, sp, 0x10 +;; 9c: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat index b0adfa39c870..58843e180693 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,38 +18,46 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; block0: -;; lui a4,16 -;; addi a4,a4,-4 -;; sltu a4,a4,a2 -;; ld a5,80(a0) -;; add a5,a5,a2 -;; lui a2,65535 -;; slli a0,a2,4 -;; add a5,a5,a0 -;; sub a1,zero,a4 -;; not a4,a1 -;; and a5,a5,a4 -;; sw a3,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: lui a4, 0x10 +;; 14: addi a4, a4, -4 +;; 18: sltu a4, a4, a2 +;; 1c: ld a5, 0x50(a0) +;; 20: add a5, a5, a2 +;; 24: lui a2, 0xffff +;; 28: slli a0, a2, 4 +;; 2c: add a5, a5, a0 +;; 30: neg a1, a4 +;; 34: not a4, a1 +;; 38: and a5, a5, a4 +;; 3c: sw a3, 0(a5) +;; 40: ld ra, 8(sp) +;; 44: ld s0, 0(sp) +;; 48: addi sp, sp, 0x10 +;; 4c: ret ;; -;; function u0:1: -;; block0: -;; lui a3,16 -;; addi a4,a3,-4 -;; sltu a3,a4,a2 -;; ld a4,80(a0) -;; add a4,a4,a2 -;; lui a2,65535 -;; slli a5,a2,4 -;; add a4,a4,a5 -;; sub a1,zero,a3 -;; not a3,a1 -;; and a5,a4,a3 -;; lw a0,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 50: addi sp, sp, -0x10 +;; 54: sd ra, 8(sp) +;; 58: sd s0, 0(sp) +;; 5c: mv s0, sp +;; 60: lui a3, 0x10 +;; 64: addi a4, a3, -4 +;; 68: sltu a3, a4, a2 +;; 6c: ld a4, 0x50(a0) +;; 70: add a4, a4, a2 +;; 74: lui a2, 0xffff +;; 78: slli a5, a2, 4 +;; 7c: add a4, a4, a5 +;; 80: neg a1, a3 +;; 84: not a3, a1 +;; 88: and a5, a4, a3 +;; 8c: lw a0, 0(a5) +;; 90: ld ra, 8(sp) +;; 94: ld s0, 0(sp) +;; 98: addi sp, sp, 0x10 +;; 9c: ret diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat index fd992f4d6c8c..81b0a17b8cde 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat @@ -18,30 +18,46 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; block0: -;; ld a5,[const(0)] -;; sltu a5,a5,a2 -;; ld a0,80(a0) -;; add a0,a0,a2 -;; sub a4,zero,a5 -;; not a5,a4 -;; and a1,a0,a5 -;; sb a3,0(a1) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: auipc a5, 0 +;; 14: ld a5, 0x38(a5) +;; 18: sltu a5, a5, a2 +;; 1c: ld a0, 0x50(a0) +;; 20: add a0, a0, a2 +;; 24: neg a4, a5 +;; 28: not a5, a4 +;; 2c: and a1, a0, a5 +;; 30: sb a3, 0(a1) +;; 34: ld ra, 8(sp) +;; 38: ld s0, 0(sp) +;; 3c: addi sp, sp, 0x10 +;; 40: ret +;; 44: .byte 0x00, 0x00, 0x00, 0x00 +;; 48: .byte 0xff, 0xff, 0xff, 0xff +;; 4c: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a5,[const(0)] -;; sltu a5,a5,a2 -;; ld a0,80(a0) -;; add a0,a0,a2 -;; sub a3,zero,a5 -;; not a5,a3 -;; and a1,a0,a5 -;; lbu a0,0(a1) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 50: addi sp, sp, -0x10 +;; 54: sd ra, 8(sp) +;; 58: sd s0, 0(sp) +;; 5c: mv s0, sp +;; 60: auipc a5, 0 +;; 64: ld a5, 0x38(a5) +;; 68: sltu a5, a5, a2 +;; 6c: ld a0, 0x50(a0) +;; 70: add a0, a0, a2 +;; 74: neg a3, a5 +;; 78: not a5, a3 +;; 7c: and a1, a0, a5 +;; 80: lbu a0, 0(a1) +;; 84: ld ra, 8(sp) +;; 88: ld s0, 0(sp) +;; 8c: addi sp, sp, 0x10 +;; 90: ret +;; 94: .byte 0x00, 0x00, 0x00, 0x00 +;; 98: .byte 0xff, 0xff, 0xff, 0xff +;; 9c: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat index 1c67c11a6a71..aec9d185e382 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,34 +18,50 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; block0: -;; ld a1,[const(0)] -;; sltu a1,a1,a2 -;; ld a4,80(a0) -;; add a2,a4,a2 -;; lui a4,1 -;; add a2,a2,a4 -;; sub a5,zero,a1 -;; not a1,a5 -;; and a4,a2,a1 -;; sb a3,0(a4) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: auipc a1, 0 +;; 14: ld a1, 0x40(a1) +;; 18: sltu a1, a1, a2 +;; 1c: ld a4, 0x50(a0) +;; 20: add a2, a4, a2 +;; 24: lui a4, 1 +;; 28: add a2, a2, a4 +;; 2c: neg a5, a1 +;; 30: not a1, a5 +;; 34: and a4, a2, a1 +;; 38: sb a3, 0(a4) +;; 3c: ld ra, 8(sp) +;; 40: ld s0, 0(sp) +;; 44: addi sp, sp, 0x10 +;; 48: ret +;; 4c: .byte 0x00, 0x00, 0x00, 0x00 +;; 50: .byte 0xff, 0xef, 0xff, 0xff +;; 54: .byte 0x00, 0x00, 0x00, 0x00 ;; -;; function u0:1: -;; block0: -;; ld a1,[const(0)] -;; sltu a1,a1,a2 -;; ld a3,80(a0) -;; add a2,a3,a2 -;; lui a3,1 -;; add a2,a2,a3 -;; sub a5,zero,a1 -;; not a1,a5 -;; and a3,a2,a1 -;; lbu a0,0(a3) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 58: addi sp, sp, -0x10 +;; 5c: sd ra, 8(sp) +;; 60: sd s0, 0(sp) +;; 64: mv s0, sp +;; 68: auipc a1, 0 +;; 6c: ld a1, 0x40(a1) +;; 70: sltu a1, a1, a2 +;; 74: ld a3, 0x50(a0) +;; 78: add a2, a3, a2 +;; 7c: lui a3, 1 +;; 80: add a2, a2, a3 +;; 84: neg a5, a1 +;; 88: not a1, a5 +;; 8c: and a3, a2, a1 +;; 90: lbu a0, 0(a3) +;; 94: ld ra, 8(sp) +;; 98: ld s0, 0(sp) +;; 9c: addi sp, sp, 0x10 +;; a0: ret +;; a4: .byte 0x00, 0x00, 0x00, 0x00 +;; a8: .byte 0xff, 0xef, 0xff, 0xff +;; ac: .byte 0x00, 0x00, 0x00, 0x00 diff --git a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat index 92853f6b8e9d..d4371b7ad83b 100644 --- a/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/riscv64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,38 +18,46 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; block0: -;; lui a4,16 -;; addi a4,a4,-1 -;; sltu a4,a4,a2 -;; ld a5,80(a0) -;; add a5,a5,a2 -;; lui a2,65535 -;; slli a0,a2,4 -;; add a5,a5,a0 -;; sub a1,zero,a4 -;; not a4,a1 -;; and a5,a5,a4 -;; sb a3,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: lui a4, 0x10 +;; 14: addi a4, a4, -1 +;; 18: sltu a4, a4, a2 +;; 1c: ld a5, 0x50(a0) +;; 20: add a5, a5, a2 +;; 24: lui a2, 0xffff +;; 28: slli a0, a2, 4 +;; 2c: add a5, a5, a0 +;; 30: neg a1, a4 +;; 34: not a4, a1 +;; 38: and a5, a5, a4 +;; 3c: sb a3, 0(a5) +;; 40: ld ra, 8(sp) +;; 44: ld s0, 0(sp) +;; 48: addi sp, sp, 0x10 +;; 4c: ret ;; -;; function u0:1: -;; block0: -;; lui a3,16 -;; addi a4,a3,-1 -;; sltu a3,a4,a2 -;; ld a4,80(a0) -;; add a4,a4,a2 -;; lui a2,65535 -;; slli a5,a2,4 -;; add a4,a4,a5 -;; sub a1,zero,a3 -;; not a3,a1 -;; and a5,a4,a3 -;; lbu a0,0(a5) -;; j label1 -;; block1: -;; ret +;; wasm[0]::function[1]: +;; 50: addi sp, sp, -0x10 +;; 54: sd ra, 8(sp) +;; 58: sd s0, 0(sp) +;; 5c: mv s0, sp +;; 60: lui a3, 0x10 +;; 64: addi a4, a3, -1 +;; 68: sltu a3, a4, a2 +;; 6c: ld a4, 0x50(a0) +;; 70: add a4, a4, a2 +;; 74: lui a2, 0xffff +;; 78: slli a5, a2, 4 +;; 7c: add a4, a4, a5 +;; 80: neg a1, a3 +;; 84: not a3, a1 +;; 88: and a5, a4, a3 +;; 8c: lbu a0, 0(a5) +;; 90: ld ra, 8(sp) +;; 94: ld s0, 0(sp) +;; 98: addi sp, sp, 0x10 +;; 9c: ret diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat index 35f9ae0d1e4a..3f3de1a425a7 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat @@ -18,40 +18,36 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lg %r4, 88(%r2) -;; llgfr %r3, %r3 -;; aghi %r4, -4 -;; clgr %r3, %r4 -;; jgh label3 ; jg label1 -;; block1: -;; lg %r4, 80(%r2) -;; strv %r5, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: lg %r4, 0x58(%r2) +;; 1e: llgfr %r3, %r3 +;; 22: aghi %r4, -4 +;; 26: clgr %r3, %r4 +;; 2a: jgh 0x44 +;; 30: lg %r4, 0x50(%r2) +;; 36: strv %r5, 0(%r3, %r4) +;; 3c: lmg %r14, %r15, 0x110(%r15) +;; 42: br %r14 +;; 44: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r5, %r4 -;; lg %r4, 88(%r2) -;; llgfr %r3, %r5 -;; aghi %r4, -4 -;; clgr %r3, %r4 -;; jgh label3 ; jg label1 -;; block1: -;; lg %r4, 80(%r2) -;; lrv %r2, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 48: stmg %r14, %r15, 0x70(%r15) +;; 4e: lgr %r1, %r15 +;; 52: aghi %r15, -0xa0 +;; 56: stg %r1, 0(%r15) +;; 5c: lgr %r5, %r4 +;; 60: lg %r4, 0x58(%r2) +;; 66: llgfr %r3, %r5 +;; 6a: aghi %r4, -4 +;; 6e: clgr %r3, %r4 +;; 72: jgh 0x8c +;; 78: lg %r4, 0x50(%r2) +;; 7e: lrv %r2, 0(%r3, %r4) +;; 84: lmg %r14, %r15, 0x110(%r15) +;; 8a: br %r14 +;; 8c: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat index b2b8458dbc87..00dda3b93e80 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,41 +18,37 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lg %r4, 88(%r2) -;; llgfr %r3, %r3 -;; aghi %r4, -4100 -;; clgr %r3, %r4 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r3, 80(%r2) -;; lghi %r2, 4096 -;; strv %r5, 0(%r2,%r3) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: lg %r4, 0x58(%r2) +;; 1e: llgfr %r3, %r3 +;; 22: aghi %r4, -0x1004 +;; 26: clgr %r3, %r4 +;; 2a: jgh 0x48 +;; 30: ag %r3, 0x50(%r2) +;; 36: lghi %r2, 0x1000 +;; 3a: strv %r5, 0(%r2, %r3) +;; 40: lmg %r14, %r15, 0x110(%r15) +;; 46: br %r14 +;; 48: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; llgfr %r5, %r4 -;; aghi %r3, -4100 -;; clgr %r5, %r3 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r5, 80(%r2) -;; lghi %r2, 4096 -;; lrv %r2, 0(%r2,%r5) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 4c: stmg %r14, %r15, 0x70(%r15) +;; 52: lgr %r1, %r15 +;; 56: aghi %r15, -0xa0 +;; 5a: stg %r1, 0(%r15) +;; 60: lg %r3, 0x58(%r2) +;; 66: llgfr %r5, %r4 +;; 6a: aghi %r3, -0x1004 +;; 6e: clgr %r5, %r3 +;; 72: jgh 0x90 +;; 78: ag %r5, 0x50(%r2) +;; 7e: lghi %r2, 0x1000 +;; 82: lrv %r2, 0(%r2, %r5) +;; 88: lmg %r14, %r15, 0x110(%r15) +;; 8e: br %r14 +;; 90: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat index ccfad274d19e..af00ea72ee7e 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,50 +18,40 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r12, %r15, 96(%r15) -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r12, %r4 -;; llilf %r3, 4294901764 -;; algfr %r3, %r4 -;; jgnle .+2 # trap=heap_oob -;; lg %r4, 88(%r2) -;; clgr %r3, %r4 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r12, 80(%r2) -;; llilh %r3, 65535 -;; strv %r5, 0(%r3,%r12) -;; jg label2 -;; block2: -;; lmg %r12, %r15, 96(%r15) -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r12, %r15, 0x60(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: llgfr %r12, %r4 +;; 18: llilf %r3, 0xffff0004 +;; 1e: algfr %r3, %r4 +;; 22: jgnle 0x24 +;; 28: lg %r4, 0x58(%r2) +;; 2e: clgr %r3, %r4 +;; 32: jgh 0x50 +;; 38: ag %r12, 0x50(%r2) +;; 3e: llilh %r3, 0xffff +;; 42: strv %r5, 0(%r3, %r12) +;; 48: lmg %r12, %r15, 0x100(%r15) +;; 4e: br %r14 +;; 50: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r5, %r4 -;; llilf %r3, 4294901764 -;; algfr %r3, %r4 -;; jgnle .+2 # trap=heap_oob -;; lg %r4, 88(%r2) -;; clgr %r3, %r4 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r5, 80(%r2) -;; llilh %r3, 65535 -;; lrv %r2, 0(%r3,%r5) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 54: stmg %r14, %r15, 0x70(%r15) +;; 5a: lgr %r1, %r15 +;; 5e: aghi %r15, -0xa0 +;; 62: stg %r1, 0(%r15) +;; 68: llgfr %r5, %r4 +;; 6c: llilf %r3, 0xffff0004 +;; 72: algfr %r3, %r4 +;; 76: jgnle 0x78 +;; 7c: lg %r4, 0x58(%r2) +;; 82: clgr %r3, %r4 +;; 86: jgh 0xa4 +;; 8c: ag %r5, 0x50(%r2) +;; 92: llilh %r3, 0xffff +;; 96: lrv %r2, 0(%r3, %r5) +;; 9c: lmg %r14, %r15, 0x110(%r15) +;; a2: br %r14 +;; a4: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat index 38cda65dcbbb..2306a6d60349 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat @@ -18,37 +18,33 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lg %r4, 88(%r2) -;; llgfr %r3, %r3 -;; clgr %r3, %r4 -;; jghe label3 ; jg label1 -;; block1: -;; lg %r4, 80(%r2) -;; stc %r5, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: lg %r4, 0x58(%r2) +;; 1e: llgfr %r3, %r3 +;; 22: clgr %r3, %r4 +;; 26: jghe 0x3e +;; 2c: lg %r4, 0x50(%r2) +;; 32: stc %r5, 0(%r3, %r4) +;; 36: lmg %r14, %r15, 0x110(%r15) +;; 3c: br %r14 +;; 3e: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; llgfr %r5, %r4 -;; clgr %r5, %r3 -;; jghe label3 ; jg label1 -;; block1: -;; lg %r3, 80(%r2) -;; llc %r2, 0(%r5,%r3) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 40: stmg %r14, %r15, 0x70(%r15) +;; 46: lgr %r1, %r15 +;; 4a: aghi %r15, -0xa0 +;; 4e: stg %r1, 0(%r15) +;; 54: lg %r3, 0x58(%r2) +;; 5a: llgfr %r5, %r4 +;; 5e: clgr %r5, %r3 +;; 62: jghe 0x7c +;; 68: lg %r3, 0x50(%r2) +;; 6e: llc %r2, 0(%r5, %r3) +;; 74: lmg %r14, %r15, 0x110(%r15) +;; 7a: br %r14 +;; 7c: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat index a50b1c8f7a54..6457de97cd86 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,41 +18,37 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lg %r4, 88(%r2) -;; llgfr %r3, %r3 -;; aghi %r4, -4097 -;; clgr %r3, %r4 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r3, 80(%r2) -;; lghi %r2, 4096 -;; stc %r5, 0(%r2,%r3) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: lg %r4, 0x58(%r2) +;; 1e: llgfr %r3, %r3 +;; 22: aghi %r4, -0x1001 +;; 26: clgr %r3, %r4 +;; 2a: jgh 0x46 +;; 30: ag %r3, 0x50(%r2) +;; 36: lghi %r2, 0x1000 +;; 3a: stc %r5, 0(%r2, %r3) +;; 3e: lmg %r14, %r15, 0x110(%r15) +;; 44: br %r14 +;; 46: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; llgfr %r5, %r4 -;; aghi %r3, -4097 -;; clgr %r5, %r3 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r5, 80(%r2) -;; lghi %r2, 4096 -;; llc %r2, 0(%r2,%r5) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 48: stmg %r14, %r15, 0x70(%r15) +;; 4e: lgr %r1, %r15 +;; 52: aghi %r15, -0xa0 +;; 56: stg %r1, 0(%r15) +;; 5c: lg %r3, 0x58(%r2) +;; 62: llgfr %r5, %r4 +;; 66: aghi %r3, -0x1001 +;; 6a: clgr %r5, %r3 +;; 6e: jgh 0x8c +;; 74: ag %r5, 0x50(%r2) +;; 7a: lghi %r2, 0x1000 +;; 7e: llc %r2, 0(%r2, %r5) +;; 84: lmg %r14, %r15, 0x110(%r15) +;; 8a: br %r14 +;; 8c: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat index 5b886fd185c3..a229a3c4a1f2 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,50 +18,40 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r12, %r15, 96(%r15) -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r12, %r4 -;; llilf %r3, 4294901761 -;; algfr %r3, %r4 -;; jgnle .+2 # trap=heap_oob -;; lg %r4, 88(%r2) -;; clgr %r3, %r4 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r12, 80(%r2) -;; llilh %r3, 65535 -;; stc %r5, 0(%r3,%r12) -;; jg label2 -;; block2: -;; lmg %r12, %r15, 96(%r15) -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r12, %r15, 0x60(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: llgfr %r12, %r4 +;; 18: llilf %r3, 0xffff0001 +;; 1e: algfr %r3, %r4 +;; 22: jgnle 0x24 +;; 28: lg %r4, 0x58(%r2) +;; 2e: clgr %r3, %r4 +;; 32: jgh 0x4e +;; 38: ag %r12, 0x50(%r2) +;; 3e: llilh %r3, 0xffff +;; 42: stc %r5, 0(%r3, %r12) +;; 46: lmg %r12, %r15, 0x100(%r15) +;; 4c: br %r14 +;; 4e: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r5, %r4 -;; llilf %r3, 4294901761 -;; algfr %r3, %r4 -;; jgnle .+2 # trap=heap_oob -;; lg %r4, 88(%r2) -;; clgr %r3, %r4 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r5, 80(%r2) -;; llilh %r3, 65535 -;; llc %r2, 0(%r3,%r5) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 50: stmg %r14, %r15, 0x70(%r15) +;; 56: lgr %r1, %r15 +;; 5a: aghi %r15, -0xa0 +;; 5e: stg %r1, 0(%r15) +;; 64: llgfr %r5, %r4 +;; 68: llilf %r3, 0xffff0001 +;; 6e: algfr %r3, %r4 +;; 72: jgnle 0x74 +;; 78: lg %r4, 0x58(%r2) +;; 7e: clgr %r3, %r4 +;; 82: jgh 0xa0 +;; 88: ag %r5, 0x50(%r2) +;; 8e: llilh %r3, 0xffff +;; 92: llc %r2, 0(%r3, %r5) +;; 98: lmg %r14, %r15, 0x110(%r15) +;; 9e: br %r14 +;; a0: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat index 10a59428cd1b..3a3bbf6a7d01 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat @@ -18,60 +18,36 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; llgfr %r4, %r4 -;; aghik %r7, %r3, -4 -;; lghi %r3, 0 -;; lgr %r6, %r4 -;; ag %r6, 80(%r2) -;; clgr %r4, %r7 -;; locgrh %r6, %r3 -;; strv %r5, 0(%r6) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r6, %r15, 0x30(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r3, 0x58(%r2) +;; 1a: llgfr %r4, %r4 +;; 1e: aghik %r7, %r3, -4 +;; 24: lghi %r3, 0 +;; 28: lgr %r6, %r4 +;; 2c: ag %r6, 0x50(%r2) +;; 32: clgr %r4, %r7 +;; 36: locgrh %r6, %r3 +;; 3a: strv %r5, 0(%r6) +;; 40: lmg %r6, %r15, 0xd0(%r15) +;; 46: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r5, 88(%r2) -;; llgfr %r4, %r4 -;; aghik %r3, %r5, -4 -;; lghi %r5, 0 -;; lgr %r6, %r4 -;; ag %r6, 80(%r2) -;; clgr %r4, %r3 -;; locgrh %r6, %r5 -;; lrv %r2, 0(%r6) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 48: stmg %r6, %r15, 0x30(%r15) +;; 4e: lgr %r1, %r15 +;; 52: aghi %r15, -0xa0 +;; 56: stg %r1, 0(%r15) +;; 5c: lg %r5, 0x58(%r2) +;; 62: llgfr %r4, %r4 +;; 66: aghik %r3, %r5, -4 +;; 6c: lghi %r5, 0 +;; 70: lgr %r6, %r4 +;; 74: ag %r6, 0x50(%r2) +;; 7a: clgr %r4, %r3 +;; 7e: locgrh %r6, %r5 +;; 82: lrv %r2, 0(%r6) +;; 88: lmg %r6, %r15, 0xd0(%r15) +;; 8e: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat index e4db00ac72a8..02426e8298d9 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,59 +18,39 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r8, %r15, 64(%r15) -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lg %r4, 88(%r2) -;; llgfr %r3, %r3 -;; aghik %r8, %r4, -4100 -;; lghi %r4, 0 -;; lgr %r9, %r3 -;; ag %r9, 80(%r2) -;; aghik %r2, %r9, 4096 -;; clgr %r3, %r8 -;; locgrh %r2, %r4 -;; strv %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r8, %r15, 64(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r8, %r15, 0x40(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: lg %r4, 0x58(%r2) +;; 1e: llgfr %r3, %r3 +;; 22: aghik %r8, %r4, -0x1004 +;; 28: lghi %r4, 0 +;; 2c: lgr %r9, %r3 +;; 30: ag %r9, 0x50(%r2) +;; 36: aghik %r2, %r9, 0x1000 +;; 3c: clgr %r3, %r8 +;; 40: locgrh %r2, %r4 +;; 44: strv %r5, 0(%r2) +;; 4a: lmg %r8, %r15, 0xe0(%r15) +;; 50: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r8, %r15, 64(%r15) -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; llgfr %r5, %r4 -;; aghik %r4, %r3, -4100 -;; lghi %r3, 0 -;; lgr %r8, %r5 -;; ag %r8, 80(%r2) -;; aghik %r2, %r8, 4096 -;; clgr %r5, %r4 -;; locgrh %r2, %r3 -;; lrv %r2, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r8, %r15, 64(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 54: stmg %r8, %r15, 0x40(%r15) +;; 5a: lgr %r1, %r15 +;; 5e: aghi %r15, -0xa0 +;; 62: stg %r1, 0(%r15) +;; 68: lg %r3, 0x58(%r2) +;; 6e: llgfr %r5, %r4 +;; 72: aghik %r4, %r3, -0x1004 +;; 78: lghi %r3, 0 +;; 7c: lgr %r8, %r5 +;; 80: ag %r8, 0x50(%r2) +;; 86: aghik %r2, %r8, 0x1000 +;; 8c: clgr %r5, %r4 +;; 90: locgrh %r2, %r3 +;; 94: lrv %r2, 0(%r2) +;; 9a: lmg %r8, %r15, 0xe0(%r15) +;; a0: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 3a41614dc52f..2d563fcb2d89 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,70 +18,46 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r11, %r2 -;; llgfr %r3, %r4 -;; llilf %r2, 4294901764 -;; algfr %r2, %r4 -;; jgnle .+2 # trap=heap_oob -;; lgr %r6, %r11 -;; lg %r11, 88(%r6) -;; lghi %r4, 0 -;; ag %r3, 80(%r6) -;; llilh %r12, 65535 -;; agr %r3, %r12 -;; clgr %r2, %r11 -;; locgrh %r3, %r4 -;; strv %r5, 0(%r3) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r6, %r15, 0x30(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r11, %r2 +;; 18: llgfr %r3, %r4 +;; 1c: llilf %r2, 0xffff0004 +;; 22: algfr %r2, %r4 +;; 26: jgnle 0x28 +;; 2c: lgr %r6, %r11 +;; 30: lg %r11, 0x58(%r6) +;; 36: lghi %r4, 0 +;; 3a: ag %r3, 0x50(%r6) +;; 40: llilh %r12, 0xffff +;; 44: agr %r3, %r12 +;; 48: clgr %r2, %r11 +;; 4c: locgrh %r3, %r4 +;; 50: strv %r5, 0(%r3) +;; 56: lmg %r6, %r15, 0xd0(%r15) +;; 5c: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r5, %r2 -;; llgfr %r3, %r4 -;; llilf %r2, 4294901764 -;; algfr %r2, %r4 -;; jgnle .+2 # trap=heap_oob -;; lgr %r6, %r5 -;; lg %r5, 88(%r6) -;; lghi %r4, 0 -;; ag %r3, 80(%r6) -;; llilh %r11, 65535 -;; agr %r3, %r11 -;; clgr %r2, %r5 -;; locgrh %r3, %r4 -;; lrv %r2, 0(%r3) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 60: stmg %r6, %r15, 0x30(%r15) +;; 66: lgr %r1, %r15 +;; 6a: aghi %r15, -0xa0 +;; 6e: stg %r1, 0(%r15) +;; 74: lgr %r5, %r2 +;; 78: llgfr %r3, %r4 +;; 7c: llilf %r2, 0xffff0004 +;; 82: algfr %r2, %r4 +;; 86: jgnle 0x88 +;; 8c: lgr %r6, %r5 +;; 90: lg %r5, 0x58(%r6) +;; 96: lghi %r4, 0 +;; 9a: ag %r3, 0x50(%r6) +;; a0: llilh %r11, 0xffff +;; a4: agr %r3, %r11 +;; a8: clgr %r2, %r5 +;; ac: locgrh %r3, %r4 +;; b0: lrv %r2, 0(%r3) +;; b6: lmg %r6, %r15, 0xd0(%r15) +;; bc: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat index ccb302118f77..6f5ca438d0f5 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat @@ -18,50 +18,34 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; llgfr %r6, %r4 -;; lghi %r4, 0 -;; lgr %r14, %r6 -;; ag %r14, 80(%r2) -;; clgr %r6, %r3 -;; locgrhe %r14, %r4 -;; stc %r5, 0(%r14) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r6, %r15, 0x30(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r3, 0x58(%r2) +;; 1a: llgfr %r6, %r4 +;; 1e: lghi %r4, 0 +;; 22: lgr %r14, %r6 +;; 26: ag %r14, 0x50(%r2) +;; 2c: clgr %r6, %r3 +;; 30: locgrhe %r14, %r4 +;; 34: stc %r5, 0(%r14) +;; 38: lmg %r6, %r15, 0xd0(%r15) +;; 3e: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r14, %r15, 112(%r15) -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; llgfr %r5, %r4 -;; lghi %r4, 0 -;; lgr %r14, %r5 -;; ag %r14, 80(%r2) -;; clgr %r5, %r3 -;; locgrhe %r14, %r4 -;; llc %r2, 0(%r14) -;; jg label1 -;; block1: -;; lmg %r14, %r15, 112(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 40: stmg %r14, %r15, 0x70(%r15) +;; 46: lgr %r1, %r15 +;; 4a: aghi %r15, -0xa0 +;; 4e: stg %r1, 0(%r15) +;; 54: lg %r3, 0x58(%r2) +;; 5a: llgfr %r5, %r4 +;; 5e: lghi %r4, 0 +;; 62: lgr %r14, %r5 +;; 66: ag %r14, 0x50(%r2) +;; 6c: clgr %r5, %r3 +;; 70: locgrhe %r14, %r4 +;; 74: llc %r2, 0(%r14) +;; 7a: lmg %r14, %r15, 0x110(%r15) +;; 80: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat index 3e7618e4b2d1..0d377437cd98 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,59 +18,39 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r8, %r15, 64(%r15) -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lg %r4, 88(%r2) -;; llgfr %r3, %r3 -;; aghik %r8, %r4, -4097 -;; lghi %r4, 0 -;; lgr %r9, %r3 -;; ag %r9, 80(%r2) -;; aghik %r2, %r9, 4096 -;; clgr %r3, %r8 -;; locgrh %r2, %r4 -;; stc %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r8, %r15, 64(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r8, %r15, 0x40(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: lg %r4, 0x58(%r2) +;; 1e: llgfr %r3, %r3 +;; 22: aghik %r8, %r4, -0x1001 +;; 28: lghi %r4, 0 +;; 2c: lgr %r9, %r3 +;; 30: ag %r9, 0x50(%r2) +;; 36: aghik %r2, %r9, 0x1000 +;; 3c: clgr %r3, %r8 +;; 40: locgrh %r2, %r4 +;; 44: stc %r5, 0(%r2) +;; 48: lmg %r8, %r15, 0xe0(%r15) +;; 4e: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r8, %r15, 64(%r15) -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; llgfr %r5, %r4 -;; aghik %r4, %r3, -4097 -;; lghi %r3, 0 -;; lgr %r8, %r5 -;; ag %r8, 80(%r2) -;; aghik %r2, %r8, 4096 -;; clgr %r5, %r4 -;; locgrh %r2, %r3 -;; llc %r2, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r8, %r15, 64(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 50: stmg %r8, %r15, 0x40(%r15) +;; 56: lgr %r1, %r15 +;; 5a: aghi %r15, -0xa0 +;; 5e: stg %r1, 0(%r15) +;; 64: lg %r3, 0x58(%r2) +;; 6a: llgfr %r5, %r4 +;; 6e: aghik %r4, %r3, -0x1001 +;; 74: lghi %r3, 0 +;; 78: lgr %r8, %r5 +;; 7c: ag %r8, 0x50(%r2) +;; 82: aghik %r2, %r8, 0x1000 +;; 88: clgr %r5, %r4 +;; 8c: locgrh %r2, %r3 +;; 90: llc %r2, 0(%r2) +;; 96: lmg %r8, %r15, 0xe0(%r15) +;; 9c: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat index f54fcad7e6a1..7c3fc229a374 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,70 +18,46 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r11, %r2 -;; llgfr %r3, %r4 -;; llilf %r2, 4294901761 -;; algfr %r2, %r4 -;; jgnle .+2 # trap=heap_oob -;; lgr %r6, %r11 -;; lg %r11, 88(%r6) -;; lghi %r4, 0 -;; ag %r3, 80(%r6) -;; llilh %r12, 65535 -;; agr %r3, %r12 -;; clgr %r2, %r11 -;; locgrh %r3, %r4 -;; stc %r5, 0(%r3) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r6, %r15, 0x30(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r11, %r2 +;; 18: llgfr %r3, %r4 +;; 1c: llilf %r2, 0xffff0001 +;; 22: algfr %r2, %r4 +;; 26: jgnle 0x28 +;; 2c: lgr %r6, %r11 +;; 30: lg %r11, 0x58(%r6) +;; 36: lghi %r4, 0 +;; 3a: ag %r3, 0x50(%r6) +;; 40: llilh %r12, 0xffff +;; 44: agr %r3, %r12 +;; 48: clgr %r2, %r11 +;; 4c: locgrh %r3, %r4 +;; 50: stc %r5, 0(%r3) +;; 54: lmg %r6, %r15, 0xd0(%r15) +;; 5a: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r5, %r2 -;; llgfr %r3, %r4 -;; llilf %r2, 4294901761 -;; algfr %r2, %r4 -;; jgnle .+2 # trap=heap_oob -;; lgr %r6, %r5 -;; lg %r5, 88(%r6) -;; lghi %r4, 0 -;; ag %r3, 80(%r6) -;; llilh %r11, 65535 -;; agr %r3, %r11 -;; clgr %r2, %r5 -;; locgrh %r3, %r4 -;; llc %r2, 0(%r3) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 5c: stmg %r6, %r15, 0x30(%r15) +;; 62: lgr %r1, %r15 +;; 66: aghi %r15, -0xa0 +;; 6a: stg %r1, 0(%r15) +;; 70: lgr %r5, %r2 +;; 74: llgfr %r3, %r4 +;; 78: llilf %r2, 0xffff0001 +;; 7e: algfr %r2, %r4 +;; 82: jgnle 0x84 +;; 88: lgr %r6, %r5 +;; 8c: lg %r5, 0x58(%r6) +;; 92: lghi %r4, 0 +;; 96: ag %r3, 0x50(%r6) +;; 9c: llilh %r11, 0xffff +;; a0: agr %r3, %r11 +;; a4: clgr %r2, %r5 +;; a8: locgrh %r3, %r4 +;; ac: llc %r2, 0(%r3) +;; b2: lmg %r6, %r15, 0xd0(%r15) +;; b8: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat index 9b77e71d350f..d20dab7edecd 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat @@ -18,37 +18,33 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lg %r4, 88(%r2) -;; llgfr %r3, %r3 -;; clgr %r3, %r4 -;; jgh label3 ; jg label1 -;; block1: -;; lg %r4, 80(%r2) -;; strv %r5, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: lg %r4, 0x58(%r2) +;; 1e: llgfr %r3, %r3 +;; 22: clgr %r3, %r4 +;; 26: jgh 0x40 +;; 2c: lg %r4, 0x50(%r2) +;; 32: strv %r5, 0(%r3, %r4) +;; 38: lmg %r14, %r15, 0x110(%r15) +;; 3e: br %r14 +;; 40: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; llgfr %r5, %r4 -;; clgr %r5, %r3 -;; jgh label3 ; jg label1 -;; block1: -;; lg %r3, 80(%r2) -;; lrv %r2, 0(%r5,%r3) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 44: stmg %r14, %r15, 0x70(%r15) +;; 4a: lgr %r1, %r15 +;; 4e: aghi %r15, -0xa0 +;; 52: stg %r1, 0(%r15) +;; 58: lg %r3, 0x58(%r2) +;; 5e: llgfr %r5, %r4 +;; 62: clgr %r5, %r3 +;; 66: jgh 0x80 +;; 6c: lg %r3, 0x50(%r2) +;; 72: lrv %r2, 0(%r5, %r3) +;; 78: lmg %r14, %r15, 0x110(%r15) +;; 7e: br %r14 +;; 80: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat index f4e5cf3599c1..ec1343c12388 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,39 +18,35 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lg %r4, 88(%r2) -;; llgfr %r3, %r3 -;; clgr %r3, %r4 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r3, 80(%r2) -;; lghi %r4, 4096 -;; strv %r5, 0(%r4,%r3) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: lg %r4, 0x58(%r2) +;; 1e: llgfr %r3, %r3 +;; 22: clgr %r3, %r4 +;; 26: jgh 0x44 +;; 2c: ag %r3, 0x50(%r2) +;; 32: lghi %r4, 0x1000 +;; 36: strv %r5, 0(%r4, %r3) +;; 3c: lmg %r14, %r15, 0x110(%r15) +;; 42: br %r14 +;; 44: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; llgfr %r5, %r4 -;; clgr %r5, %r3 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r5, 80(%r2) -;; lghi %r4, 4096 -;; lrv %r2, 0(%r4,%r5) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 48: stmg %r14, %r15, 0x70(%r15) +;; 4e: lgr %r1, %r15 +;; 52: aghi %r15, -0xa0 +;; 56: stg %r1, 0(%r15) +;; 5c: lg %r3, 0x58(%r2) +;; 62: llgfr %r5, %r4 +;; 66: clgr %r5, %r3 +;; 6a: jgh 0x88 +;; 70: ag %r5, 0x50(%r2) +;; 76: lghi %r4, 0x1000 +;; 7a: lrv %r2, 0(%r4, %r5) +;; 80: lmg %r14, %r15, 0x110(%r15) +;; 86: br %r14 +;; 88: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat index 2d3a0697b6a9..41bf4e8704c5 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,39 +18,35 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lg %r4, 88(%r2) -;; llgfr %r3, %r3 -;; clgr %r3, %r4 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r3, 80(%r2) -;; llilh %r4, 65535 -;; strv %r5, 0(%r4,%r3) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: lg %r4, 0x58(%r2) +;; 1e: llgfr %r3, %r3 +;; 22: clgr %r3, %r4 +;; 26: jgh 0x44 +;; 2c: ag %r3, 0x50(%r2) +;; 32: llilh %r4, 0xffff +;; 36: strv %r5, 0(%r4, %r3) +;; 3c: lmg %r14, %r15, 0x110(%r15) +;; 42: br %r14 +;; 44: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; llgfr %r5, %r4 -;; clgr %r5, %r3 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r5, 80(%r2) -;; llilh %r4, 65535 -;; lrv %r2, 0(%r4,%r5) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 48: stmg %r14, %r15, 0x70(%r15) +;; 4e: lgr %r1, %r15 +;; 52: aghi %r15, -0xa0 +;; 56: stg %r1, 0(%r15) +;; 5c: lg %r3, 0x58(%r2) +;; 62: llgfr %r5, %r4 +;; 66: clgr %r5, %r3 +;; 6a: jgh 0x88 +;; 70: ag %r5, 0x50(%r2) +;; 76: llilh %r4, 0xffff +;; 7a: lrv %r2, 0(%r4, %r5) +;; 80: lmg %r14, %r15, 0x110(%r15) +;; 86: br %r14 +;; 88: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat index dd67171cc3ed..1d9273ed8f4a 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat @@ -18,37 +18,33 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lg %r4, 88(%r2) -;; llgfr %r3, %r3 -;; clgr %r3, %r4 -;; jghe label3 ; jg label1 -;; block1: -;; lg %r4, 80(%r2) -;; stc %r5, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: lg %r4, 0x58(%r2) +;; 1e: llgfr %r3, %r3 +;; 22: clgr %r3, %r4 +;; 26: jghe 0x3e +;; 2c: lg %r4, 0x50(%r2) +;; 32: stc %r5, 0(%r3, %r4) +;; 36: lmg %r14, %r15, 0x110(%r15) +;; 3c: br %r14 +;; 3e: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; llgfr %r5, %r4 -;; clgr %r5, %r3 -;; jghe label3 ; jg label1 -;; block1: -;; lg %r3, 80(%r2) -;; llc %r2, 0(%r5,%r3) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 40: stmg %r14, %r15, 0x70(%r15) +;; 46: lgr %r1, %r15 +;; 4a: aghi %r15, -0xa0 +;; 4e: stg %r1, 0(%r15) +;; 54: lg %r3, 0x58(%r2) +;; 5a: llgfr %r5, %r4 +;; 5e: clgr %r5, %r3 +;; 62: jghe 0x7c +;; 68: lg %r3, 0x50(%r2) +;; 6e: llc %r2, 0(%r5, %r3) +;; 74: lmg %r14, %r15, 0x110(%r15) +;; 7a: br %r14 +;; 7c: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat index aa28ea8adfa8..acb7798446b0 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,39 +18,35 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lg %r4, 88(%r2) -;; llgfr %r3, %r3 -;; clgr %r3, %r4 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r3, 80(%r2) -;; lghi %r4, 4096 -;; stc %r5, 0(%r4,%r3) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: lg %r4, 0x58(%r2) +;; 1e: llgfr %r3, %r3 +;; 22: clgr %r3, %r4 +;; 26: jgh 0x42 +;; 2c: ag %r3, 0x50(%r2) +;; 32: lghi %r4, 0x1000 +;; 36: stc %r5, 0(%r4, %r3) +;; 3a: lmg %r14, %r15, 0x110(%r15) +;; 40: br %r14 +;; 42: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; llgfr %r5, %r4 -;; clgr %r5, %r3 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r5, 80(%r2) -;; lghi %r4, 4096 -;; llc %r2, 0(%r4,%r5) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 44: stmg %r14, %r15, 0x70(%r15) +;; 4a: lgr %r1, %r15 +;; 4e: aghi %r15, -0xa0 +;; 52: stg %r1, 0(%r15) +;; 58: lg %r3, 0x58(%r2) +;; 5e: llgfr %r5, %r4 +;; 62: clgr %r5, %r3 +;; 66: jgh 0x84 +;; 6c: ag %r5, 0x50(%r2) +;; 72: lghi %r4, 0x1000 +;; 76: llc %r2, 0(%r4, %r5) +;; 7c: lmg %r14, %r15, 0x110(%r15) +;; 82: br %r14 +;; 84: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat index 5020244bef65..f88fafeab5fb 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,39 +18,35 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lg %r4, 88(%r2) -;; llgfr %r3, %r3 -;; clgr %r3, %r4 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r3, 80(%r2) -;; llilh %r4, 65535 -;; stc %r5, 0(%r4,%r3) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: lg %r4, 0x58(%r2) +;; 1e: llgfr %r3, %r3 +;; 22: clgr %r3, %r4 +;; 26: jgh 0x42 +;; 2c: ag %r3, 0x50(%r2) +;; 32: llilh %r4, 0xffff +;; 36: stc %r5, 0(%r4, %r3) +;; 3a: lmg %r14, %r15, 0x110(%r15) +;; 40: br %r14 +;; 42: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; llgfr %r5, %r4 -;; clgr %r5, %r3 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r5, 80(%r2) -;; llilh %r4, 65535 -;; llc %r2, 0(%r4,%r5) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 44: stmg %r14, %r15, 0x70(%r15) +;; 4a: lgr %r1, %r15 +;; 4e: aghi %r15, -0xa0 +;; 52: stg %r1, 0(%r15) +;; 58: lg %r3, 0x58(%r2) +;; 5e: llgfr %r5, %r4 +;; 62: clgr %r5, %r3 +;; 66: jgh 0x84 +;; 6c: ag %r5, 0x50(%r2) +;; 72: llilh %r4, 0xffff +;; 76: llc %r2, 0(%r4, %r5) +;; 7c: lmg %r14, %r15, 0x110(%r15) +;; 82: br %r14 +;; 84: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat index 9903d56fea63..fa5083925889 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat @@ -18,50 +18,34 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; llgfr %r6, %r4 -;; lghi %r4, 0 -;; lgr %r14, %r6 -;; ag %r14, 80(%r2) -;; clgr %r6, %r3 -;; locgrh %r14, %r4 -;; strv %r5, 0(%r14) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r6, %r15, 0x30(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r3, 0x58(%r2) +;; 1a: llgfr %r6, %r4 +;; 1e: lghi %r4, 0 +;; 22: lgr %r14, %r6 +;; 26: ag %r14, 0x50(%r2) +;; 2c: clgr %r6, %r3 +;; 30: locgrh %r14, %r4 +;; 34: strv %r5, 0(%r14) +;; 3a: lmg %r6, %r15, 0xd0(%r15) +;; 40: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r14, %r15, 112(%r15) -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; llgfr %r5, %r4 -;; lghi %r4, 0 -;; lgr %r14, %r5 -;; ag %r14, 80(%r2) -;; clgr %r5, %r3 -;; locgrh %r14, %r4 -;; lrv %r2, 0(%r14) -;; jg label1 -;; block1: -;; lmg %r14, %r15, 112(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 44: stmg %r14, %r15, 0x70(%r15) +;; 4a: lgr %r1, %r15 +;; 4e: aghi %r15, -0xa0 +;; 52: stg %r1, 0(%r15) +;; 58: lg %r3, 0x58(%r2) +;; 5e: llgfr %r5, %r4 +;; 62: lghi %r4, 0 +;; 66: lgr %r14, %r5 +;; 6a: ag %r14, 0x50(%r2) +;; 70: clgr %r5, %r3 +;; 74: locgrh %r14, %r4 +;; 78: lrv %r2, 0(%r14) +;; 7e: lmg %r14, %r15, 0x110(%r15) +;; 84: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat index f2a7164352c7..826120128ce9 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,58 +18,36 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r7, %r15, 56(%r15) -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r8, 88(%r2) -;; llgfr %r7, %r4 -;; lghi %r3, 0 -;; lgr %r4, %r7 -;; ag %r4, 80(%r2) -;; aghik %r2, %r4, 4096 -;; clgr %r7, %r8 -;; locgrh %r2, %r3 -;; strv %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r7, %r15, 56(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r7, %r15, 0x38(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r8, 0x58(%r2) +;; 1a: llgfr %r7, %r4 +;; 1e: lghi %r3, 0 +;; 22: lgr %r4, %r7 +;; 26: ag %r4, 0x50(%r2) +;; 2c: aghik %r2, %r4, 0x1000 +;; 32: clgr %r7, %r8 +;; 36: locgrh %r2, %r3 +;; 3a: strv %r5, 0(%r2) +;; 40: lmg %r7, %r15, 0xd8(%r15) +;; 46: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r7, %r15, 56(%r15) -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r7, 88(%r2) -;; llgfr %r3, %r4 -;; lghi %r5, 0 -;; lgr %r4, %r3 -;; ag %r4, 80(%r2) -;; aghik %r2, %r4, 4096 -;; clgr %r3, %r7 -;; locgrh %r2, %r5 -;; lrv %r2, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r7, %r15, 56(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 48: stmg %r7, %r15, 0x38(%r15) +;; 4e: lgr %r1, %r15 +;; 52: aghi %r15, -0xa0 +;; 56: stg %r1, 0(%r15) +;; 5c: lg %r7, 0x58(%r2) +;; 62: llgfr %r3, %r4 +;; 66: lghi %r5, 0 +;; 6a: lgr %r4, %r3 +;; 6e: ag %r4, 0x50(%r2) +;; 74: aghik %r2, %r4, 0x1000 +;; 7a: clgr %r3, %r7 +;; 7e: locgrh %r2, %r5 +;; 82: lrv %r2, 0(%r2) +;; 88: lmg %r7, %r15, 0xd8(%r15) +;; 8e: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat index ffd5b8469146..9155cd98a507 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,58 +18,38 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r8, %r15, 64(%r15) -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r8, 88(%r2) -;; llgfr %r4, %r4 -;; lghi %r3, 0 -;; lgr %r9, %r4 -;; ag %r9, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r9, %r2 -;; clgr %r4, %r8 -;; locgrh %r2, %r3 -;; strv %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r8, %r15, 64(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r8, %r15, 0x40(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r8, 0x58(%r2) +;; 1a: llgfr %r4, %r4 +;; 1e: lghi %r3, 0 +;; 22: lgr %r9, %r4 +;; 26: ag %r9, 0x50(%r2) +;; 2c: llilh %r2, 0xffff +;; 30: agrk %r2, %r9, %r2 +;; 34: clgr %r4, %r8 +;; 38: locgrh %r2, %r3 +;; 3c: strv %r5, 0(%r2) +;; 42: lmg %r8, %r15, 0xe0(%r15) +;; 48: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r8, %r15, 64(%r15) -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r5, 88(%r2) -;; llgfr %r3, %r4 -;; lghi %r4, 0 -;; lgr %r8, %r3 -;; ag %r8, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r8, %r2 -;; clgr %r3, %r5 -;; locgrh %r2, %r4 -;; lrv %r2, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r8, %r15, 64(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 4c: stmg %r8, %r15, 0x40(%r15) +;; 52: lgr %r1, %r15 +;; 56: aghi %r15, -0xa0 +;; 5a: stg %r1, 0(%r15) +;; 60: lg %r5, 0x58(%r2) +;; 66: llgfr %r3, %r4 +;; 6a: lghi %r4, 0 +;; 6e: lgr %r8, %r3 +;; 72: ag %r8, 0x50(%r2) +;; 78: llilh %r2, 0xffff +;; 7c: agrk %r2, %r8, %r2 +;; 80: clgr %r3, %r5 +;; 84: locgrh %r2, %r4 +;; 88: lrv %r2, 0(%r2) +;; 8e: lmg %r8, %r15, 0xe0(%r15) +;; 94: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat index 09db2532cad6..5f36f15c19e3 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat @@ -18,50 +18,34 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; llgfr %r6, %r4 -;; lghi %r4, 0 -;; lgr %r14, %r6 -;; ag %r14, 80(%r2) -;; clgr %r6, %r3 -;; locgrhe %r14, %r4 -;; stc %r5, 0(%r14) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r6, %r15, 0x30(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r3, 0x58(%r2) +;; 1a: llgfr %r6, %r4 +;; 1e: lghi %r4, 0 +;; 22: lgr %r14, %r6 +;; 26: ag %r14, 0x50(%r2) +;; 2c: clgr %r6, %r3 +;; 30: locgrhe %r14, %r4 +;; 34: stc %r5, 0(%r14) +;; 38: lmg %r6, %r15, 0xd0(%r15) +;; 3e: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r14, %r15, 112(%r15) -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; llgfr %r5, %r4 -;; lghi %r4, 0 -;; lgr %r14, %r5 -;; ag %r14, 80(%r2) -;; clgr %r5, %r3 -;; locgrhe %r14, %r4 -;; llc %r2, 0(%r14) -;; jg label1 -;; block1: -;; lmg %r14, %r15, 112(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 40: stmg %r14, %r15, 0x70(%r15) +;; 46: lgr %r1, %r15 +;; 4a: aghi %r15, -0xa0 +;; 4e: stg %r1, 0(%r15) +;; 54: lg %r3, 0x58(%r2) +;; 5a: llgfr %r5, %r4 +;; 5e: lghi %r4, 0 +;; 62: lgr %r14, %r5 +;; 66: ag %r14, 0x50(%r2) +;; 6c: clgr %r5, %r3 +;; 70: locgrhe %r14, %r4 +;; 74: llc %r2, 0(%r14) +;; 7a: lmg %r14, %r15, 0x110(%r15) +;; 80: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat index 3539dbce169e..052e06240fed 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,58 +18,36 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r7, %r15, 56(%r15) -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r8, 88(%r2) -;; llgfr %r7, %r4 -;; lghi %r3, 0 -;; lgr %r4, %r7 -;; ag %r4, 80(%r2) -;; aghik %r2, %r4, 4096 -;; clgr %r7, %r8 -;; locgrh %r2, %r3 -;; stc %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r7, %r15, 56(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r7, %r15, 0x38(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r8, 0x58(%r2) +;; 1a: llgfr %r7, %r4 +;; 1e: lghi %r3, 0 +;; 22: lgr %r4, %r7 +;; 26: ag %r4, 0x50(%r2) +;; 2c: aghik %r2, %r4, 0x1000 +;; 32: clgr %r7, %r8 +;; 36: locgrh %r2, %r3 +;; 3a: stc %r5, 0(%r2) +;; 3e: lmg %r7, %r15, 0xd8(%r15) +;; 44: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r7, %r15, 56(%r15) -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r7, 88(%r2) -;; llgfr %r3, %r4 -;; lghi %r5, 0 -;; lgr %r4, %r3 -;; ag %r4, 80(%r2) -;; aghik %r2, %r4, 4096 -;; clgr %r3, %r7 -;; locgrh %r2, %r5 -;; llc %r2, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r7, %r15, 56(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 48: stmg %r7, %r15, 0x38(%r15) +;; 4e: lgr %r1, %r15 +;; 52: aghi %r15, -0xa0 +;; 56: stg %r1, 0(%r15) +;; 5c: lg %r7, 0x58(%r2) +;; 62: llgfr %r3, %r4 +;; 66: lghi %r5, 0 +;; 6a: lgr %r4, %r3 +;; 6e: ag %r4, 0x50(%r2) +;; 74: aghik %r2, %r4, 0x1000 +;; 7a: clgr %r3, %r7 +;; 7e: locgrh %r2, %r5 +;; 82: llc %r2, 0(%r2) +;; 88: lmg %r7, %r15, 0xd8(%r15) +;; 8e: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat index 43db51b05fbf..973db083c136 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,58 +18,38 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r8, %r15, 64(%r15) -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r8, 88(%r2) -;; llgfr %r4, %r4 -;; lghi %r3, 0 -;; lgr %r9, %r4 -;; ag %r9, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r9, %r2 -;; clgr %r4, %r8 -;; locgrh %r2, %r3 -;; stc %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r8, %r15, 64(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r8, %r15, 0x40(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r8, 0x58(%r2) +;; 1a: llgfr %r4, %r4 +;; 1e: lghi %r3, 0 +;; 22: lgr %r9, %r4 +;; 26: ag %r9, 0x50(%r2) +;; 2c: llilh %r2, 0xffff +;; 30: agrk %r2, %r9, %r2 +;; 34: clgr %r4, %r8 +;; 38: locgrh %r2, %r3 +;; 3c: stc %r5, 0(%r2) +;; 40: lmg %r8, %r15, 0xe0(%r15) +;; 46: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r8, %r15, 64(%r15) -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r5, 88(%r2) -;; llgfr %r3, %r4 -;; lghi %r4, 0 -;; lgr %r8, %r3 -;; ag %r8, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r8, %r2 -;; clgr %r3, %r5 -;; locgrh %r2, %r4 -;; llc %r2, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r8, %r15, 64(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 48: stmg %r8, %r15, 0x40(%r15) +;; 4e: lgr %r1, %r15 +;; 52: aghi %r15, -0xa0 +;; 56: stg %r1, 0(%r15) +;; 5c: lg %r5, 0x58(%r2) +;; 62: llgfr %r3, %r4 +;; 66: lghi %r4, 0 +;; 6a: lgr %r8, %r3 +;; 6e: ag %r8, 0x50(%r2) +;; 74: llilh %r2, 0xffff +;; 78: agrk %r2, %r8, %r2 +;; 7c: clgr %r3, %r5 +;; 80: locgrh %r2, %r4 +;; 84: llc %r2, 0(%r2) +;; 8a: lmg %r8, %r15, 0xe0(%r15) +;; 90: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat index 7f28fca067e5..4d078cccc76b 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat @@ -18,36 +18,32 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; aghi %r3, -4 -;; clgr %r4, %r3 -;; jgh label3 ; jg label1 -;; block1: -;; lg %r3, 80(%r2) -;; strv %r5, 0(%r4,%r3) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r3, 0x58(%r2) +;; 1a: aghi %r3, -4 +;; 1e: clgr %r4, %r3 +;; 22: jgh 0x3c +;; 28: lg %r3, 0x50(%r2) +;; 2e: strv %r5, 0(%r4, %r3) +;; 34: lmg %r14, %r15, 0x110(%r15) +;; 3a: br %r14 +;; 3c: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r5, 88(%r2) -;; aghi %r5, -4 -;; clgr %r4, %r5 -;; jgh label3 ; jg label1 -;; block1: -;; lg %r3, 80(%r2) -;; lrv %r2, 0(%r4,%r3) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 40: stmg %r14, %r15, 0x70(%r15) +;; 46: lgr %r1, %r15 +;; 4a: aghi %r15, -0xa0 +;; 4e: stg %r1, 0(%r15) +;; 54: lg %r5, 0x58(%r2) +;; 5a: aghi %r5, -4 +;; 5e: clgr %r4, %r5 +;; 62: jgh 0x7c +;; 68: lg %r3, 0x50(%r2) +;; 6e: lrv %r2, 0(%r4, %r3) +;; 74: lmg %r14, %r15, 0x110(%r15) +;; 7a: br %r14 +;; 7c: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat index 36eaeef92435..b81fed485e5d 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,38 +18,34 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; aghi %r3, -4100 -;; clgr %r4, %r3 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r2, 4096 -;; strv %r5, 0(%r2,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r3, 0x58(%r2) +;; 1a: aghi %r3, -0x1004 +;; 1e: clgr %r4, %r3 +;; 22: jgh 0x40 +;; 28: ag %r4, 0x50(%r2) +;; 2e: lghi %r2, 0x1000 +;; 32: strv %r5, 0(%r2, %r4) +;; 38: lmg %r14, %r15, 0x110(%r15) +;; 3e: br %r14 +;; 40: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; aghi %r3, -4100 -;; clgr %r4, %r3 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r5, 4096 -;; lrv %r2, 0(%r5,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 44: stmg %r14, %r15, 0x70(%r15) +;; 4a: lgr %r1, %r15 +;; 4e: aghi %r15, -0xa0 +;; 52: stg %r1, 0(%r15) +;; 58: lg %r3, 0x58(%r2) +;; 5e: aghi %r3, -0x1004 +;; 62: clgr %r4, %r3 +;; 66: jgh 0x84 +;; 6c: ag %r4, 0x50(%r2) +;; 72: lghi %r5, 0x1000 +;; 76: lrv %r2, 0(%r5, %r4) +;; 7c: lmg %r14, %r15, 0x110(%r15) +;; 82: br %r14 +;; 84: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat index 8c2fb515d7fd..bb1dc665e260 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,54 +18,38 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; algfi %r3, 4294901764 -;; jgnle .+2 # trap=heap_oob -;; lg %r6, 88(%r2) -;; clgr %r3, %r6 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r2, 65535 -;; strv %r5, 0(%r2,%r4) -;; jg label2 -;; block2: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r6, %r15, 0x30(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: algfi %r3, 0xffff0004 +;; 1e: jgnle 0x20 +;; 24: lg %r6, 0x58(%r2) +;; 2a: clgr %r3, %r6 +;; 2e: jgh 0x4c +;; 34: ag %r4, 0x50(%r2) +;; 3a: llilh %r2, 0xffff +;; 3e: strv %r5, 0(%r2, %r4) +;; 44: lmg %r6, %r15, 0xd0(%r15) +;; 4a: br %r14 +;; 4c: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; algfi %r3, 4294901764 -;; jgnle .+2 # trap=heap_oob -;; lg %r5, 88(%r2) -;; clgr %r3, %r5 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r5, 65535 -;; lrv %r2, 0(%r5,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 50: stmg %r14, %r15, 0x70(%r15) +;; 56: lgr %r1, %r15 +;; 5a: aghi %r15, -0xa0 +;; 5e: stg %r1, 0(%r15) +;; 64: lgr %r3, %r4 +;; 68: algfi %r3, 0xffff0004 +;; 6e: jgnle 0x70 +;; 74: lg %r5, 0x58(%r2) +;; 7a: clgr %r3, %r5 +;; 7e: jgh 0x9c +;; 84: ag %r4, 0x50(%r2) +;; 8a: llilh %r5, 0xffff +;; 8e: lrv %r2, 0(%r5, %r4) +;; 94: lmg %r14, %r15, 0x110(%r15) +;; 9a: br %r14 +;; 9c: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat index d91e9c0bf2d6..7bf96518836f 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; clgr %r4, %r3 -;; jghe label3 ; jg label1 -;; block1: -;; lg %r2, 80(%r2) -;; stc %r5, 0(%r4,%r2) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r3, 0x58(%r2) +;; 1a: clgr %r4, %r3 +;; 1e: jghe 0x36 +;; 24: lg %r2, 0x50(%r2) +;; 2a: stc %r5, 0(%r4, %r2) +;; 2e: lmg %r14, %r15, 0x110(%r15) +;; 34: br %r14 +;; 36: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r5, 88(%r2) -;; clgr %r4, %r5 -;; jghe label3 ; jg label1 -;; block1: -;; lg %r2, 80(%r2) -;; llc %r2, 0(%r4,%r2) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 38: stmg %r14, %r15, 0x70(%r15) +;; 3e: lgr %r1, %r15 +;; 42: aghi %r15, -0xa0 +;; 46: stg %r1, 0(%r15) +;; 4c: lg %r5, 0x58(%r2) +;; 52: clgr %r4, %r5 +;; 56: jghe 0x70 +;; 5c: lg %r2, 0x50(%r2) +;; 62: llc %r2, 0(%r4, %r2) +;; 68: lmg %r14, %r15, 0x110(%r15) +;; 6e: br %r14 +;; 70: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat index d8627ccc3949..9874b5b76d92 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,38 +18,34 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; aghi %r3, -4097 -;; clgr %r4, %r3 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r2, 4096 -;; stc %r5, 0(%r2,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r3, 0x58(%r2) +;; 1a: aghi %r3, -0x1001 +;; 1e: clgr %r4, %r3 +;; 22: jgh 0x3e +;; 28: ag %r4, 0x50(%r2) +;; 2e: lghi %r2, 0x1000 +;; 32: stc %r5, 0(%r2, %r4) +;; 36: lmg %r14, %r15, 0x110(%r15) +;; 3c: br %r14 +;; 3e: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; aghi %r3, -4097 -;; clgr %r4, %r3 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r5, 4096 -;; llc %r2, 0(%r5,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 40: stmg %r14, %r15, 0x70(%r15) +;; 46: lgr %r1, %r15 +;; 4a: aghi %r15, -0xa0 +;; 4e: stg %r1, 0(%r15) +;; 54: lg %r3, 0x58(%r2) +;; 5a: aghi %r3, -0x1001 +;; 5e: clgr %r4, %r3 +;; 62: jgh 0x80 +;; 68: ag %r4, 0x50(%r2) +;; 6e: lghi %r5, 0x1000 +;; 72: llc %r2, 0(%r5, %r4) +;; 78: lmg %r14, %r15, 0x110(%r15) +;; 7e: br %r14 +;; 80: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat index 45c17acb2a13..60c8ee2c4740 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,54 +18,38 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; algfi %r3, 4294901761 -;; jgnle .+2 # trap=heap_oob -;; lg %r6, 88(%r2) -;; clgr %r3, %r6 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r2, 65535 -;; stc %r5, 0(%r2,%r4) -;; jg label2 -;; block2: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r6, %r15, 0x30(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: algfi %r3, 0xffff0001 +;; 1e: jgnle 0x20 +;; 24: lg %r6, 0x58(%r2) +;; 2a: clgr %r3, %r6 +;; 2e: jgh 0x4a +;; 34: ag %r4, 0x50(%r2) +;; 3a: llilh %r2, 0xffff +;; 3e: stc %r5, 0(%r2, %r4) +;; 42: lmg %r6, %r15, 0xd0(%r15) +;; 48: br %r14 +;; 4a: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; algfi %r3, 4294901761 -;; jgnle .+2 # trap=heap_oob -;; lg %r5, 88(%r2) -;; clgr %r3, %r5 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r5, 65535 -;; llc %r2, 0(%r5,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 4c: stmg %r14, %r15, 0x70(%r15) +;; 52: lgr %r1, %r15 +;; 56: aghi %r15, -0xa0 +;; 5a: stg %r1, 0(%r15) +;; 60: lgr %r3, %r4 +;; 64: algfi %r3, 0xffff0001 +;; 6a: jgnle 0x6c +;; 70: lg %r5, 0x58(%r2) +;; 76: clgr %r3, %r5 +;; 7a: jgh 0x98 +;; 80: ag %r4, 0x50(%r2) +;; 86: llilh %r5, 0xffff +;; 8a: llc %r2, 0(%r5, %r4) +;; 90: lmg %r14, %r15, 0x110(%r15) +;; 96: br %r14 +;; 98: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat index 3b4da31baf8d..6be9445a80e9 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat @@ -18,50 +18,34 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; aghik %r6, %r3, -4 -;; lghi %r3, 0 -;; lgr %r14, %r4 -;; ag %r14, 80(%r2) -;; clgr %r4, %r6 -;; locgrh %r14, %r3 -;; strv %r5, 0(%r14) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r6, %r15, 0x30(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r3, 0x58(%r2) +;; 1a: aghik %r6, %r3, -4 +;; 20: lghi %r3, 0 +;; 24: lgr %r14, %r4 +;; 28: ag %r14, 0x50(%r2) +;; 2e: clgr %r4, %r6 +;; 32: locgrh %r14, %r3 +;; 36: strv %r5, 0(%r14) +;; 3c: lmg %r6, %r15, 0xd0(%r15) +;; 42: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r14, %r15, 112(%r15) -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; aghik %r5, %r3, -4 -;; lghi %r3, 0 -;; lgr %r14, %r4 -;; ag %r14, 80(%r2) -;; clgr %r4, %r5 -;; locgrh %r14, %r3 -;; lrv %r2, 0(%r14) -;; jg label1 -;; block1: -;; lmg %r14, %r15, 112(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 44: stmg %r14, %r15, 0x70(%r15) +;; 4a: lgr %r1, %r15 +;; 4e: aghi %r15, -0xa0 +;; 52: stg %r1, 0(%r15) +;; 58: lg %r3, 0x58(%r2) +;; 5e: aghik %r5, %r3, -4 +;; 64: lghi %r3, 0 +;; 68: lgr %r14, %r4 +;; 6c: ag %r14, 0x50(%r2) +;; 72: clgr %r4, %r5 +;; 76: locgrh %r14, %r3 +;; 7a: lrv %r2, 0(%r14) +;; 80: lmg %r14, %r15, 0x110(%r15) +;; 86: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat index 9ffa7f9069b5..ac8462bf63c8 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,58 +18,36 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r7, %r15, 56(%r15) -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; aghik %r7, %r3, -4100 -;; lghi %r3, 0 -;; lgr %r8, %r4 -;; ag %r8, 80(%r2) -;; aghik %r2, %r8, 4096 -;; clgr %r4, %r7 -;; locgrh %r2, %r3 -;; strv %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r7, %r15, 56(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r7, %r15, 0x38(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r3, 0x58(%r2) +;; 1a: aghik %r7, %r3, -0x1004 +;; 20: lghi %r3, 0 +;; 24: lgr %r8, %r4 +;; 28: ag %r8, 0x50(%r2) +;; 2e: aghik %r2, %r8, 0x1000 +;; 34: clgr %r4, %r7 +;; 38: locgrh %r2, %r3 +;; 3c: strv %r5, 0(%r2) +;; 42: lmg %r7, %r15, 0xd8(%r15) +;; 48: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r7, %r15, 56(%r15) -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r5, 88(%r2) -;; aghik %r3, %r5, -4100 -;; lghi %r5, 0 -;; lgr %r7, %r4 -;; ag %r7, 80(%r2) -;; aghik %r2, %r7, 4096 -;; clgr %r4, %r3 -;; locgrh %r2, %r5 -;; lrv %r2, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r7, %r15, 56(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 4c: stmg %r7, %r15, 0x38(%r15) +;; 52: lgr %r1, %r15 +;; 56: aghi %r15, -0xa0 +;; 5a: stg %r1, 0(%r15) +;; 60: lg %r5, 0x58(%r2) +;; 66: aghik %r3, %r5, -0x1004 +;; 6c: lghi %r5, 0 +;; 70: lgr %r7, %r4 +;; 74: ag %r7, 0x50(%r2) +;; 7a: aghik %r2, %r7, 0x1000 +;; 80: clgr %r4, %r3 +;; 84: locgrh %r2, %r5 +;; 88: lrv %r2, 0(%r2) +;; 8e: lmg %r7, %r15, 0xd8(%r15) +;; 94: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat index fcdbcb32f0a6..9da5358e8eca 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,59 +18,40 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r8, %r15, 64(%r15) -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r8, %r4 -;; algfi %r8, 4294901764 -;; jgnle .+2 # trap=heap_oob -;; lg %r9, 88(%r2) -;; lghi %r3, 0 -;; ag %r4, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r4, %r2 -;; clgr %r8, %r9 -;; locgrh %r2, %r3 -;; strv %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r8, %r15, 64(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r8, %r15, 0x40(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r8, %r4 +;; 18: algfi %r8, 0xffff0004 +;; 1e: jgnle 0x20 +;; 24: lg %r9, 0x58(%r2) +;; 2a: lghi %r3, 0 +;; 2e: ag %r4, 0x50(%r2) +;; 34: llilh %r2, 0xffff +;; 38: agrk %r2, %r4, %r2 +;; 3c: clgr %r8, %r9 +;; 40: locgrh %r2, %r3 +;; 44: strv %r5, 0(%r2) +;; 4a: lmg %r8, %r15, 0xe0(%r15) +;; 50: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r9, %r15, 72(%r15) -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r5, %r4 -;; algfi %r5, 4294901764 -;; jgnle .+2 # trap=heap_oob -;; lg %r9, 88(%r2) -;; lghi %r3, 0 -;; ag %r4, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r4, %r2 -;; clgr %r5, %r9 -;; locgrh %r2, %r3 -;; lrv %r2, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r9, %r15, 72(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 54: stmg %r9, %r15, 0x48(%r15) +;; 5a: lgr %r1, %r15 +;; 5e: aghi %r15, -0xa0 +;; 62: stg %r1, 0(%r15) +;; 68: lgr %r5, %r4 +;; 6c: algfi %r5, 0xffff0004 +;; 72: jgnle 0x74 +;; 78: lg %r9, 0x58(%r2) +;; 7e: lghi %r3, 0 +;; 82: ag %r4, 0x50(%r2) +;; 88: llilh %r2, 0xffff +;; 8c: agrk %r2, %r4, %r2 +;; 90: clgr %r5, %r9 +;; 94: locgrh %r2, %r3 +;; 98: lrv %r2, 0(%r2) +;; 9e: lmg %r9, %r15, 0xe8(%r15) +;; a4: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat index 75af98a6387f..9bc8ae5cc65e 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat @@ -18,42 +18,32 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r13, %r15, 104(%r15) -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r14, 88(%r2) -;; lghi %r3, 0 -;; lgr %r13, %r4 -;; ag %r13, 80(%r2) -;; clgr %r4, %r14 -;; locgrhe %r13, %r3 -;; stc %r5, 0(%r13) -;; jg label1 -;; block1: -;; lmg %r13, %r15, 104(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r13, %r15, 0x68(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r14, 0x58(%r2) +;; 1a: lghi %r3, 0 +;; 1e: lgr %r13, %r4 +;; 22: ag %r13, 0x50(%r2) +;; 28: clgr %r4, %r14 +;; 2c: locgrhe %r13, %r3 +;; 30: stc %r5, 0(%r13) +;; 34: lmg %r13, %r15, 0x108(%r15) +;; 3a: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r13, %r15, 104(%r15) -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r5, 88(%r2) -;; lghi %r3, 0 -;; lgr %r13, %r4 -;; ag %r13, 80(%r2) -;; clgr %r4, %r5 -;; locgrhe %r13, %r3 -;; llc %r2, 0(%r13) -;; jg label1 -;; block1: -;; lmg %r13, %r15, 104(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 3c: stmg %r13, %r15, 0x68(%r15) +;; 42: lgr %r1, %r15 +;; 46: aghi %r15, -0xa0 +;; 4a: stg %r1, 0(%r15) +;; 50: lg %r5, 0x58(%r2) +;; 56: lghi %r3, 0 +;; 5a: lgr %r13, %r4 +;; 5e: ag %r13, 0x50(%r2) +;; 64: clgr %r4, %r5 +;; 68: locgrhe %r13, %r3 +;; 6c: llc %r2, 0(%r13) +;; 72: lmg %r13, %r15, 0x108(%r15) +;; 78: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat index d826cbe9fc10..4dfed3bf7754 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,58 +18,36 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r7, %r15, 56(%r15) -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; aghik %r7, %r3, -4097 -;; lghi %r3, 0 -;; lgr %r8, %r4 -;; ag %r8, 80(%r2) -;; aghik %r2, %r8, 4096 -;; clgr %r4, %r7 -;; locgrh %r2, %r3 -;; stc %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r7, %r15, 56(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r7, %r15, 0x38(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r3, 0x58(%r2) +;; 1a: aghik %r7, %r3, -0x1001 +;; 20: lghi %r3, 0 +;; 24: lgr %r8, %r4 +;; 28: ag %r8, 0x50(%r2) +;; 2e: aghik %r2, %r8, 0x1000 +;; 34: clgr %r4, %r7 +;; 38: locgrh %r2, %r3 +;; 3c: stc %r5, 0(%r2) +;; 40: lmg %r7, %r15, 0xd8(%r15) +;; 46: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r7, %r15, 56(%r15) -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r5, 88(%r2) -;; aghik %r3, %r5, -4097 -;; lghi %r5, 0 -;; lgr %r7, %r4 -;; ag %r7, 80(%r2) -;; aghik %r2, %r7, 4096 -;; clgr %r4, %r3 -;; locgrh %r2, %r5 -;; llc %r2, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r7, %r15, 56(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 48: stmg %r7, %r15, 0x38(%r15) +;; 4e: lgr %r1, %r15 +;; 52: aghi %r15, -0xa0 +;; 56: stg %r1, 0(%r15) +;; 5c: lg %r5, 0x58(%r2) +;; 62: aghik %r3, %r5, -0x1001 +;; 68: lghi %r5, 0 +;; 6c: lgr %r7, %r4 +;; 70: ag %r7, 0x50(%r2) +;; 76: aghik %r2, %r7, 0x1000 +;; 7c: clgr %r4, %r3 +;; 80: locgrh %r2, %r5 +;; 84: llc %r2, 0(%r2) +;; 8a: lmg %r7, %r15, 0xd8(%r15) +;; 90: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat index e8a8ba5c098b..e1fcb5371bf2 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,59 +18,40 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r8, %r15, 64(%r15) -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r8, %r4 -;; algfi %r8, 4294901761 -;; jgnle .+2 # trap=heap_oob -;; lg %r9, 88(%r2) -;; lghi %r3, 0 -;; ag %r4, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r4, %r2 -;; clgr %r8, %r9 -;; locgrh %r2, %r3 -;; stc %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r8, %r15, 64(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r8, %r15, 0x40(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r8, %r4 +;; 18: algfi %r8, 0xffff0001 +;; 1e: jgnle 0x20 +;; 24: lg %r9, 0x58(%r2) +;; 2a: lghi %r3, 0 +;; 2e: ag %r4, 0x50(%r2) +;; 34: llilh %r2, 0xffff +;; 38: agrk %r2, %r4, %r2 +;; 3c: clgr %r8, %r9 +;; 40: locgrh %r2, %r3 +;; 44: stc %r5, 0(%r2) +;; 48: lmg %r8, %r15, 0xe0(%r15) +;; 4e: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r9, %r15, 72(%r15) -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r5, %r4 -;; algfi %r5, 4294901761 -;; jgnle .+2 # trap=heap_oob -;; lg %r9, 88(%r2) -;; lghi %r3, 0 -;; ag %r4, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r4, %r2 -;; clgr %r5, %r9 -;; locgrh %r2, %r3 -;; llc %r2, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r9, %r15, 72(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 50: stmg %r9, %r15, 0x48(%r15) +;; 56: lgr %r1, %r15 +;; 5a: aghi %r15, -0xa0 +;; 5e: stg %r1, 0(%r15) +;; 64: lgr %r5, %r4 +;; 68: algfi %r5, 0xffff0001 +;; 6e: jgnle 0x70 +;; 74: lg %r9, 0x58(%r2) +;; 7a: lghi %r3, 0 +;; 7e: ag %r4, 0x50(%r2) +;; 84: llilh %r2, 0xffff +;; 88: agrk %r2, %r4, %r2 +;; 8c: clgr %r5, %r9 +;; 90: locgrh %r2, %r3 +;; 94: llc %r2, 0(%r2) +;; 9a: lmg %r9, %r15, 0xe8(%r15) +;; a0: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat index 2525b6c74ca0..de321d1e5190 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; clgr %r4, %r3 -;; jgh label3 ; jg label1 -;; block1: -;; lg %r2, 80(%r2) -;; strv %r5, 0(%r4,%r2) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r3, 0x58(%r2) +;; 1a: clgr %r4, %r3 +;; 1e: jgh 0x38 +;; 24: lg %r2, 0x50(%r2) +;; 2a: strv %r5, 0(%r4, %r2) +;; 30: lmg %r14, %r15, 0x110(%r15) +;; 36: br %r14 +;; 38: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r5, 88(%r2) -;; clgr %r4, %r5 -;; jgh label3 ; jg label1 -;; block1: -;; lg %r2, 80(%r2) -;; lrv %r2, 0(%r4,%r2) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 3c: stmg %r14, %r15, 0x70(%r15) +;; 42: lgr %r1, %r15 +;; 46: aghi %r15, -0xa0 +;; 4a: stg %r1, 0(%r15) +;; 50: lg %r5, 0x58(%r2) +;; 56: clgr %r4, %r5 +;; 5a: jgh 0x74 +;; 60: lg %r2, 0x50(%r2) +;; 66: lrv %r2, 0(%r4, %r2) +;; 6c: lmg %r14, %r15, 0x110(%r15) +;; 72: br %r14 +;; 74: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat index fae9890a2f0c..810736774c33 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,36 +18,32 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; clgr %r4, %r3 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r3, 4096 -;; strv %r5, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r3, 0x58(%r2) +;; 1a: clgr %r4, %r3 +;; 1e: jgh 0x3c +;; 24: ag %r4, 0x50(%r2) +;; 2a: lghi %r3, 0x1000 +;; 2e: strv %r5, 0(%r3, %r4) +;; 34: lmg %r14, %r15, 0x110(%r15) +;; 3a: br %r14 +;; 3c: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r5, 88(%r2) -;; clgr %r4, %r5 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r3, 4096 -;; lrv %r2, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 40: stmg %r14, %r15, 0x70(%r15) +;; 46: lgr %r1, %r15 +;; 4a: aghi %r15, -0xa0 +;; 4e: stg %r1, 0(%r15) +;; 54: lg %r5, 0x58(%r2) +;; 5a: clgr %r4, %r5 +;; 5e: jgh 0x7c +;; 64: ag %r4, 0x50(%r2) +;; 6a: lghi %r3, 0x1000 +;; 6e: lrv %r2, 0(%r3, %r4) +;; 74: lmg %r14, %r15, 0x110(%r15) +;; 7a: br %r14 +;; 7c: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat index e9fc5be1efe6..214988e879b9 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,36 +18,32 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; clgr %r4, %r3 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r3, 65535 -;; strv %r5, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r3, 0x58(%r2) +;; 1a: clgr %r4, %r3 +;; 1e: jgh 0x3c +;; 24: ag %r4, 0x50(%r2) +;; 2a: llilh %r3, 0xffff +;; 2e: strv %r5, 0(%r3, %r4) +;; 34: lmg %r14, %r15, 0x110(%r15) +;; 3a: br %r14 +;; 3c: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r5, 88(%r2) -;; clgr %r4, %r5 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r3, 65535 -;; lrv %r2, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 40: stmg %r14, %r15, 0x70(%r15) +;; 46: lgr %r1, %r15 +;; 4a: aghi %r15, -0xa0 +;; 4e: stg %r1, 0(%r15) +;; 54: lg %r5, 0x58(%r2) +;; 5a: clgr %r4, %r5 +;; 5e: jgh 0x7c +;; 64: ag %r4, 0x50(%r2) +;; 6a: llilh %r3, 0xffff +;; 6e: lrv %r2, 0(%r3, %r4) +;; 74: lmg %r14, %r15, 0x110(%r15) +;; 7a: br %r14 +;; 7c: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat index 7882db848cd3..f666f3f3d43c 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; clgr %r4, %r3 -;; jghe label3 ; jg label1 -;; block1: -;; lg %r2, 80(%r2) -;; stc %r5, 0(%r4,%r2) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r3, 0x58(%r2) +;; 1a: clgr %r4, %r3 +;; 1e: jghe 0x36 +;; 24: lg %r2, 0x50(%r2) +;; 2a: stc %r5, 0(%r4, %r2) +;; 2e: lmg %r14, %r15, 0x110(%r15) +;; 34: br %r14 +;; 36: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r5, 88(%r2) -;; clgr %r4, %r5 -;; jghe label3 ; jg label1 -;; block1: -;; lg %r2, 80(%r2) -;; llc %r2, 0(%r4,%r2) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 38: stmg %r14, %r15, 0x70(%r15) +;; 3e: lgr %r1, %r15 +;; 42: aghi %r15, -0xa0 +;; 46: stg %r1, 0(%r15) +;; 4c: lg %r5, 0x58(%r2) +;; 52: clgr %r4, %r5 +;; 56: jghe 0x70 +;; 5c: lg %r2, 0x50(%r2) +;; 62: llc %r2, 0(%r4, %r2) +;; 68: lmg %r14, %r15, 0x110(%r15) +;; 6e: br %r14 +;; 70: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat index 96640ad88a62..14d432fbc712 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,36 +18,32 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; clgr %r4, %r3 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r3, 4096 -;; stc %r5, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r3, 0x58(%r2) +;; 1a: clgr %r4, %r3 +;; 1e: jgh 0x3a +;; 24: ag %r4, 0x50(%r2) +;; 2a: lghi %r3, 0x1000 +;; 2e: stc %r5, 0(%r3, %r4) +;; 32: lmg %r14, %r15, 0x110(%r15) +;; 38: br %r14 +;; 3a: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r5, 88(%r2) -;; clgr %r4, %r5 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r3, 4096 -;; llc %r2, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 3c: stmg %r14, %r15, 0x70(%r15) +;; 42: lgr %r1, %r15 +;; 46: aghi %r15, -0xa0 +;; 4a: stg %r1, 0(%r15) +;; 50: lg %r5, 0x58(%r2) +;; 56: clgr %r4, %r5 +;; 5a: jgh 0x78 +;; 60: ag %r4, 0x50(%r2) +;; 66: lghi %r3, 0x1000 +;; 6a: llc %r2, 0(%r3, %r4) +;; 70: lmg %r14, %r15, 0x110(%r15) +;; 76: br %r14 +;; 78: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat index 880480c59b83..06548dc3356c 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,36 +18,32 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; clgr %r4, %r3 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r3, 65535 -;; stc %r5, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r3, 0x58(%r2) +;; 1a: clgr %r4, %r3 +;; 1e: jgh 0x3a +;; 24: ag %r4, 0x50(%r2) +;; 2a: llilh %r3, 0xffff +;; 2e: stc %r5, 0(%r3, %r4) +;; 32: lmg %r14, %r15, 0x110(%r15) +;; 38: br %r14 +;; 3a: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r5, 88(%r2) -;; clgr %r4, %r5 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r3, 65535 -;; llc %r2, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 3c: stmg %r14, %r15, 0x70(%r15) +;; 42: lgr %r1, %r15 +;; 46: aghi %r15, -0xa0 +;; 4a: stg %r1, 0(%r15) +;; 50: lg %r5, 0x58(%r2) +;; 56: clgr %r4, %r5 +;; 5a: jgh 0x78 +;; 60: ag %r4, 0x50(%r2) +;; 66: llilh %r3, 0xffff +;; 6a: llc %r2, 0(%r3, %r4) +;; 70: lmg %r14, %r15, 0x110(%r15) +;; 76: br %r14 +;; 78: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat index d856c04be206..ca4aab3d3f8a 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat @@ -18,42 +18,32 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r13, %r15, 104(%r15) -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r14, 88(%r2) -;; lghi %r3, 0 -;; lgr %r13, %r4 -;; ag %r13, 80(%r2) -;; clgr %r4, %r14 -;; locgrh %r13, %r3 -;; strv %r5, 0(%r13) -;; jg label1 -;; block1: -;; lmg %r13, %r15, 104(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r13, %r15, 0x68(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r14, 0x58(%r2) +;; 1a: lghi %r3, 0 +;; 1e: lgr %r13, %r4 +;; 22: ag %r13, 0x50(%r2) +;; 28: clgr %r4, %r14 +;; 2c: locgrh %r13, %r3 +;; 30: strv %r5, 0(%r13) +;; 36: lmg %r13, %r15, 0x108(%r15) +;; 3c: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r13, %r15, 104(%r15) -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r5, 88(%r2) -;; lghi %r3, 0 -;; lgr %r13, %r4 -;; ag %r13, 80(%r2) -;; clgr %r4, %r5 -;; locgrh %r13, %r3 -;; lrv %r2, 0(%r13) -;; jg label1 -;; block1: -;; lmg %r13, %r15, 104(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 40: stmg %r13, %r15, 0x68(%r15) +;; 46: lgr %r1, %r15 +;; 4a: aghi %r15, -0xa0 +;; 4e: stg %r1, 0(%r15) +;; 54: lg %r5, 0x58(%r2) +;; 5a: lghi %r3, 0 +;; 5e: lgr %r13, %r4 +;; 62: ag %r13, 0x50(%r2) +;; 68: clgr %r4, %r5 +;; 6c: locgrh %r13, %r3 +;; 70: lrv %r2, 0(%r13) +;; 76: lmg %r13, %r15, 0x108(%r15) +;; 7c: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat index 84283f8f9a79..b4f71ac731c8 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,58 +18,34 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r6, 88(%r2) -;; lghi %r3, 0 -;; lgr %r7, %r4 -;; ag %r7, 80(%r2) -;; aghik %r2, %r7, 4096 -;; clgr %r4, %r6 -;; locgrh %r2, %r3 -;; strv %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r6, %r15, 0x30(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r6, 0x58(%r2) +;; 1a: lghi %r3, 0 +;; 1e: lgr %r7, %r4 +;; 22: ag %r7, 0x50(%r2) +;; 28: aghik %r2, %r7, 0x1000 +;; 2e: clgr %r4, %r6 +;; 32: locgrh %r2, %r3 +;; 36: strv %r5, 0(%r2) +;; 3c: lmg %r6, %r15, 0xd0(%r15) +;; 42: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r5, 88(%r2) -;; lghi %r3, 0 -;; lgr %r6, %r4 -;; ag %r6, 80(%r2) -;; aghik %r2, %r6, 4096 -;; clgr %r4, %r5 -;; locgrh %r2, %r3 -;; lrv %r2, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 44: stmg %r6, %r15, 0x30(%r15) +;; 4a: lgr %r1, %r15 +;; 4e: aghi %r15, -0xa0 +;; 52: stg %r1, 0(%r15) +;; 58: lg %r5, 0x58(%r2) +;; 5e: lghi %r3, 0 +;; 62: lgr %r6, %r4 +;; 66: ag %r6, 0x50(%r2) +;; 6c: aghik %r2, %r6, 0x1000 +;; 72: clgr %r4, %r5 +;; 76: locgrh %r2, %r3 +;; 7a: lrv %r2, 0(%r2) +;; 80: lmg %r6, %r15, 0xd0(%r15) +;; 86: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 76b70581195a..4b0f5f39f8f6 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,58 +18,36 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r7, %r15, 56(%r15) -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; lghi %r7, 0 -;; lgr %r8, %r4 -;; ag %r8, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r8, %r2 -;; clgr %r4, %r3 -;; locgrh %r2, %r7 -;; strv %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r7, %r15, 56(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r7, %r15, 0x38(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r3, 0x58(%r2) +;; 1a: lghi %r7, 0 +;; 1e: lgr %r8, %r4 +;; 22: ag %r8, 0x50(%r2) +;; 28: llilh %r2, 0xffff +;; 2c: agrk %r2, %r8, %r2 +;; 30: clgr %r4, %r3 +;; 34: locgrh %r2, %r7 +;; 38: strv %r5, 0(%r2) +;; 3e: lmg %r7, %r15, 0xd8(%r15) +;; 44: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r7, %r15, 56(%r15) -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; lghi %r5, 0 -;; lgr %r7, %r4 -;; ag %r7, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r7, %r2 -;; clgr %r4, %r3 -;; locgrh %r2, %r5 -;; lrv %r2, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r7, %r15, 56(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 48: stmg %r7, %r15, 0x38(%r15) +;; 4e: lgr %r1, %r15 +;; 52: aghi %r15, -0xa0 +;; 56: stg %r1, 0(%r15) +;; 5c: lg %r3, 0x58(%r2) +;; 62: lghi %r5, 0 +;; 66: lgr %r7, %r4 +;; 6a: ag %r7, 0x50(%r2) +;; 70: llilh %r2, 0xffff +;; 74: agrk %r2, %r7, %r2 +;; 78: clgr %r4, %r3 +;; 7c: locgrh %r2, %r5 +;; 80: lrv %r2, 0(%r2) +;; 86: lmg %r7, %r15, 0xd8(%r15) +;; 8c: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat index be0a8050cd0e..a82bd2f96a6f 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat @@ -18,42 +18,32 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r13, %r15, 104(%r15) -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r14, 88(%r2) -;; lghi %r3, 0 -;; lgr %r13, %r4 -;; ag %r13, 80(%r2) -;; clgr %r4, %r14 -;; locgrhe %r13, %r3 -;; stc %r5, 0(%r13) -;; jg label1 -;; block1: -;; lmg %r13, %r15, 104(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r13, %r15, 0x68(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r14, 0x58(%r2) +;; 1a: lghi %r3, 0 +;; 1e: lgr %r13, %r4 +;; 22: ag %r13, 0x50(%r2) +;; 28: clgr %r4, %r14 +;; 2c: locgrhe %r13, %r3 +;; 30: stc %r5, 0(%r13) +;; 34: lmg %r13, %r15, 0x108(%r15) +;; 3a: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r13, %r15, 104(%r15) -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r5, 88(%r2) -;; lghi %r3, 0 -;; lgr %r13, %r4 -;; ag %r13, 80(%r2) -;; clgr %r4, %r5 -;; locgrhe %r13, %r3 -;; llc %r2, 0(%r13) -;; jg label1 -;; block1: -;; lmg %r13, %r15, 104(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 3c: stmg %r13, %r15, 0x68(%r15) +;; 42: lgr %r1, %r15 +;; 46: aghi %r15, -0xa0 +;; 4a: stg %r1, 0(%r15) +;; 50: lg %r5, 0x58(%r2) +;; 56: lghi %r3, 0 +;; 5a: lgr %r13, %r4 +;; 5e: ag %r13, 0x50(%r2) +;; 64: clgr %r4, %r5 +;; 68: locgrhe %r13, %r3 +;; 6c: llc %r2, 0(%r13) +;; 72: lmg %r13, %r15, 0x108(%r15) +;; 78: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat index c0c09b3ee1a4..dff4d70d4a23 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,58 +18,34 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r6, 88(%r2) -;; lghi %r3, 0 -;; lgr %r7, %r4 -;; ag %r7, 80(%r2) -;; aghik %r2, %r7, 4096 -;; clgr %r4, %r6 -;; locgrh %r2, %r3 -;; stc %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r6, %r15, 0x30(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r6, 0x58(%r2) +;; 1a: lghi %r3, 0 +;; 1e: lgr %r7, %r4 +;; 22: ag %r7, 0x50(%r2) +;; 28: aghik %r2, %r7, 0x1000 +;; 2e: clgr %r4, %r6 +;; 32: locgrh %r2, %r3 +;; 36: stc %r5, 0(%r2) +;; 3a: lmg %r6, %r15, 0xd0(%r15) +;; 40: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r5, 88(%r2) -;; lghi %r3, 0 -;; lgr %r6, %r4 -;; ag %r6, 80(%r2) -;; aghik %r2, %r6, 4096 -;; clgr %r4, %r5 -;; locgrh %r2, %r3 -;; llc %r2, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 44: stmg %r6, %r15, 0x30(%r15) +;; 4a: lgr %r1, %r15 +;; 4e: aghi %r15, -0xa0 +;; 52: stg %r1, 0(%r15) +;; 58: lg %r5, 0x58(%r2) +;; 5e: lghi %r3, 0 +;; 62: lgr %r6, %r4 +;; 66: ag %r6, 0x50(%r2) +;; 6c: aghik %r2, %r6, 0x1000 +;; 72: clgr %r4, %r5 +;; 76: locgrh %r2, %r3 +;; 7a: llc %r2, 0(%r2) +;; 80: lmg %r6, %r15, 0xd0(%r15) +;; 86: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat index 353fbe977288..09c33a067ed5 100644 --- a/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,58 +18,36 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r7, %r15, 56(%r15) -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; lghi %r7, 0 -;; lgr %r8, %r4 -;; ag %r8, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r8, %r2 -;; clgr %r4, %r3 -;; locgrh %r2, %r7 -;; stc %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r7, %r15, 56(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r7, %r15, 0x38(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lg %r3, 0x58(%r2) +;; 1a: lghi %r7, 0 +;; 1e: lgr %r8, %r4 +;; 22: ag %r8, 0x50(%r2) +;; 28: llilh %r2, 0xffff +;; 2c: agrk %r2, %r8, %r2 +;; 30: clgr %r4, %r3 +;; 34: locgrh %r2, %r7 +;; 38: stc %r5, 0(%r2) +;; 3c: lmg %r7, %r15, 0xd8(%r15) +;; 42: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r7, %r15, 56(%r15) -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lg %r3, 88(%r2) -;; lghi %r5, 0 -;; lgr %r7, %r4 -;; ag %r7, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r7, %r2 -;; clgr %r4, %r3 -;; locgrh %r2, %r5 -;; llc %r2, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r7, %r15, 56(%r15) -;; br %r14 +;; wasm[0]::function[1]: +;; 44: stmg %r7, %r15, 0x38(%r15) +;; 4a: lgr %r1, %r15 +;; 4e: aghi %r15, -0xa0 +;; 52: stg %r1, 0(%r15) +;; 58: lg %r3, 0x58(%r2) +;; 5e: lghi %r5, 0 +;; 62: lgr %r7, %r4 +;; 66: ag %r7, 0x50(%r2) +;; 6c: llilh %r2, 0xffff +;; 70: agrk %r2, %r7, %r2 +;; 74: clgr %r4, %r3 +;; 78: locgrh %r2, %r5 +;; 7c: llc %r2, 0(%r2) +;; 82: lmg %r7, %r15, 0xd8(%r15) +;; 88: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat index 2a6a69f25656..094d93830507 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; clgfi %r4, 4294967292 -;; jgh label3 ; jg label1 -;; block1: -;; lg %r2, 80(%r2) -;; strv %r5, 0(%r4,%r2) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: llgfr %r4, %r4 +;; 18: clgfi %r4, 0xfffffffc +;; 1e: jgh 0x38 +;; 24: lg %r2, 0x50(%r2) +;; 2a: strv %r5, 0(%r4, %r2) +;; 30: lmg %r14, %r15, 0x110(%r15) +;; 36: br %r14 +;; 38: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; clgfi %r4, 4294967292 -;; jgh label3 ; jg label1 -;; block1: -;; lg %r2, 80(%r2) -;; lrv %r2, 0(%r4,%r2) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 3c: stmg %r14, %r15, 0x70(%r15) +;; 42: lgr %r1, %r15 +;; 46: aghi %r15, -0xa0 +;; 4a: stg %r1, 0(%r15) +;; 50: llgfr %r4, %r4 +;; 54: clgfi %r4, 0xfffffffc +;; 5a: jgh 0x74 +;; 60: lg %r2, 0x50(%r2) +;; 66: lrv %r2, 0(%r4, %r2) +;; 6c: lmg %r14, %r15, 0x110(%r15) +;; 72: br %r14 +;; 74: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat index df1e65825512..cd181166ed80 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,36 +18,32 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; clgfi %r4, 4294963196 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r3, 4096 -;; strv %r5, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: llgfr %r4, %r4 +;; 18: clgfi %r4, 0xffffeffc +;; 1e: jgh 0x3c +;; 24: ag %r4, 0x50(%r2) +;; 2a: lghi %r3, 0x1000 +;; 2e: strv %r5, 0(%r3, %r4) +;; 34: lmg %r14, %r15, 0x110(%r15) +;; 3a: br %r14 +;; 3c: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; clgfi %r4, 4294963196 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r3, 4096 -;; lrv %r2, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 40: stmg %r14, %r15, 0x70(%r15) +;; 46: lgr %r1, %r15 +;; 4a: aghi %r15, -0xa0 +;; 4e: stg %r1, 0(%r15) +;; 54: llgfr %r4, %r4 +;; 58: clgfi %r4, 0xffffeffc +;; 5e: jgh 0x7c +;; 64: ag %r4, 0x50(%r2) +;; 6a: lghi %r3, 0x1000 +;; 6e: lrv %r2, 0(%r3, %r4) +;; 74: lmg %r14, %r15, 0x110(%r15) +;; 7a: br %r14 +;; 7c: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat index 9898454950d6..2f03d475f7e6 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,36 +18,32 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; clgfi %r4, 65532 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r3, 65535 -;; strv %r5, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: llgfr %r4, %r4 +;; 18: clgfi %r4, 0xfffc +;; 1e: jgh 0x3c +;; 24: ag %r4, 0x50(%r2) +;; 2a: llilh %r3, 0xffff +;; 2e: strv %r5, 0(%r3, %r4) +;; 34: lmg %r14, %r15, 0x110(%r15) +;; 3a: br %r14 +;; 3c: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; clgfi %r4, 65532 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r3, 65535 -;; lrv %r2, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 40: stmg %r14, %r15, 0x70(%r15) +;; 46: lgr %r1, %r15 +;; 4a: aghi %r15, -0xa0 +;; 4e: stg %r1, 0(%r15) +;; 54: llgfr %r4, %r4 +;; 58: clgfi %r4, 0xfffc +;; 5e: jgh 0x7c +;; 64: ag %r4, 0x50(%r2) +;; 6a: llilh %r3, 0xffff +;; 6e: lrv %r2, 0(%r3, %r4) +;; 74: lmg %r14, %r15, 0x110(%r15) +;; 7a: br %r14 +;; 7c: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat index 176c62bef4cd..1f872c2fa059 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat @@ -18,28 +18,28 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lg %r4, 80(%r2) -;; lgr %r2, %r3 -;; llgfr %r2, %r2 -;; stc %r5, 0(%r2,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: lg %r4, 0x50(%r2) +;; 1e: lgr %r2, %r3 +;; 22: llgfr %r2, %r2 +;; 26: stc %r5, 0(%r2, %r4) +;; 2a: lmg %r14, %r15, 0x110(%r15) +;; 30: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r5, %r4 -;; lg %r4, 80(%r2) -;; lgr %r2, %r5 -;; llgfr %r5, %r2 -;; llc %r2, 0(%r5,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 34: stmg %r14, %r15, 0x70(%r15) +;; 3a: lgr %r1, %r15 +;; 3e: aghi %r15, -0xa0 +;; 42: stg %r1, 0(%r15) +;; 48: lgr %r5, %r4 +;; 4c: lg %r4, 0x50(%r2) +;; 52: lgr %r2, %r5 +;; 56: llgfr %r5, %r2 +;; 5a: llc %r2, 0(%r5, %r4) +;; 60: lmg %r14, %r15, 0x110(%r15) +;; 66: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat index 51e7e322f335..6e525e6798ba 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,36 +18,32 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; clgfi %r4, 4294963199 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r3, 4096 -;; stc %r5, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: llgfr %r4, %r4 +;; 18: clgfi %r4, 0xffffefff +;; 1e: jgh 0x3a +;; 24: ag %r4, 0x50(%r2) +;; 2a: lghi %r3, 0x1000 +;; 2e: stc %r5, 0(%r3, %r4) +;; 32: lmg %r14, %r15, 0x110(%r15) +;; 38: br %r14 +;; 3a: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; clgfi %r4, 4294963199 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r3, 4096 -;; llc %r2, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 3c: stmg %r14, %r15, 0x70(%r15) +;; 42: lgr %r1, %r15 +;; 46: aghi %r15, -0xa0 +;; 4a: stg %r1, 0(%r15) +;; 50: llgfr %r4, %r4 +;; 54: clgfi %r4, 0xffffefff +;; 5a: jgh 0x78 +;; 60: ag %r4, 0x50(%r2) +;; 66: lghi %r3, 0x1000 +;; 6a: llc %r2, 0(%r3, %r4) +;; 70: lmg %r14, %r15, 0x110(%r15) +;; 76: br %r14 +;; 78: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat index 07c7636c0d1b..bc3717961ad6 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,36 +18,32 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; clgfi %r4, 65535 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r3, 65535 -;; stc %r5, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: llgfr %r4, %r4 +;; 18: clgfi %r4, 0xffff +;; 1e: jgh 0x3a +;; 24: ag %r4, 0x50(%r2) +;; 2a: llilh %r3, 0xffff +;; 2e: stc %r5, 0(%r3, %r4) +;; 32: lmg %r14, %r15, 0x110(%r15) +;; 38: br %r14 +;; 3a: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; clgfi %r4, 65535 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r3, 65535 -;; llc %r2, 0(%r3,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 3c: stmg %r14, %r15, 0x70(%r15) +;; 42: lgr %r1, %r15 +;; 46: aghi %r15, -0xa0 +;; 4a: stg %r1, 0(%r15) +;; 50: llgfr %r4, %r4 +;; 54: clgfi %r4, 0xffff +;; 5a: jgh 0x78 +;; 60: ag %r4, 0x50(%r2) +;; 66: llilh %r3, 0xffff +;; 6a: llc %r2, 0(%r3, %r4) +;; 70: lmg %r14, %r15, 0x110(%r15) +;; 76: br %r14 +;; 78: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat index 4bdf2a8ceb05..e5cd0f4b1858 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat @@ -18,48 +18,36 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r6, %r2 -;; llgfr %r3, %r4 -;; lghi %r2, 0 -;; lgr %r8, %r6 -;; lgr %r4, %r3 -;; ag %r4, 80(%r8) -;; clgfi %r3, 4294967292 -;; locgrh %r4, %r2 -;; strv %r5, 0(%r4) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r6, %r15, 0x30(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r6, %r2 +;; 18: llgfr %r3, %r4 +;; 1c: lghi %r2, 0 +;; 20: lgr %r8, %r6 +;; 24: lgr %r4, %r3 +;; 28: ag %r4, 0x50(%r8) +;; 2e: clgfi %r3, 0xfffffffc +;; 34: locgrh %r4, %r2 +;; 38: strv %r5, 0(%r4) +;; 3e: lmg %r6, %r15, 0xd0(%r15) +;; 44: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r5, %r2 -;; llgfr %r3, %r4 -;; lghi %r2, 0 -;; lgr %r4, %r5 -;; lgr %r5, %r3 -;; ag %r5, 80(%r4) -;; clgfi %r3, 4294967292 -;; locgrh %r5, %r2 -;; lrv %r2, 0(%r5) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 48: stmg %r14, %r15, 0x70(%r15) +;; 4e: lgr %r1, %r15 +;; 52: aghi %r15, -0xa0 +;; 56: stg %r1, 0(%r15) +;; 5c: lgr %r5, %r2 +;; 60: llgfr %r3, %r4 +;; 64: lghi %r2, 0 +;; 68: lgr %r4, %r5 +;; 6c: lgr %r5, %r3 +;; 70: ag %r5, 0x50(%r4) +;; 76: clgfi %r3, 0xfffffffc +;; 7c: locgrh %r5, %r2 +;; 80: lrv %r2, 0(%r5) +;; 86: lmg %r14, %r15, 0x110(%r15) +;; 8c: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat index cdb3a3da02e5..b55f8b2fe3bc 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,46 +18,34 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; lghi %r3, 0 -;; lgr %r6, %r4 -;; ag %r6, 80(%r2) -;; aghik %r2, %r6, 4096 -;; clgfi %r4, 4294963196 -;; locgrh %r2, %r3 -;; strv %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r6, %r15, 0x30(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: llgfr %r4, %r4 +;; 18: lghi %r3, 0 +;; 1c: lgr %r6, %r4 +;; 20: ag %r6, 0x50(%r2) +;; 26: aghik %r2, %r6, 0x1000 +;; 2c: clgfi %r4, 0xffffeffc +;; 32: locgrh %r2, %r3 +;; 36: strv %r5, 0(%r2) +;; 3c: lmg %r6, %r15, 0xd0(%r15) +;; 42: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; lghi %r3, 0 -;; lgr %r5, %r4 -;; ag %r5, 80(%r2) -;; aghik %r2, %r5, 4096 -;; clgfi %r4, 4294963196 -;; locgrh %r2, %r3 -;; lrv %r2, 0(%r2) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 44: stmg %r14, %r15, 0x70(%r15) +;; 4a: lgr %r1, %r15 +;; 4e: aghi %r15, -0xa0 +;; 52: stg %r1, 0(%r15) +;; 58: llgfr %r4, %r4 +;; 5c: lghi %r3, 0 +;; 60: lgr %r5, %r4 +;; 64: ag %r5, 0x50(%r2) +;; 6a: aghik %r2, %r5, 0x1000 +;; 70: clgfi %r4, 0xffffeffc +;; 76: locgrh %r2, %r3 +;; 7a: lrv %r2, 0(%r2) +;; 80: lmg %r14, %r15, 0x110(%r15) +;; 86: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 6120763b6e02..b7f8253aa129 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,49 +18,38 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r7, %r15, 56(%r15) -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r2 -;; llgfr %r2, %r4 -;; lghi %r4, 0 -;; lgr %r10, %r3 -;; lgr %r3, %r2 -;; ag %r3, 80(%r10) -;; llilh %r7, 65535 -;; agr %r3, %r7 -;; clgfi %r2, 65532 -;; locgrh %r3, %r4 -;; strv %r5, 0(%r3) -;; jg label1 -;; block1: -;; lmg %r7, %r15, 56(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r7, %r15, 0x38(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r2 +;; 18: llgfr %r2, %r4 +;; 1c: lghi %r4, 0 +;; 20: lgr %r10, %r3 +;; 24: lgr %r3, %r2 +;; 28: ag %r3, 0x50(%r10) +;; 2e: llilh %r7, 0xffff +;; 32: agr %r3, %r7 +;; 36: clgfi %r2, 0xfffc +;; 3c: locgrh %r3, %r4 +;; 40: strv %r5, 0(%r3) +;; 46: lmg %r7, %r15, 0xd8(%r15) +;; 4c: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r5, %r4 -;; lghi %r4, 0 -;; lgr %r3, %r5 -;; ag %r3, 80(%r2) -;; llilh %r2, 65535 -;; agr %r3, %r2 -;; clgfi %r5, 65532 -;; locgrh %r3, %r4 -;; lrv %r2, 0(%r3) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 50: stmg %r14, %r15, 0x70(%r15) +;; 56: lgr %r1, %r15 +;; 5a: aghi %r15, -0xa0 +;; 5e: stg %r1, 0(%r15) +;; 64: llgfr %r5, %r4 +;; 68: lghi %r4, 0 +;; 6c: lgr %r3, %r5 +;; 70: ag %r3, 0x50(%r2) +;; 76: llilh %r2, 0xffff +;; 7a: agr %r3, %r2 +;; 7e: clgfi %r5, 0xfffc +;; 84: locgrh %r3, %r4 +;; 88: lrv %r2, 0(%r3) +;; 8e: lmg %r14, %r15, 0x110(%r15) +;; 94: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat index f92f6c278460..bfa557a15e61 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat @@ -18,28 +18,28 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lg %r4, 80(%r2) -;; lgr %r2, %r3 -;; llgfr %r2, %r2 -;; stc %r5, 0(%r2,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: lg %r4, 0x50(%r2) +;; 1e: lgr %r2, %r3 +;; 22: llgfr %r2, %r2 +;; 26: stc %r5, 0(%r2, %r4) +;; 2a: lmg %r14, %r15, 0x110(%r15) +;; 30: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r5, %r4 -;; lg %r4, 80(%r2) -;; lgr %r2, %r5 -;; llgfr %r5, %r2 -;; llc %r2, 0(%r5,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 34: stmg %r14, %r15, 0x70(%r15) +;; 3a: lgr %r1, %r15 +;; 3e: aghi %r15, -0xa0 +;; 42: stg %r1, 0(%r15) +;; 48: lgr %r5, %r4 +;; 4c: lg %r4, 0x50(%r2) +;; 52: lgr %r2, %r5 +;; 56: llgfr %r5, %r2 +;; 5a: llc %r2, 0(%r5, %r4) +;; 60: lmg %r14, %r15, 0x110(%r15) +;; 66: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat index 4273ca0134d2..85a9d2ae1931 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,46 +18,34 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; lghi %r3, 0 -;; lgr %r6, %r4 -;; ag %r6, 80(%r2) -;; aghik %r2, %r6, 4096 -;; clgfi %r4, 4294963199 -;; locgrh %r2, %r3 -;; stc %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r6, %r15, 0x30(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: llgfr %r4, %r4 +;; 18: lghi %r3, 0 +;; 1c: lgr %r6, %r4 +;; 20: ag %r6, 0x50(%r2) +;; 26: aghik %r2, %r6, 0x1000 +;; 2c: clgfi %r4, 0xffffefff +;; 32: locgrh %r2, %r3 +;; 36: stc %r5, 0(%r2) +;; 3a: lmg %r6, %r15, 0xd0(%r15) +;; 40: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; lghi %r3, 0 -;; lgr %r5, %r4 -;; ag %r5, 80(%r2) -;; aghik %r2, %r5, 4096 -;; clgfi %r4, 4294963199 -;; locgrh %r2, %r3 -;; llc %r2, 0(%r2) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 44: stmg %r14, %r15, 0x70(%r15) +;; 4a: lgr %r1, %r15 +;; 4e: aghi %r15, -0xa0 +;; 52: stg %r1, 0(%r15) +;; 58: llgfr %r4, %r4 +;; 5c: lghi %r3, 0 +;; 60: lgr %r5, %r4 +;; 64: ag %r5, 0x50(%r2) +;; 6a: aghik %r2, %r5, 0x1000 +;; 70: clgfi %r4, 0xffffefff +;; 76: locgrh %r2, %r3 +;; 7a: llc %r2, 0(%r2) +;; 80: lmg %r14, %r15, 0x110(%r15) +;; 86: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat index 69e567d2758b..05093be12126 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,49 +18,38 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r7, %r15, 56(%r15) -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r2 -;; llgfr %r2, %r4 -;; lghi %r4, 0 -;; lgr %r10, %r3 -;; lgr %r3, %r2 -;; ag %r3, 80(%r10) -;; llilh %r7, 65535 -;; agr %r3, %r7 -;; clgfi %r2, 65535 -;; locgrh %r3, %r4 -;; stc %r5, 0(%r3) -;; jg label1 -;; block1: -;; lmg %r7, %r15, 56(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r7, %r15, 0x38(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r2 +;; 18: llgfr %r2, %r4 +;; 1c: lghi %r4, 0 +;; 20: lgr %r10, %r3 +;; 24: lgr %r3, %r2 +;; 28: ag %r3, 0x50(%r10) +;; 2e: llilh %r7, 0xffff +;; 32: agr %r3, %r7 +;; 36: clgfi %r2, 0xffff +;; 3c: locgrh %r3, %r4 +;; 40: stc %r5, 0(%r3) +;; 44: lmg %r7, %r15, 0xd8(%r15) +;; 4a: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r5, %r4 -;; lghi %r4, 0 -;; lgr %r3, %r5 -;; ag %r3, 80(%r2) -;; llilh %r2, 65535 -;; agr %r3, %r2 -;; clgfi %r5, 65535 -;; locgrh %r3, %r4 -;; llc %r2, 0(%r3) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 4c: stmg %r14, %r15, 0x70(%r15) +;; 52: lgr %r1, %r15 +;; 56: aghi %r15, -0xa0 +;; 5a: stg %r1, 0(%r15) +;; 60: llgfr %r5, %r4 +;; 64: lghi %r4, 0 +;; 68: lgr %r3, %r5 +;; 6c: ag %r3, 0x50(%r2) +;; 72: llilh %r2, 0xffff +;; 76: agr %r3, %r2 +;; 7a: clgfi %r5, 0xffff +;; 80: locgrh %r3, %r4 +;; 84: llc %r2, 0(%r3) +;; 8a: lmg %r14, %r15, 0x110(%r15) +;; 90: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat index 38ebe6e3f008..be82562fa314 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat @@ -18,28 +18,28 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lg %r4, 80(%r2) -;; lgr %r2, %r3 -;; llgfr %r2, %r2 -;; strv %r5, 0(%r2,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: lg %r4, 0x50(%r2) +;; 1e: lgr %r2, %r3 +;; 22: llgfr %r2, %r2 +;; 26: strv %r5, 0(%r2, %r4) +;; 2c: lmg %r14, %r15, 0x110(%r15) +;; 32: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r5, %r4 -;; lg %r4, 80(%r2) -;; lgr %r2, %r5 -;; llgfr %r5, %r2 -;; lrv %r2, 0(%r5,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 34: stmg %r14, %r15, 0x70(%r15) +;; 3a: lgr %r1, %r15 +;; 3e: aghi %r15, -0xa0 +;; 42: stg %r1, 0(%r15) +;; 48: lgr %r5, %r4 +;; 4c: lg %r4, 0x50(%r2) +;; 52: lgr %r2, %r5 +;; 56: llgfr %r5, %r2 +;; 5a: lrv %r2, 0(%r5, %r4) +;; 60: lmg %r14, %r15, 0x110(%r15) +;; 66: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat index bbe744c23137..a5b02dd7443c 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,26 +18,26 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; ag %r4, 80(%r2) -;; lghi %r2, 4096 -;; strv %r5, 0(%r2,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: llgfr %r4, %r4 +;; 18: ag %r4, 0x50(%r2) +;; 1e: lghi %r2, 0x1000 +;; 22: strv %r5, 0(%r2, %r4) +;; 28: lmg %r14, %r15, 0x110(%r15) +;; 2e: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; ag %r4, 80(%r2) -;; lghi %r5, 4096 -;; lrv %r2, 0(%r5,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 30: stmg %r14, %r15, 0x70(%r15) +;; 36: lgr %r1, %r15 +;; 3a: aghi %r15, -0xa0 +;; 3e: stg %r1, 0(%r15) +;; 44: llgfr %r4, %r4 +;; 48: ag %r4, 0x50(%r2) +;; 4e: lghi %r5, 0x1000 +;; 52: lrv %r2, 0(%r5, %r4) +;; 58: lmg %r14, %r15, 0x110(%r15) +;; 5e: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat index ae016bdcd083..c7c6ed697462 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,26 +18,26 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; ag %r4, 80(%r2) -;; llilh %r2, 65535 -;; strv %r5, 0(%r2,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: llgfr %r4, %r4 +;; 18: ag %r4, 0x50(%r2) +;; 1e: llilh %r2, 0xffff +;; 22: strv %r5, 0(%r2, %r4) +;; 28: lmg %r14, %r15, 0x110(%r15) +;; 2e: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; ag %r4, 80(%r2) -;; llilh %r5, 65535 -;; lrv %r2, 0(%r5,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 30: stmg %r14, %r15, 0x70(%r15) +;; 36: lgr %r1, %r15 +;; 3a: aghi %r15, -0xa0 +;; 3e: stg %r1, 0(%r15) +;; 44: llgfr %r4, %r4 +;; 48: ag %r4, 0x50(%r2) +;; 4e: llilh %r5, 0xffff +;; 52: lrv %r2, 0(%r5, %r4) +;; 58: lmg %r14, %r15, 0x110(%r15) +;; 5e: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat index d61e787f4052..75e2017c7e8b 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat @@ -18,28 +18,28 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lg %r4, 80(%r2) -;; lgr %r2, %r3 -;; llgfr %r2, %r2 -;; stc %r5, 0(%r2,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: lg %r4, 0x50(%r2) +;; 1e: lgr %r2, %r3 +;; 22: llgfr %r2, %r2 +;; 26: stc %r5, 0(%r2, %r4) +;; 2a: lmg %r14, %r15, 0x110(%r15) +;; 30: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r5, %r4 -;; lg %r4, 80(%r2) -;; lgr %r2, %r5 -;; llgfr %r5, %r2 -;; llc %r2, 0(%r5,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 34: stmg %r14, %r15, 0x70(%r15) +;; 3a: lgr %r1, %r15 +;; 3e: aghi %r15, -0xa0 +;; 42: stg %r1, 0(%r15) +;; 48: lgr %r5, %r4 +;; 4c: lg %r4, 0x50(%r2) +;; 52: lgr %r2, %r5 +;; 56: llgfr %r5, %r2 +;; 5a: llc %r2, 0(%r5, %r4) +;; 60: lmg %r14, %r15, 0x110(%r15) +;; 66: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat index 40704e7cb149..b49c878142e5 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,26 +18,26 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; ag %r4, 80(%r2) -;; lghi %r2, 4096 -;; stc %r5, 0(%r2,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: llgfr %r4, %r4 +;; 18: ag %r4, 0x50(%r2) +;; 1e: lghi %r2, 0x1000 +;; 22: stc %r5, 0(%r2, %r4) +;; 26: lmg %r14, %r15, 0x110(%r15) +;; 2c: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; ag %r4, 80(%r2) -;; lghi %r5, 4096 -;; llc %r2, 0(%r5,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 30: stmg %r14, %r15, 0x70(%r15) +;; 36: lgr %r1, %r15 +;; 3a: aghi %r15, -0xa0 +;; 3e: stg %r1, 0(%r15) +;; 44: llgfr %r4, %r4 +;; 48: ag %r4, 0x50(%r2) +;; 4e: lghi %r5, 0x1000 +;; 52: llc %r2, 0(%r5, %r4) +;; 58: lmg %r14, %r15, 0x110(%r15) +;; 5e: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat index 64c4442e1aec..880f2e54e6e3 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,26 +18,26 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; ag %r4, 80(%r2) -;; llilh %r2, 65535 -;; stc %r5, 0(%r2,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: llgfr %r4, %r4 +;; 18: ag %r4, 0x50(%r2) +;; 1e: llilh %r2, 0xffff +;; 22: stc %r5, 0(%r2, %r4) +;; 26: lmg %r14, %r15, 0x110(%r15) +;; 2c: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; ag %r4, 80(%r2) -;; llilh %r5, 65535 -;; llc %r2, 0(%r5,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 30: stmg %r14, %r15, 0x70(%r15) +;; 36: lgr %r1, %r15 +;; 3a: aghi %r15, -0xa0 +;; 3e: stg %r1, 0(%r15) +;; 44: llgfr %r4, %r4 +;; 48: ag %r4, 0x50(%r2) +;; 4e: llilh %r5, 0xffff +;; 52: llc %r2, 0(%r5, %r4) +;; 58: lmg %r14, %r15, 0x110(%r15) +;; 5e: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat index a2027ffe0229..d472755297cb 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat @@ -18,28 +18,28 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lg %r4, 80(%r2) -;; lgr %r2, %r3 -;; llgfr %r2, %r2 -;; strv %r5, 0(%r2,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: lg %r4, 0x50(%r2) +;; 1e: lgr %r2, %r3 +;; 22: llgfr %r2, %r2 +;; 26: strv %r5, 0(%r2, %r4) +;; 2c: lmg %r14, %r15, 0x110(%r15) +;; 32: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r5, %r4 -;; lg %r4, 80(%r2) -;; lgr %r2, %r5 -;; llgfr %r5, %r2 -;; lrv %r2, 0(%r5,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 34: stmg %r14, %r15, 0x70(%r15) +;; 3a: lgr %r1, %r15 +;; 3e: aghi %r15, -0xa0 +;; 42: stg %r1, 0(%r15) +;; 48: lgr %r5, %r4 +;; 4c: lg %r4, 0x50(%r2) +;; 52: lgr %r2, %r5 +;; 56: llgfr %r5, %r2 +;; 5a: lrv %r2, 0(%r5, %r4) +;; 60: lmg %r14, %r15, 0x110(%r15) +;; 66: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat index 9af2e8239791..58c19426dd76 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,26 +18,26 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; ag %r4, 80(%r2) -;; lghi %r2, 4096 -;; strv %r5, 0(%r2,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: llgfr %r4, %r4 +;; 18: ag %r4, 0x50(%r2) +;; 1e: lghi %r2, 0x1000 +;; 22: strv %r5, 0(%r2, %r4) +;; 28: lmg %r14, %r15, 0x110(%r15) +;; 2e: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; ag %r4, 80(%r2) -;; lghi %r5, 4096 -;; lrv %r2, 0(%r5,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 30: stmg %r14, %r15, 0x70(%r15) +;; 36: lgr %r1, %r15 +;; 3a: aghi %r15, -0xa0 +;; 3e: stg %r1, 0(%r15) +;; 44: llgfr %r4, %r4 +;; 48: ag %r4, 0x50(%r2) +;; 4e: lghi %r5, 0x1000 +;; 52: lrv %r2, 0(%r5, %r4) +;; 58: lmg %r14, %r15, 0x110(%r15) +;; 5e: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat index d84cc3e8f185..13111202309b 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,26 +18,26 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; ag %r4, 80(%r2) -;; llilh %r2, 65535 -;; strv %r5, 0(%r2,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: llgfr %r4, %r4 +;; 18: ag %r4, 0x50(%r2) +;; 1e: llilh %r2, 0xffff +;; 22: strv %r5, 0(%r2, %r4) +;; 28: lmg %r14, %r15, 0x110(%r15) +;; 2e: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; ag %r4, 80(%r2) -;; llilh %r5, 65535 -;; lrv %r2, 0(%r5,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 30: stmg %r14, %r15, 0x70(%r15) +;; 36: lgr %r1, %r15 +;; 3a: aghi %r15, -0xa0 +;; 3e: stg %r1, 0(%r15) +;; 44: llgfr %r4, %r4 +;; 48: ag %r4, 0x50(%r2) +;; 4e: llilh %r5, 0xffff +;; 52: lrv %r2, 0(%r5, %r4) +;; 58: lmg %r14, %r15, 0x110(%r15) +;; 5e: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat index 4356d6e84b1b..ebd2be081781 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat @@ -18,28 +18,28 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lg %r4, 80(%r2) -;; lgr %r2, %r3 -;; llgfr %r2, %r2 -;; stc %r5, 0(%r2,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lgr %r3, %r4 +;; 18: lg %r4, 0x50(%r2) +;; 1e: lgr %r2, %r3 +;; 22: llgfr %r2, %r2 +;; 26: stc %r5, 0(%r2, %r4) +;; 2a: lmg %r14, %r15, 0x110(%r15) +;; 30: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r5, %r4 -;; lg %r4, 80(%r2) -;; lgr %r2, %r5 -;; llgfr %r5, %r2 -;; llc %r2, 0(%r5,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 34: stmg %r14, %r15, 0x70(%r15) +;; 3a: lgr %r1, %r15 +;; 3e: aghi %r15, -0xa0 +;; 42: stg %r1, 0(%r15) +;; 48: lgr %r5, %r4 +;; 4c: lg %r4, 0x50(%r2) +;; 52: lgr %r2, %r5 +;; 56: llgfr %r5, %r2 +;; 5a: llc %r2, 0(%r5, %r4) +;; 60: lmg %r14, %r15, 0x110(%r15) +;; 66: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat index a0e17dd2131d..e59577ade9fc 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,26 +18,26 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; ag %r4, 80(%r2) -;; lghi %r2, 4096 -;; stc %r5, 0(%r2,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: llgfr %r4, %r4 +;; 18: ag %r4, 0x50(%r2) +;; 1e: lghi %r2, 0x1000 +;; 22: stc %r5, 0(%r2, %r4) +;; 26: lmg %r14, %r15, 0x110(%r15) +;; 2c: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; ag %r4, 80(%r2) -;; lghi %r5, 4096 -;; llc %r2, 0(%r5,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 30: stmg %r14, %r15, 0x70(%r15) +;; 36: lgr %r1, %r15 +;; 3a: aghi %r15, -0xa0 +;; 3e: stg %r1, 0(%r15) +;; 44: llgfr %r4, %r4 +;; 48: ag %r4, 0x50(%r2) +;; 4e: lghi %r5, 0x1000 +;; 52: llc %r2, 0(%r5, %r4) +;; 58: lmg %r14, %r15, 0x110(%r15) +;; 5e: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat index 0ee39a8d0937..b43e25f276dd 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,26 +18,26 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; ag %r4, 80(%r2) -;; llilh %r2, 65535 -;; stc %r5, 0(%r2,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: llgfr %r4, %r4 +;; 18: ag %r4, 0x50(%r2) +;; 1e: llilh %r2, 0xffff +;; 22: stc %r5, 0(%r2, %r4) +;; 26: lmg %r14, %r15, 0x110(%r15) +;; 2c: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; llgfr %r4, %r4 -;; ag %r4, 80(%r2) -;; llilh %r5, 65535 -;; llc %r2, 0(%r5,%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 30: stmg %r14, %r15, 0x70(%r15) +;; 36: lgr %r1, %r15 +;; 3a: aghi %r15, -0xa0 +;; 3e: stg %r1, 0(%r15) +;; 44: llgfr %r4, %r4 +;; 48: ag %r4, 0x50(%r2) +;; 4e: llilh %r5, 0xffff +;; 52: llc %r2, 0(%r5, %r4) +;; 58: lmg %r14, %r15, 0x110(%r15) +;; 5e: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat index af447639e77e..60a4a2239824 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat @@ -18,32 +18,28 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 4294967292 -;; jgh label3 ; jg label1 -;; block1: -;; lg %r2, 80(%r2) -;; strv %r5, 0(%r4,%r2) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: clgfi %r4, 0xfffffffc +;; 1a: jgh 0x34 +;; 20: lg %r2, 0x50(%r2) +;; 26: strv %r5, 0(%r4, %r2) +;; 2c: lmg %r14, %r15, 0x110(%r15) +;; 32: br %r14 +;; 34: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 4294967292 -;; jgh label3 ; jg label1 -;; block1: -;; lg %r5, 80(%r2) -;; lrv %r2, 0(%r4,%r5) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 38: stmg %r14, %r15, 0x70(%r15) +;; 3e: lgr %r1, %r15 +;; 42: aghi %r15, -0xa0 +;; 46: stg %r1, 0(%r15) +;; 4c: clgfi %r4, 0xfffffffc +;; 52: jgh 0x6c +;; 58: lg %r5, 0x50(%r2) +;; 5e: lrv %r2, 0(%r4, %r5) +;; 64: lmg %r14, %r15, 0x110(%r15) +;; 6a: br %r14 +;; 6c: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat index 506e632e023a..eb22153ae66a 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 4294963196 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r2, 4096 -;; strv %r5, 0(%r2,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: clgfi %r4, 0xffffeffc +;; 1a: jgh 0x38 +;; 20: ag %r4, 0x50(%r2) +;; 26: lghi %r2, 0x1000 +;; 2a: strv %r5, 0(%r2, %r4) +;; 30: lmg %r14, %r15, 0x110(%r15) +;; 36: br %r14 +;; 38: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 4294963196 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r2, 4096 -;; lrv %r2, 0(%r2,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 3c: stmg %r14, %r15, 0x70(%r15) +;; 42: lgr %r1, %r15 +;; 46: aghi %r15, -0xa0 +;; 4a: stg %r1, 0(%r15) +;; 50: clgfi %r4, 0xffffeffc +;; 56: jgh 0x74 +;; 5c: ag %r4, 0x50(%r2) +;; 62: lghi %r2, 0x1000 +;; 66: lrv %r2, 0(%r2, %r4) +;; 6c: lmg %r14, %r15, 0x110(%r15) +;; 72: br %r14 +;; 74: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat index 635d4cbb1b5a..ebeaa34cf222 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 65532 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r2, 65535 -;; strv %r5, 0(%r2,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: clgfi %r4, 0xfffc +;; 1a: jgh 0x38 +;; 20: ag %r4, 0x50(%r2) +;; 26: llilh %r2, 0xffff +;; 2a: strv %r5, 0(%r2, %r4) +;; 30: lmg %r14, %r15, 0x110(%r15) +;; 36: br %r14 +;; 38: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 65532 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r2, 65535 -;; lrv %r2, 0(%r2,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 3c: stmg %r14, %r15, 0x70(%r15) +;; 42: lgr %r1, %r15 +;; 46: aghi %r15, -0xa0 +;; 4a: stg %r1, 0(%r15) +;; 50: clgfi %r4, 0xfffc +;; 56: jgh 0x74 +;; 5c: ag %r4, 0x50(%r2) +;; 62: llilh %r2, 0xffff +;; 66: lrv %r2, 0(%r2, %r4) +;; 6c: lmg %r14, %r15, 0x110(%r15) +;; 72: br %r14 +;; 74: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat index b69e708db64a..933732ee8bdc 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat @@ -18,32 +18,28 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 4294967295 -;; jgh label3 ; jg label1 -;; block1: -;; lg %r2, 80(%r2) -;; stc %r5, 0(%r4,%r2) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: clgfi %r4, 0xffffffff +;; 1a: jgh 0x32 +;; 20: lg %r2, 0x50(%r2) +;; 26: stc %r5, 0(%r4, %r2) +;; 2a: lmg %r14, %r15, 0x110(%r15) +;; 30: br %r14 +;; 32: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 4294967295 -;; jgh label3 ; jg label1 -;; block1: -;; lg %r5, 80(%r2) -;; llc %r2, 0(%r4,%r5) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 34: stmg %r14, %r15, 0x70(%r15) +;; 3a: lgr %r1, %r15 +;; 3e: aghi %r15, -0xa0 +;; 42: stg %r1, 0(%r15) +;; 48: clgfi %r4, 0xffffffff +;; 4e: jgh 0x68 +;; 54: lg %r5, 0x50(%r2) +;; 5a: llc %r2, 0(%r4, %r5) +;; 60: lmg %r14, %r15, 0x110(%r15) +;; 66: br %r14 +;; 68: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat index d463049347ba..db66187cd8ce 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 4294963199 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r2, 4096 -;; stc %r5, 0(%r2,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: clgfi %r4, 0xffffefff +;; 1a: jgh 0x36 +;; 20: ag %r4, 0x50(%r2) +;; 26: lghi %r2, 0x1000 +;; 2a: stc %r5, 0(%r2, %r4) +;; 2e: lmg %r14, %r15, 0x110(%r15) +;; 34: br %r14 +;; 36: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 4294963199 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r2, 4096 -;; llc %r2, 0(%r2,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 38: stmg %r14, %r15, 0x70(%r15) +;; 3e: lgr %r1, %r15 +;; 42: aghi %r15, -0xa0 +;; 46: stg %r1, 0(%r15) +;; 4c: clgfi %r4, 0xffffefff +;; 52: jgh 0x70 +;; 58: ag %r4, 0x50(%r2) +;; 5e: lghi %r2, 0x1000 +;; 62: llc %r2, 0(%r2, %r4) +;; 68: lmg %r14, %r15, 0x110(%r15) +;; 6e: br %r14 +;; 70: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat index d901610403cb..e720a60d285e 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 65535 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r2, 65535 -;; stc %r5, 0(%r2,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: clgfi %r4, 0xffff +;; 1a: jgh 0x36 +;; 20: ag %r4, 0x50(%r2) +;; 26: llilh %r2, 0xffff +;; 2a: stc %r5, 0(%r2, %r4) +;; 2e: lmg %r14, %r15, 0x110(%r15) +;; 34: br %r14 +;; 36: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 65535 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r2, 65535 -;; llc %r2, 0(%r2,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 38: stmg %r14, %r15, 0x70(%r15) +;; 3e: lgr %r1, %r15 +;; 42: aghi %r15, -0xa0 +;; 46: stg %r1, 0(%r15) +;; 4c: clgfi %r4, 0xffff +;; 52: jgh 0x70 +;; 58: ag %r4, 0x50(%r2) +;; 5e: llilh %r2, 0xffff +;; 62: llc %r2, 0(%r2, %r4) +;; 68: lmg %r14, %r15, 0x110(%r15) +;; 6e: br %r14 +;; 70: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat index 4ae7fb7efa49..dcde9607e486 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat @@ -18,43 +18,32 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r7, %r15, 56(%r15) -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r3, 0 -;; lgr %r7, %r4 -;; ag %r4, 80(%r2) -;; lgr %r2, %r7 -;; clgfi %r2, 4294967292 -;; locgrh %r4, %r3 -;; strv %r5, 0(%r4) -;; jg label1 -;; block1: -;; lmg %r7, %r15, 56(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r7, %r15, 0x38(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lghi %r3, 0 +;; 18: lgr %r7, %r4 +;; 1c: ag %r4, 0x50(%r2) +;; 22: lgr %r2, %r7 +;; 26: clgfi %r2, 0xfffffffc +;; 2c: locgrh %r4, %r3 +;; 30: strv %r5, 0(%r4) +;; 36: lmg %r7, %r15, 0xd8(%r15) +;; 3c: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lghi %r5, 0 -;; ag %r4, 80(%r2) -;; lgr %r2, %r3 -;; clgfi %r2, 4294967292 -;; locgrh %r4, %r5 -;; lrv %r2, 0(%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 40: stmg %r14, %r15, 0x70(%r15) +;; 46: lgr %r1, %r15 +;; 4a: aghi %r15, -0xa0 +;; 4e: stg %r1, 0(%r15) +;; 54: lgr %r3, %r4 +;; 58: lghi %r5, 0 +;; 5c: ag %r4, 0x50(%r2) +;; 62: lgr %r2, %r3 +;; 66: clgfi %r2, 0xfffffffc +;; 6c: locgrh %r4, %r5 +;; 70: lrv %r2, 0(%r4) +;; 76: lmg %r14, %r15, 0x110(%r15) +;; 7c: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat index cdfb645ad780..79b6cd7560f1 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,36 +18,32 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r14, %r15, 112(%r15) -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r14, 0 -;; lgr %r3, %r4 -;; ag %r3, 80(%r2) -;; aghi %r3, 4096 -;; clgfi %r4, 4294963196 -;; locgrh %r3, %r14 -;; strv %r5, 0(%r3) -;; jg label1 -;; block1: -;; lmg %r14, %r15, 112(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lghi %r14, 0 +;; 18: lgr %r3, %r4 +;; 1c: ag %r3, 0x50(%r2) +;; 22: aghi %r3, 0x1000 +;; 26: clgfi %r4, 0xffffeffc +;; 2c: locgrh %r3, %r14 +;; 30: strv %r5, 0(%r3) +;; 36: lmg %r14, %r15, 0x110(%r15) +;; 3c: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r3, 0 -;; lgr %r5, %r4 -;; ag %r5, 80(%r2) -;; aghi %r5, 4096 -;; clgfi %r4, 4294963196 -;; locgrh %r5, %r3 -;; lrv %r2, 0(%r5) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 40: stmg %r14, %r15, 0x70(%r15) +;; 46: lgr %r1, %r15 +;; 4a: aghi %r15, -0xa0 +;; 4e: stg %r1, 0(%r15) +;; 54: lghi %r3, 0 +;; 58: lgr %r5, %r4 +;; 5c: ag %r5, 0x50(%r2) +;; 62: aghi %r5, 0x1000 +;; 66: clgfi %r4, 0xffffeffc +;; 6c: locgrh %r5, %r3 +;; 70: lrv %r2, 0(%r5) +;; 76: lmg %r14, %r15, 0x110(%r15) +;; 7c: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 211a2a9bfbf6..5421bee9784a 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,46 +18,34 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r3, 0 -;; lgr %r6, %r4 -;; ag %r6, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r6, %r2 -;; clgfi %r4, 65532 -;; locgrh %r2, %r3 -;; strv %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r6, %r15, 0x30(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lghi %r3, 0 +;; 18: lgr %r6, %r4 +;; 1c: ag %r6, 0x50(%r2) +;; 22: llilh %r2, 0xffff +;; 26: agrk %r2, %r6, %r2 +;; 2a: clgfi %r4, 0xfffc +;; 30: locgrh %r2, %r3 +;; 34: strv %r5, 0(%r2) +;; 3a: lmg %r6, %r15, 0xd0(%r15) +;; 40: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r3, 0 -;; lgr %r5, %r4 -;; ag %r5, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r5, %r2 -;; clgfi %r4, 65532 -;; locgrh %r2, %r3 -;; lrv %r2, 0(%r2) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 44: stmg %r14, %r15, 0x70(%r15) +;; 4a: lgr %r1, %r15 +;; 4e: aghi %r15, -0xa0 +;; 52: stg %r1, 0(%r15) +;; 58: lghi %r3, 0 +;; 5c: lgr %r5, %r4 +;; 60: ag %r5, 0x50(%r2) +;; 66: llilh %r2, 0xffff +;; 6a: agrk %r2, %r5, %r2 +;; 6e: clgfi %r4, 0xfffc +;; 74: locgrh %r2, %r3 +;; 78: lrv %r2, 0(%r2) +;; 7e: lmg %r14, %r15, 0x110(%r15) +;; 84: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat index c3008094aad7..f4690c42d5d2 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat @@ -18,43 +18,32 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r7, %r15, 56(%r15) -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r3, 0 -;; lgr %r7, %r4 -;; ag %r4, 80(%r2) -;; lgr %r2, %r7 -;; clgfi %r2, 4294967295 -;; locgrh %r4, %r3 -;; stc %r5, 0(%r4) -;; jg label1 -;; block1: -;; lmg %r7, %r15, 56(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r7, %r15, 0x38(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lghi %r3, 0 +;; 18: lgr %r7, %r4 +;; 1c: ag %r4, 0x50(%r2) +;; 22: lgr %r2, %r7 +;; 26: clgfi %r2, 0xffffffff +;; 2c: locgrh %r4, %r3 +;; 30: stc %r5, 0(%r4) +;; 34: lmg %r7, %r15, 0xd8(%r15) +;; 3a: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lghi %r5, 0 -;; ag %r4, 80(%r2) -;; lgr %r2, %r3 -;; clgfi %r2, 4294967295 -;; locgrh %r4, %r5 -;; llc %r2, 0(%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 3c: stmg %r14, %r15, 0x70(%r15) +;; 42: lgr %r1, %r15 +;; 46: aghi %r15, -0xa0 +;; 4a: stg %r1, 0(%r15) +;; 50: lgr %r3, %r4 +;; 54: lghi %r5, 0 +;; 58: ag %r4, 0x50(%r2) +;; 5e: lgr %r2, %r3 +;; 62: clgfi %r2, 0xffffffff +;; 68: locgrh %r4, %r5 +;; 6c: llc %r2, 0(%r4) +;; 72: lmg %r14, %r15, 0x110(%r15) +;; 78: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat index e52e69b90ebc..57e72de3c7a0 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,36 +18,32 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r14, %r15, 112(%r15) -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r14, 0 -;; lgr %r3, %r4 -;; ag %r3, 80(%r2) -;; aghi %r3, 4096 -;; clgfi %r4, 4294963199 -;; locgrh %r3, %r14 -;; stc %r5, 0(%r3) -;; jg label1 -;; block1: -;; lmg %r14, %r15, 112(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lghi %r14, 0 +;; 18: lgr %r3, %r4 +;; 1c: ag %r3, 0x50(%r2) +;; 22: aghi %r3, 0x1000 +;; 26: clgfi %r4, 0xffffefff +;; 2c: locgrh %r3, %r14 +;; 30: stc %r5, 0(%r3) +;; 34: lmg %r14, %r15, 0x110(%r15) +;; 3a: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r3, 0 -;; lgr %r5, %r4 -;; ag %r5, 80(%r2) -;; aghi %r5, 4096 -;; clgfi %r4, 4294963199 -;; locgrh %r5, %r3 -;; llc %r2, 0(%r5) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 3c: stmg %r14, %r15, 0x70(%r15) +;; 42: lgr %r1, %r15 +;; 46: aghi %r15, -0xa0 +;; 4a: stg %r1, 0(%r15) +;; 50: lghi %r3, 0 +;; 54: lgr %r5, %r4 +;; 58: ag %r5, 0x50(%r2) +;; 5e: aghi %r5, 0x1000 +;; 62: clgfi %r4, 0xffffefff +;; 68: locgrh %r5, %r3 +;; 6c: llc %r2, 0(%r5) +;; 72: lmg %r14, %r15, 0x110(%r15) +;; 78: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat index d3fed5c29c1b..1ba294355d61 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,46 +18,34 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r3, 0 -;; lgr %r6, %r4 -;; ag %r6, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r6, %r2 -;; clgfi %r4, 65535 -;; locgrh %r2, %r3 -;; stc %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r6, %r15, 0x30(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lghi %r3, 0 +;; 18: lgr %r6, %r4 +;; 1c: ag %r6, 0x50(%r2) +;; 22: llilh %r2, 0xffff +;; 26: agrk %r2, %r6, %r2 +;; 2a: clgfi %r4, 0xffff +;; 30: locgrh %r2, %r3 +;; 34: stc %r5, 0(%r2) +;; 38: lmg %r6, %r15, 0xd0(%r15) +;; 3e: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r3, 0 -;; lgr %r5, %r4 -;; ag %r5, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r5, %r2 -;; clgfi %r4, 65535 -;; locgrh %r2, %r3 -;; llc %r2, 0(%r2) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 40: stmg %r14, %r15, 0x70(%r15) +;; 46: lgr %r1, %r15 +;; 4a: aghi %r15, -0xa0 +;; 4e: stg %r1, 0(%r15) +;; 54: lghi %r3, 0 +;; 58: lgr %r5, %r4 +;; 5c: ag %r5, 0x50(%r2) +;; 62: llilh %r2, 0xffff +;; 66: agrk %r2, %r5, %r2 +;; 6a: clgfi %r4, 0xffff +;; 70: locgrh %r2, %r3 +;; 74: llc %r2, 0(%r2) +;; 7a: lmg %r14, %r15, 0x110(%r15) +;; 80: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat index c4ecbb959b49..c18d17d70de0 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat @@ -18,32 +18,28 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 4294967292 -;; jgh label3 ; jg label1 -;; block1: -;; lg %r2, 80(%r2) -;; strv %r5, 0(%r4,%r2) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: clgfi %r4, 0xfffffffc +;; 1a: jgh 0x34 +;; 20: lg %r2, 0x50(%r2) +;; 26: strv %r5, 0(%r4, %r2) +;; 2c: lmg %r14, %r15, 0x110(%r15) +;; 32: br %r14 +;; 34: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 4294967292 -;; jgh label3 ; jg label1 -;; block1: -;; lg %r5, 80(%r2) -;; lrv %r2, 0(%r4,%r5) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 38: stmg %r14, %r15, 0x70(%r15) +;; 3e: lgr %r1, %r15 +;; 42: aghi %r15, -0xa0 +;; 46: stg %r1, 0(%r15) +;; 4c: clgfi %r4, 0xfffffffc +;; 52: jgh 0x6c +;; 58: lg %r5, 0x50(%r2) +;; 5e: lrv %r2, 0(%r4, %r5) +;; 64: lmg %r14, %r15, 0x110(%r15) +;; 6a: br %r14 +;; 6c: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat index e2b7bc65780b..1b9ec1286a69 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 4294963196 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r2, 4096 -;; strv %r5, 0(%r2,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: clgfi %r4, 0xffffeffc +;; 1a: jgh 0x38 +;; 20: ag %r4, 0x50(%r2) +;; 26: lghi %r2, 0x1000 +;; 2a: strv %r5, 0(%r2, %r4) +;; 30: lmg %r14, %r15, 0x110(%r15) +;; 36: br %r14 +;; 38: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 4294963196 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r2, 4096 -;; lrv %r2, 0(%r2,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 3c: stmg %r14, %r15, 0x70(%r15) +;; 42: lgr %r1, %r15 +;; 46: aghi %r15, -0xa0 +;; 4a: stg %r1, 0(%r15) +;; 50: clgfi %r4, 0xffffeffc +;; 56: jgh 0x74 +;; 5c: ag %r4, 0x50(%r2) +;; 62: lghi %r2, 0x1000 +;; 66: lrv %r2, 0(%r2, %r4) +;; 6c: lmg %r14, %r15, 0x110(%r15) +;; 72: br %r14 +;; 74: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat index 33ddaf81401c..a78d0f11b403 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 65532 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r2, 65535 -;; strv %r5, 0(%r2,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: clgfi %r4, 0xfffc +;; 1a: jgh 0x38 +;; 20: ag %r4, 0x50(%r2) +;; 26: llilh %r2, 0xffff +;; 2a: strv %r5, 0(%r2, %r4) +;; 30: lmg %r14, %r15, 0x110(%r15) +;; 36: br %r14 +;; 38: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 65532 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r2, 65535 -;; lrv %r2, 0(%r2,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 3c: stmg %r14, %r15, 0x70(%r15) +;; 42: lgr %r1, %r15 +;; 46: aghi %r15, -0xa0 +;; 4a: stg %r1, 0(%r15) +;; 50: clgfi %r4, 0xfffc +;; 56: jgh 0x74 +;; 5c: ag %r4, 0x50(%r2) +;; 62: llilh %r2, 0xffff +;; 66: lrv %r2, 0(%r2, %r4) +;; 6c: lmg %r14, %r15, 0x110(%r15) +;; 72: br %r14 +;; 74: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat index 7e1790737016..f8c7361ec2d6 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat @@ -18,32 +18,28 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 4294967295 -;; jgh label3 ; jg label1 -;; block1: -;; lg %r2, 80(%r2) -;; stc %r5, 0(%r4,%r2) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: clgfi %r4, 0xffffffff +;; 1a: jgh 0x32 +;; 20: lg %r2, 0x50(%r2) +;; 26: stc %r5, 0(%r4, %r2) +;; 2a: lmg %r14, %r15, 0x110(%r15) +;; 30: br %r14 +;; 32: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 4294967295 -;; jgh label3 ; jg label1 -;; block1: -;; lg %r5, 80(%r2) -;; llc %r2, 0(%r4,%r5) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 34: stmg %r14, %r15, 0x70(%r15) +;; 3a: lgr %r1, %r15 +;; 3e: aghi %r15, -0xa0 +;; 42: stg %r1, 0(%r15) +;; 48: clgfi %r4, 0xffffffff +;; 4e: jgh 0x68 +;; 54: lg %r5, 0x50(%r2) +;; 5a: llc %r2, 0(%r4, %r5) +;; 60: lmg %r14, %r15, 0x110(%r15) +;; 66: br %r14 +;; 68: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat index 3822556c1d9d..b8d6f37e3068 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 4294963199 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r2, 4096 -;; stc %r5, 0(%r2,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: clgfi %r4, 0xffffefff +;; 1a: jgh 0x36 +;; 20: ag %r4, 0x50(%r2) +;; 26: lghi %r2, 0x1000 +;; 2a: stc %r5, 0(%r2, %r4) +;; 2e: lmg %r14, %r15, 0x110(%r15) +;; 34: br %r14 +;; 36: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 4294963199 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; lghi %r2, 4096 -;; llc %r2, 0(%r2,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 38: stmg %r14, %r15, 0x70(%r15) +;; 3e: lgr %r1, %r15 +;; 42: aghi %r15, -0xa0 +;; 46: stg %r1, 0(%r15) +;; 4c: clgfi %r4, 0xffffefff +;; 52: jgh 0x70 +;; 58: ag %r4, 0x50(%r2) +;; 5e: lghi %r2, 0x1000 +;; 62: llc %r2, 0(%r2, %r4) +;; 68: lmg %r14, %r15, 0x110(%r15) +;; 6e: br %r14 +;; 70: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat index de54ab62e2b8..acd05411ccc6 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,34 +18,30 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 65535 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r2, 65535 -;; stc %r5, 0(%r2,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: clgfi %r4, 0xffff +;; 1a: jgh 0x36 +;; 20: ag %r4, 0x50(%r2) +;; 26: llilh %r2, 0xffff +;; 2a: stc %r5, 0(%r2, %r4) +;; 2e: lmg %r14, %r15, 0x110(%r15) +;; 34: br %r14 +;; 36: .byte 0x00, 0x00 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; clgfi %r4, 65535 -;; jgh label3 ; jg label1 -;; block1: -;; ag %r4, 80(%r2) -;; llilh %r2, 65535 -;; llc %r2, 0(%r2,%r4) -;; jg label2 -;; block2: -;; br %r14 -;; block3: -;; .word 0x0000 # trap=heap_oob +;; wasm[0]::function[1]: +;; 38: stmg %r14, %r15, 0x70(%r15) +;; 3e: lgr %r1, %r15 +;; 42: aghi %r15, -0xa0 +;; 46: stg %r1, 0(%r15) +;; 4c: clgfi %r4, 0xffff +;; 52: jgh 0x70 +;; 58: ag %r4, 0x50(%r2) +;; 5e: llilh %r2, 0xffff +;; 62: llc %r2, 0(%r2, %r4) +;; 68: lmg %r14, %r15, 0x110(%r15) +;; 6e: br %r14 +;; 70: .byte 0x00, 0x00 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat index 6c832ba0a56d..a657bd89d2b1 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat @@ -18,43 +18,32 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r7, %r15, 56(%r15) -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r3, 0 -;; lgr %r7, %r4 -;; ag %r4, 80(%r2) -;; lgr %r2, %r7 -;; clgfi %r2, 4294967292 -;; locgrh %r4, %r3 -;; strv %r5, 0(%r4) -;; jg label1 -;; block1: -;; lmg %r7, %r15, 56(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r7, %r15, 0x38(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lghi %r3, 0 +;; 18: lgr %r7, %r4 +;; 1c: ag %r4, 0x50(%r2) +;; 22: lgr %r2, %r7 +;; 26: clgfi %r2, 0xfffffffc +;; 2c: locgrh %r4, %r3 +;; 30: strv %r5, 0(%r4) +;; 36: lmg %r7, %r15, 0xd8(%r15) +;; 3c: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lghi %r5, 0 -;; ag %r4, 80(%r2) -;; lgr %r2, %r3 -;; clgfi %r2, 4294967292 -;; locgrh %r4, %r5 -;; lrv %r2, 0(%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 40: stmg %r14, %r15, 0x70(%r15) +;; 46: lgr %r1, %r15 +;; 4a: aghi %r15, -0xa0 +;; 4e: stg %r1, 0(%r15) +;; 54: lgr %r3, %r4 +;; 58: lghi %r5, 0 +;; 5c: ag %r4, 0x50(%r2) +;; 62: lgr %r2, %r3 +;; 66: clgfi %r2, 0xfffffffc +;; 6c: locgrh %r4, %r5 +;; 70: lrv %r2, 0(%r4) +;; 76: lmg %r14, %r15, 0x110(%r15) +;; 7c: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat index 50a8798107af..f3525d103c2b 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,36 +18,32 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r14, %r15, 112(%r15) -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r14, 0 -;; lgr %r3, %r4 -;; ag %r3, 80(%r2) -;; aghi %r3, 4096 -;; clgfi %r4, 4294963196 -;; locgrh %r3, %r14 -;; strv %r5, 0(%r3) -;; jg label1 -;; block1: -;; lmg %r14, %r15, 112(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lghi %r14, 0 +;; 18: lgr %r3, %r4 +;; 1c: ag %r3, 0x50(%r2) +;; 22: aghi %r3, 0x1000 +;; 26: clgfi %r4, 0xffffeffc +;; 2c: locgrh %r3, %r14 +;; 30: strv %r5, 0(%r3) +;; 36: lmg %r14, %r15, 0x110(%r15) +;; 3c: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r3, 0 -;; lgr %r5, %r4 -;; ag %r5, 80(%r2) -;; aghi %r5, 4096 -;; clgfi %r4, 4294963196 -;; locgrh %r5, %r3 -;; lrv %r2, 0(%r5) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 40: stmg %r14, %r15, 0x70(%r15) +;; 46: lgr %r1, %r15 +;; 4a: aghi %r15, -0xa0 +;; 4e: stg %r1, 0(%r15) +;; 54: lghi %r3, 0 +;; 58: lgr %r5, %r4 +;; 5c: ag %r5, 0x50(%r2) +;; 62: aghi %r5, 0x1000 +;; 66: clgfi %r4, 0xffffeffc +;; 6c: locgrh %r5, %r3 +;; 70: lrv %r2, 0(%r5) +;; 76: lmg %r14, %r15, 0x110(%r15) +;; 7c: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 400d7064fb3b..5a46a5bb9f41 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,46 +18,34 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r3, 0 -;; lgr %r6, %r4 -;; ag %r6, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r6, %r2 -;; clgfi %r4, 65532 -;; locgrh %r2, %r3 -;; strv %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r6, %r15, 0x30(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lghi %r3, 0 +;; 18: lgr %r6, %r4 +;; 1c: ag %r6, 0x50(%r2) +;; 22: llilh %r2, 0xffff +;; 26: agrk %r2, %r6, %r2 +;; 2a: clgfi %r4, 0xfffc +;; 30: locgrh %r2, %r3 +;; 34: strv %r5, 0(%r2) +;; 3a: lmg %r6, %r15, 0xd0(%r15) +;; 40: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r3, 0 -;; lgr %r5, %r4 -;; ag %r5, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r5, %r2 -;; clgfi %r4, 65532 -;; locgrh %r2, %r3 -;; lrv %r2, 0(%r2) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 44: stmg %r14, %r15, 0x70(%r15) +;; 4a: lgr %r1, %r15 +;; 4e: aghi %r15, -0xa0 +;; 52: stg %r1, 0(%r15) +;; 58: lghi %r3, 0 +;; 5c: lgr %r5, %r4 +;; 60: ag %r5, 0x50(%r2) +;; 66: llilh %r2, 0xffff +;; 6a: agrk %r2, %r5, %r2 +;; 6e: clgfi %r4, 0xfffc +;; 74: locgrh %r2, %r3 +;; 78: lrv %r2, 0(%r2) +;; 7e: lmg %r14, %r15, 0x110(%r15) +;; 84: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat index d45ac2a55944..d330104707dc 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat @@ -18,43 +18,32 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r7, %r15, 56(%r15) -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r3, 0 -;; lgr %r7, %r4 -;; ag %r4, 80(%r2) -;; lgr %r2, %r7 -;; clgfi %r2, 4294967295 -;; locgrh %r4, %r3 -;; stc %r5, 0(%r4) -;; jg label1 -;; block1: -;; lmg %r7, %r15, 56(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r7, %r15, 0x38(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lghi %r3, 0 +;; 18: lgr %r7, %r4 +;; 1c: ag %r4, 0x50(%r2) +;; 22: lgr %r2, %r7 +;; 26: clgfi %r2, 0xffffffff +;; 2c: locgrh %r4, %r3 +;; 30: stc %r5, 0(%r4) +;; 34: lmg %r7, %r15, 0xd8(%r15) +;; 3a: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lgr %r3, %r4 -;; lghi %r5, 0 -;; ag %r4, 80(%r2) -;; lgr %r2, %r3 -;; clgfi %r2, 4294967295 -;; locgrh %r4, %r5 -;; llc %r2, 0(%r4) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 3c: stmg %r14, %r15, 0x70(%r15) +;; 42: lgr %r1, %r15 +;; 46: aghi %r15, -0xa0 +;; 4a: stg %r1, 0(%r15) +;; 50: lgr %r3, %r4 +;; 54: lghi %r5, 0 +;; 58: ag %r4, 0x50(%r2) +;; 5e: lgr %r2, %r3 +;; 62: clgfi %r2, 0xffffffff +;; 68: locgrh %r4, %r5 +;; 6c: llc %r2, 0(%r4) +;; 72: lmg %r14, %r15, 0x110(%r15) +;; 78: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat index 6623caf7f9c5..2c582ce5b5ef 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,36 +18,32 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r14, %r15, 112(%r15) -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r14, 0 -;; lgr %r3, %r4 -;; ag %r3, 80(%r2) -;; aghi %r3, 4096 -;; clgfi %r4, 4294963199 -;; locgrh %r3, %r14 -;; stc %r5, 0(%r3) -;; jg label1 -;; block1: -;; lmg %r14, %r15, 112(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r14, %r15, 0x70(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lghi %r14, 0 +;; 18: lgr %r3, %r4 +;; 1c: ag %r3, 0x50(%r2) +;; 22: aghi %r3, 0x1000 +;; 26: clgfi %r4, 0xffffefff +;; 2c: locgrh %r3, %r14 +;; 30: stc %r5, 0(%r3) +;; 34: lmg %r14, %r15, 0x110(%r15) +;; 3a: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r3, 0 -;; lgr %r5, %r4 -;; ag %r5, 80(%r2) -;; aghi %r5, 4096 -;; clgfi %r4, 4294963199 -;; locgrh %r5, %r3 -;; llc %r2, 0(%r5) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 3c: stmg %r14, %r15, 0x70(%r15) +;; 42: lgr %r1, %r15 +;; 46: aghi %r15, -0xa0 +;; 4a: stg %r1, 0(%r15) +;; 50: lghi %r3, 0 +;; 54: lgr %r5, %r4 +;; 58: ag %r5, 0x50(%r2) +;; 5e: aghi %r5, 0x1000 +;; 62: clgfi %r4, 0xffffefff +;; 68: locgrh %r5, %r3 +;; 6c: llc %r2, 0(%r5) +;; 72: lmg %r14, %r15, 0x110(%r15) +;; 78: br %r14 diff --git a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat index 9736041228ef..c122cbcedd2a 100644 --- a/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/s390x/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,46 +18,34 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; stmg %r6, %r15, 48(%r15) -;; unwind SaveReg { clobber_offset: 48, reg: p6i } -;; unwind SaveReg { clobber_offset: 56, reg: p7i } -;; unwind SaveReg { clobber_offset: 64, reg: p8i } -;; unwind SaveReg { clobber_offset: 72, reg: p9i } -;; unwind SaveReg { clobber_offset: 80, reg: p10i } -;; unwind SaveReg { clobber_offset: 88, reg: p11i } -;; unwind SaveReg { clobber_offset: 96, reg: p12i } -;; unwind SaveReg { clobber_offset: 104, reg: p13i } -;; unwind SaveReg { clobber_offset: 112, reg: p14i } -;; unwind SaveReg { clobber_offset: 120, reg: p15i } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r3, 0 -;; lgr %r6, %r4 -;; ag %r6, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r6, %r2 -;; clgfi %r4, 65535 -;; locgrh %r2, %r3 -;; stc %r5, 0(%r2) -;; jg label1 -;; block1: -;; lmg %r6, %r15, 48(%r15) -;; br %r14 +;; wasm[0]::function[0]: +;; 0: stmg %r6, %r15, 0x30(%r15) +;; 6: lgr %r1, %r15 +;; a: aghi %r15, -0xa0 +;; e: stg %r1, 0(%r15) +;; 14: lghi %r3, 0 +;; 18: lgr %r6, %r4 +;; 1c: ag %r6, 0x50(%r2) +;; 22: llilh %r2, 0xffff +;; 26: agrk %r2, %r6, %r2 +;; 2a: clgfi %r4, 0xffff +;; 30: locgrh %r2, %r3 +;; 34: stc %r5, 0(%r2) +;; 38: lmg %r6, %r15, 0xd0(%r15) +;; 3e: br %r14 ;; -;; function u0:1: -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } -;; unwind StackAlloc { size: 0 } -;; block0: -;; lghi %r3, 0 -;; lgr %r5, %r4 -;; ag %r5, 80(%r2) -;; llilh %r2, 65535 -;; agrk %r2, %r5, %r2 -;; clgfi %r4, 65535 -;; locgrh %r2, %r3 -;; llc %r2, 0(%r2) -;; jg label1 -;; block1: -;; br %r14 +;; wasm[0]::function[1]: +;; 40: stmg %r14, %r15, 0x70(%r15) +;; 46: lgr %r1, %r15 +;; 4a: aghi %r15, -0xa0 +;; 4e: stg %r1, 0(%r15) +;; 54: lghi %r3, 0 +;; 58: lgr %r5, %r4 +;; 5c: ag %r5, 0x50(%r2) +;; 62: llilh %r2, 0xffff +;; 66: agrk %r2, %r5, %r2 +;; 6a: clgfi %r4, 0xffff +;; 70: locgrh %r2, %r3 +;; 74: llc %r2, 0(%r2) +;; 7a: lmg %r14, %r15, 0x110(%r15) +;; 80: br %r14 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat index beeb29a5d431..22177d7cfc43 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat @@ -18,46 +18,32 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; movl %edx, %r11d -;; subq %r9, $4, %r9 -;; cmpq %r9, %r11 -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %rdi -;; movl %ecx, 0(%rdi,%r11,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r9 +;; 8: movl %edx, %r11d +;; b: subq $4, %r9 +;; f: cmpq %r9, %r11 +;; 12: ja 0x25 +;; 18: movq 0x50(%rdi), %rdi +;; 1c: movl %ecx, (%rdi, %r11) +;; 20: movq %rbp, %rsp +;; 23: popq %rbp +;; 24: retq +;; 25: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; movl %edx, %r11d -;; subq %r9, $4, %r9 -;; cmpq %r9, %r11 -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %rdi -;; movl 0(%rdi,%r11,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r9 +;; 38: movl %edx, %r11d +;; 3b: subq $4, %r9 +;; 3f: cmpq %r9, %r11 +;; 42: ja 0x55 +;; 48: movq 0x50(%rdi), %rdi +;; 4c: movl (%rdi, %r11), %eax +;; 50: movq %rbp, %rsp +;; 53: popq %rbp +;; 54: retq +;; 55: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat index 3b0b909879e8..661520844ac4 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,46 +18,32 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; movl %edx, %r11d -;; subq %r9, $4100, %r9 -;; cmpq %r9, %r11 -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %rdi -;; movl %ecx, 4096(%rdi,%r11,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r9 +;; 8: movl %edx, %r11d +;; b: subq $0x1004, %r9 +;; 12: cmpq %r9, %r11 +;; 15: ja 0x2c +;; 1b: movq 0x50(%rdi), %rdi +;; 1f: movl %ecx, 0x1000(%rdi, %r11) +;; 27: movq %rbp, %rsp +;; 2a: popq %rbp +;; 2b: retq +;; 2c: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; movl %edx, %r11d -;; subq %r9, $4100, %r9 -;; cmpq %r9, %r11 -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %rdi -;; movl 4096(%rdi,%r11,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r9 +;; 38: movl %edx, %r11d +;; 3b: subq $0x1004, %r9 +;; 42: cmpq %r9, %r11 +;; 45: ja 0x5c +;; 4b: movq 0x50(%rdi), %rdi +;; 4f: movl 0x1000(%rdi, %r11), %eax +;; 57: movq %rbp, %rsp +;; 5a: popq %rbp +;; 5b: retq +;; 5c: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat index f57f9a11009d..b6c869769f41 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,52 +18,48 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; movq %r9, %rsi -;; addq %rsi, const(0), %rsi -;; jb #trap=heap_oob -;; movq 88(%rdi), %rax -;; cmpq %rax, %rsi -;; jnbe label3; j label1 -;; block1: -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %edx -;; movl %ecx, 0(%r9,%rdx,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movl %edx, %r9d +;; 7: movq %r9, %rsi +;; a: addq 0x2f(%rip), %rsi +;; 11: jb 0x38 +;; 17: movq 0x58(%rdi), %rax +;; 1b: cmpq %rax, %rsi +;; 1e: ja 0x36 +;; 24: addq 0x50(%rdi), %r9 +;; 28: movl $0xffff0000, %edx +;; 2d: movl %ecx, (%r9, %rdx) +;; 31: movq %rbp, %rsp +;; 34: popq %rbp +;; 35: retq +;; 36: ud2 +;; 38: ud2 +;; 3a: addb %al, (%rax) +;; 3c: addb %al, (%rax) +;; 3e: addb %al, (%rax) +;; 40: addb $0, %al ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; movq %r9, %rsi -;; addq %rsi, const(0), %rsi -;; jb #trap=heap_oob -;; movq 88(%rdi), %rax -;; cmpq %rax, %rsi -;; jnbe label3; j label1 -;; block1: -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %ecx -;; movl 0(%r9,%rcx,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 50: pushq %rbp +;; 51: movq %rsp, %rbp +;; 54: movl %edx, %r9d +;; 57: movq %r9, %rsi +;; 5a: addq 0x2f(%rip), %rsi +;; 61: jb 0x88 +;; 67: movq 0x58(%rdi), %rax +;; 6b: cmpq %rax, %rsi +;; 6e: ja 0x86 +;; 74: addq 0x50(%rdi), %r9 +;; 78: movl $0xffff0000, %ecx +;; 7d: movl (%r9, %rcx), %eax +;; 81: movq %rbp, %rsp +;; 84: popq %rbp +;; 85: retq +;; 86: ud2 +;; 88: ud2 +;; 8a: addb %al, (%rax) +;; 8c: addb %al, (%rax) +;; 8e: addb %al, (%rax) +;; 90: addb $0, %al diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat index 8159a09dcec2..afe7a90b85c5 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat @@ -18,44 +18,30 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movl %edx, %r10d -;; cmpq %r11, %r10 -;; jnb label3; j label1 -;; block1: -;; movq 80(%rdi), %rsi -;; movb %cl, 0(%rsi,%r10,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r11 +;; 8: movl %edx, %r10d +;; b: cmpq %r11, %r10 +;; e: jae 0x21 +;; 14: movq 0x50(%rdi), %rsi +;; 18: movb %cl, (%rsi, %r10) +;; 1c: movq %rbp, %rsp +;; 1f: popq %rbp +;; 20: retq +;; 21: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movl %edx, %r10d -;; cmpq %r11, %r10 -;; jnb label3; j label1 -;; block1: -;; movq 80(%rdi), %rsi -;; movzbq 0(%rsi,%r10,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r11 +;; 38: movl %edx, %r10d +;; 3b: cmpq %r11, %r10 +;; 3e: jae 0x52 +;; 44: movq 0x50(%rdi), %rsi +;; 48: movzbq (%rsi, %r10), %rax +;; 4d: movq %rbp, %rsp +;; 50: popq %rbp +;; 51: retq +;; 52: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat index df370b49ccdb..700b3b86f34e 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,46 +18,32 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; movl %edx, %r11d -;; subq %r9, $4097, %r9 -;; cmpq %r9, %r11 -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %rdi -;; movb %cl, 4096(%rdi,%r11,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r9 +;; 8: movl %edx, %r11d +;; b: subq $0x1001, %r9 +;; 12: cmpq %r9, %r11 +;; 15: ja 0x2c +;; 1b: movq 0x50(%rdi), %rdi +;; 1f: movb %cl, 0x1000(%rdi, %r11) +;; 27: movq %rbp, %rsp +;; 2a: popq %rbp +;; 2b: retq +;; 2c: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; movl %edx, %r11d -;; subq %r9, $4097, %r9 -;; cmpq %r9, %r11 -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %rdi -;; movzbq 4096(%rdi,%r11,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r9 +;; 38: movl %edx, %r11d +;; 3b: subq $0x1001, %r9 +;; 42: cmpq %r9, %r11 +;; 45: ja 0x5d +;; 4b: movq 0x50(%rdi), %rdi +;; 4f: movzbq 0x1000(%rdi, %r11), %rax +;; 58: movq %rbp, %rsp +;; 5b: popq %rbp +;; 5c: retq +;; 5d: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat index 2e4c19b97be7..5ddbdf231452 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,52 +18,50 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; movq %r9, %rsi -;; addq %rsi, const(0), %rsi -;; jb #trap=heap_oob -;; movq 88(%rdi), %rax -;; cmpq %rax, %rsi -;; jnbe label3; j label1 -;; block1: -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %edx -;; movb %cl, 0(%r9,%rdx,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movl %edx, %r9d +;; 7: movq %r9, %rsi +;; a: addq 0x2f(%rip), %rsi +;; 11: jb 0x38 +;; 17: movq 0x58(%rdi), %rax +;; 1b: cmpq %rax, %rsi +;; 1e: ja 0x36 +;; 24: addq 0x50(%rdi), %r9 +;; 28: movl $0xffff0000, %edx +;; 2d: movb %cl, (%r9, %rdx) +;; 31: movq %rbp, %rsp +;; 34: popq %rbp +;; 35: retq +;; 36: ud2 +;; 38: ud2 +;; 3a: addb %al, (%rax) +;; 3c: addb %al, (%rax) +;; 3e: addb %al, (%rax) +;; 40: addl %eax, (%rax) ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; movq %r9, %rsi -;; addq %rsi, const(0), %rsi -;; jb #trap=heap_oob -;; movq 88(%rdi), %rax -;; cmpq %rax, %rsi -;; jnbe label3; j label1 -;; block1: -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %ecx -;; movzbq 0(%r9,%rcx,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 50: pushq %rbp +;; 51: movq %rsp, %rbp +;; 54: movl %edx, %r9d +;; 57: movq %r9, %rsi +;; 5a: addq 0x2f(%rip), %rsi +;; 61: jb 0x89 +;; 67: movq 0x58(%rdi), %rax +;; 6b: cmpq %rax, %rsi +;; 6e: ja 0x87 +;; 74: addq 0x50(%rdi), %r9 +;; 78: movl $0xffff0000, %ecx +;; 7d: movzbq (%r9, %rcx), %rax +;; 82: movq %rbp, %rsp +;; 85: popq %rbp +;; 86: retq +;; 87: ud2 +;; 89: ud2 +;; 8b: addb %al, (%rax) +;; 8d: addb %al, (%rax) +;; 8f: addb %al, (%rcx) +;; 91: addb %bh, %bh +;; 93: incl (%rax) +;; 95: addb %al, (%rax) diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat index d48a6d77bfb9..8c69414969d6 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat @@ -18,44 +18,34 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movl %edx, %eax -;; subq %r11, $4, %r11 -;; xorq %rdx, %rdx, %rdx -;; movq %rax, %rsi -;; addq %rsi, 80(%rdi), %rsi -;; cmpq %r11, %rax -;; cmovnbeq %rdx, %rsi, %rsi -;; movl %ecx, 0(%rsi) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r11 +;; 8: movl %edx, %eax +;; a: subq $4, %r11 +;; e: xorq %rdx, %rdx +;; 11: movq %rax, %rsi +;; 14: addq 0x50(%rdi), %rsi +;; 18: cmpq %r11, %rax +;; 1b: cmovaq %rdx, %rsi +;; 1f: movl %ecx, (%rsi) +;; 21: movq %rbp, %rsp +;; 24: popq %rbp +;; 25: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movl %edx, %eax -;; subq %r11, $4, %r11 -;; xorq %rcx, %rcx, %rcx -;; movq %rax, %rsi -;; addq %rsi, 80(%rdi), %rsi -;; cmpq %r11, %rax -;; cmovnbeq %rcx, %rsi, %rsi -;; movl 0(%rsi), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r11 +;; 38: movl %edx, %eax +;; 3a: subq $4, %r11 +;; 3e: xorq %rcx, %rcx +;; 41: movq %rax, %rsi +;; 44: addq 0x50(%rdi), %rsi +;; 48: cmpq %r11, %rax +;; 4b: cmovaq %rcx, %rsi +;; 4f: movl (%rsi), %eax +;; 51: movq %rbp, %rsp +;; 54: popq %rbp +;; 55: retq diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat index 39baeb658b32..3c18857bc176 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,44 +18,34 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movq 80(%rdi), %rax -;; movl %edx, %edx -;; subq %r11, $4100, %r11 -;; xorq %r8, %r8, %r8 -;; lea 4096(%rax,%rdx,1), %rdi -;; cmpq %r11, %rdx -;; cmovnbeq %r8, %rdi, %rdi -;; movl %ecx, 0(%rdi) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r11 +;; 8: movq 0x50(%rdi), %rax +;; c: movl %edx, %edx +;; e: subq $0x1004, %r11 +;; 15: xorq %r8, %r8 +;; 18: leaq 0x1000(%rax, %rdx), %rdi +;; 20: cmpq %r11, %rdx +;; 23: cmovaq %r8, %rdi +;; 27: movl %ecx, (%rdi) +;; 29: movq %rbp, %rsp +;; 2c: popq %rbp +;; 2d: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movq 80(%rdi), %rax -;; movl %edx, %ecx -;; subq %r11, $4100, %r11 -;; xorq %rdx, %rdx, %rdx -;; lea 4096(%rax,%rcx,1), %rdi -;; cmpq %r11, %rcx -;; cmovnbeq %rdx, %rdi, %rdi -;; movl 0(%rdi), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r11 +;; 38: movq 0x50(%rdi), %rax +;; 3c: movl %edx, %ecx +;; 3e: subq $0x1004, %r11 +;; 45: xorq %rdx, %rdx +;; 48: leaq 0x1000(%rax, %rcx), %rdi +;; 50: cmpq %r11, %rcx +;; 53: cmovaq %rdx, %rdi +;; 57: movl (%rdi), %eax +;; 59: movq %rbp, %rsp +;; 5c: popq %rbp +;; 5d: retq diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat index a85a6c2d5de1..3307a8afc3f6 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,50 +18,48 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r11d -;; movq %r11, %rdx -;; addq %rdx, const(0), %rdx -;; jb #trap=heap_oob -;; movq 88(%rdi), %r9 -;; xorq %r8, %r8, %r8 -;; addq %r11, 80(%rdi), %r11 -;; movl $-65536, %r10d -;; lea 0(%r11,%r10,1), %r10 -;; cmpq %r9, %rdx -;; cmovnbeq %r8, %r10, %r10 -;; movl %ecx, 0(%r10) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movl %edx, %r11d +;; 7: movq %r11, %rdx +;; a: addq 0x2f(%rip), %rdx +;; 11: jb 0x3a +;; 17: movq 0x58(%rdi), %r9 +;; 1b: xorq %r8, %r8 +;; 1e: addq 0x50(%rdi), %r11 +;; 22: movl $0xffff0000, %r10d +;; 28: addq %r11, %r10 +;; 2b: cmpq %r9, %rdx +;; 2e: cmovaq %r8, %r10 +;; 32: movl %ecx, (%r10) +;; 35: movq %rbp, %rsp +;; 38: popq %rbp +;; 39: retq +;; 3a: ud2 +;; 3c: addb %al, (%rax) +;; 3e: addb %al, (%rax) +;; 40: addb $0, %al ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r11d -;; movq %r11, %rcx -;; addq %rcx, const(0), %rcx -;; jb #trap=heap_oob -;; movq 88(%rdi), %r8 -;; xorq %rdx, %rdx, %rdx -;; addq %r11, 80(%rdi), %r11 -;; movl $-65536, %r9d -;; lea 0(%r11,%r9,1), %r9 -;; cmpq %r8, %rcx -;; cmovnbeq %rdx, %r9, %r9 -;; movl 0(%r9), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 50: pushq %rbp +;; 51: movq %rsp, %rbp +;; 54: movl %edx, %r11d +;; 57: movq %r11, %rcx +;; 5a: addq 0x2f(%rip), %rcx +;; 61: jb 0x8a +;; 67: movq 0x58(%rdi), %r8 +;; 6b: xorq %rdx, %rdx +;; 6e: addq 0x50(%rdi), %r11 +;; 72: movl $0xffff0000, %r9d +;; 78: addq %r11, %r9 +;; 7b: cmpq %r8, %rcx +;; 7e: cmovaq %rdx, %r9 +;; 82: movl (%r9), %eax +;; 85: movq %rbp, %rsp +;; 88: popq %rbp +;; 89: retq +;; 8a: ud2 +;; 8c: addb %al, (%rax) +;; 8e: addb %al, (%rax) +;; 90: addb $0, %al diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat index 82955ca762cf..bf217502cb2b 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat @@ -18,42 +18,32 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rsi -;; movl %edx, %edx -;; xorq %rax, %rax, %rax -;; movq %rdx, %r11 -;; addq %r11, 80(%rdi), %r11 -;; cmpq %rsi, %rdx -;; cmovnbq %rax, %r11, %r11 -;; movb %cl, 0(%r11) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %rsi +;; 8: movl %edx, %edx +;; a: xorq %rax, %rax +;; d: movq %rdx, %r11 +;; 10: addq 0x50(%rdi), %r11 +;; 14: cmpq %rsi, %rdx +;; 17: cmovaeq %rax, %r11 +;; 1b: movb %cl, (%r11) +;; 1e: movq %rbp, %rsp +;; 21: popq %rbp +;; 22: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rsi -;; movl %edx, %ecx -;; xorq %rax, %rax, %rax -;; movq %rcx, %r11 -;; addq %r11, 80(%rdi), %r11 -;; cmpq %rsi, %rcx -;; cmovnbq %rax, %r11, %r11 -;; movzbq 0(%r11), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %rsi +;; 38: movl %edx, %ecx +;; 3a: xorq %rax, %rax +;; 3d: movq %rcx, %r11 +;; 40: addq 0x50(%rdi), %r11 +;; 44: cmpq %rsi, %rcx +;; 47: cmovaeq %rax, %r11 +;; 4b: movzbq (%r11), %rax +;; 4f: movq %rbp, %rsp +;; 52: popq %rbp +;; 53: retq diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat index 57945f7df3ff..98b0ad45577f 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,44 +18,34 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movq 80(%rdi), %rax -;; movl %edx, %edx -;; subq %r11, $4097, %r11 -;; xorq %r8, %r8, %r8 -;; lea 4096(%rax,%rdx,1), %rdi -;; cmpq %r11, %rdx -;; cmovnbeq %r8, %rdi, %rdi -;; movb %cl, 0(%rdi) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r11 +;; 8: movq 0x50(%rdi), %rax +;; c: movl %edx, %edx +;; e: subq $0x1001, %r11 +;; 15: xorq %r8, %r8 +;; 18: leaq 0x1000(%rax, %rdx), %rdi +;; 20: cmpq %r11, %rdx +;; 23: cmovaq %r8, %rdi +;; 27: movb %cl, (%rdi) +;; 29: movq %rbp, %rsp +;; 2c: popq %rbp +;; 2d: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movq 80(%rdi), %rax -;; movl %edx, %ecx -;; subq %r11, $4097, %r11 -;; xorq %rdx, %rdx, %rdx -;; lea 4096(%rax,%rcx,1), %rdi -;; cmpq %r11, %rcx -;; cmovnbeq %rdx, %rdi, %rdi -;; movzbq 0(%rdi), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r11 +;; 38: movq 0x50(%rdi), %rax +;; 3c: movl %edx, %ecx +;; 3e: subq $0x1001, %r11 +;; 45: xorq %rdx, %rdx +;; 48: leaq 0x1000(%rax, %rcx), %rdi +;; 50: cmpq %r11, %rcx +;; 53: cmovaq %rdx, %rdi +;; 57: movzbq (%rdi), %rax +;; 5b: movq %rbp, %rsp +;; 5e: popq %rbp +;; 5f: retq diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat index 40e8106652c3..3b5c9de5551a 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,50 +18,50 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r11d -;; movq %r11, %rdx -;; addq %rdx, const(0), %rdx -;; jb #trap=heap_oob -;; movq 88(%rdi), %r9 -;; xorq %r8, %r8, %r8 -;; addq %r11, 80(%rdi), %r11 -;; movl $-65536, %r10d -;; lea 0(%r11,%r10,1), %r10 -;; cmpq %r9, %rdx -;; cmovnbeq %r8, %r10, %r10 -;; movb %cl, 0(%r10) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movl %edx, %r11d +;; 7: movq %r11, %rdx +;; a: addq 0x2f(%rip), %rdx +;; 11: jb 0x3a +;; 17: movq 0x58(%rdi), %r9 +;; 1b: xorq %r8, %r8 +;; 1e: addq 0x50(%rdi), %r11 +;; 22: movl $0xffff0000, %r10d +;; 28: addq %r11, %r10 +;; 2b: cmpq %r9, %rdx +;; 2e: cmovaq %r8, %r10 +;; 32: movb %cl, (%r10) +;; 35: movq %rbp, %rsp +;; 38: popq %rbp +;; 39: retq +;; 3a: ud2 +;; 3c: addb %al, (%rax) +;; 3e: addb %al, (%rax) +;; 40: addl %eax, (%rax) ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r11d -;; movq %r11, %rcx -;; addq %rcx, const(0), %rcx -;; jb #trap=heap_oob -;; movq 88(%rdi), %r8 -;; xorq %rdx, %rdx, %rdx -;; addq %r11, 80(%rdi), %r11 -;; movl $-65536, %r9d -;; lea 0(%r11,%r9,1), %r9 -;; cmpq %r8, %rcx -;; cmovnbeq %rdx, %r9, %r9 -;; movzbq 0(%r9), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 50: pushq %rbp +;; 51: movq %rsp, %rbp +;; 54: movl %edx, %r11d +;; 57: movq %r11, %rcx +;; 5a: addq 0x2f(%rip), %rcx +;; 61: jb 0x8b +;; 67: movq 0x58(%rdi), %r8 +;; 6b: xorq %rdx, %rdx +;; 6e: addq 0x50(%rdi), %r11 +;; 72: movl $0xffff0000, %r9d +;; 78: addq %r11, %r9 +;; 7b: cmpq %r8, %rcx +;; 7e: cmovaq %rdx, %r9 +;; 82: movzbq (%r9), %rax +;; 86: movq %rbp, %rsp +;; 89: popq %rbp +;; 8a: retq +;; 8b: ud2 +;; 8d: addb %al, (%rax) +;; 8f: addb %al, (%rcx) +;; 91: addb %bh, %bh +;; 93: incl (%rax) +;; 95: addb %al, (%rax) diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat index bdca2363d051..3bceacb9365a 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat @@ -18,44 +18,30 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movl %edx, %r10d -;; cmpq %r11, %r10 -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %rsi -;; movl %ecx, 0(%rsi,%r10,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r11 +;; 8: movl %edx, %r10d +;; b: cmpq %r11, %r10 +;; e: ja 0x21 +;; 14: movq 0x50(%rdi), %rsi +;; 18: movl %ecx, (%rsi, %r10) +;; 1c: movq %rbp, %rsp +;; 1f: popq %rbp +;; 20: retq +;; 21: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movl %edx, %r10d -;; cmpq %r11, %r10 -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %rsi -;; movl 0(%rsi,%r10,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r11 +;; 38: movl %edx, %r10d +;; 3b: cmpq %r11, %r10 +;; 3e: ja 0x51 +;; 44: movq 0x50(%rdi), %rsi +;; 48: movl (%rsi, %r10), %eax +;; 4c: movq %rbp, %rsp +;; 4f: popq %rbp +;; 50: retq +;; 51: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat index 1d31f5902174..6436dae3a283 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,44 +18,30 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movl %edx, %r10d -;; cmpq %r11, %r10 -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %rsi -;; movl %ecx, 4096(%rsi,%r10,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r11 +;; 8: movl %edx, %r10d +;; b: cmpq %r11, %r10 +;; e: ja 0x25 +;; 14: movq 0x50(%rdi), %rsi +;; 18: movl %ecx, 0x1000(%rsi, %r10) +;; 20: movq %rbp, %rsp +;; 23: popq %rbp +;; 24: retq +;; 25: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movl %edx, %r10d -;; cmpq %r11, %r10 -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %rsi -;; movl 4096(%rsi,%r10,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r11 +;; 38: movl %edx, %r10d +;; 3b: cmpq %r11, %r10 +;; 3e: ja 0x55 +;; 44: movq 0x50(%rdi), %rsi +;; 48: movl 0x1000(%rsi, %r10), %eax +;; 50: movq %rbp, %rsp +;; 53: popq %rbp +;; 54: retq +;; 55: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat index 062904cfbbc0..f77fb0832b99 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,46 +18,32 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movl %edx, %r10d -;; cmpq %r11, %r10 -;; jnbe label3; j label1 -;; block1: -;; addq %r10, 80(%rdi), %r10 -;; movl $-65536, %edi -;; movl %ecx, 0(%r10,%rdi,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r11 +;; 8: movl %edx, %r10d +;; b: cmpq %r11, %r10 +;; e: ja 0x26 +;; 14: addq 0x50(%rdi), %r10 +;; 18: movl $0xffff0000, %edi +;; 1d: movl %ecx, (%r10, %rdi) +;; 21: movq %rbp, %rsp +;; 24: popq %rbp +;; 25: retq +;; 26: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movl %edx, %r10d -;; cmpq %r11, %r10 -;; jnbe label3; j label1 -;; block1: -;; addq %r10, 80(%rdi), %r10 -;; movl $-65536, %edi -;; movl 0(%r10,%rdi,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r11 +;; 38: movl %edx, %r10d +;; 3b: cmpq %r11, %r10 +;; 3e: ja 0x56 +;; 44: addq 0x50(%rdi), %r10 +;; 48: movl $0xffff0000, %edi +;; 4d: movl (%r10, %rdi), %eax +;; 51: movq %rbp, %rsp +;; 54: popq %rbp +;; 55: retq +;; 56: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat index c3419dba6c04..6fd0a1d0d7e5 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat @@ -18,44 +18,30 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movl %edx, %r10d -;; cmpq %r11, %r10 -;; jnb label3; j label1 -;; block1: -;; movq 80(%rdi), %rsi -;; movb %cl, 0(%rsi,%r10,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r11 +;; 8: movl %edx, %r10d +;; b: cmpq %r11, %r10 +;; e: jae 0x21 +;; 14: movq 0x50(%rdi), %rsi +;; 18: movb %cl, (%rsi, %r10) +;; 1c: movq %rbp, %rsp +;; 1f: popq %rbp +;; 20: retq +;; 21: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movl %edx, %r10d -;; cmpq %r11, %r10 -;; jnb label3; j label1 -;; block1: -;; movq 80(%rdi), %rsi -;; movzbq 0(%rsi,%r10,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r11 +;; 38: movl %edx, %r10d +;; 3b: cmpq %r11, %r10 +;; 3e: jae 0x52 +;; 44: movq 0x50(%rdi), %rsi +;; 48: movzbq (%rsi, %r10), %rax +;; 4d: movq %rbp, %rsp +;; 50: popq %rbp +;; 51: retq +;; 52: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat index 78fbad18a76f..390890bd6e91 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,44 +18,30 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movl %edx, %r10d -;; cmpq %r11, %r10 -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %rsi -;; movb %cl, 4096(%rsi,%r10,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r11 +;; 8: movl %edx, %r10d +;; b: cmpq %r11, %r10 +;; e: ja 0x25 +;; 14: movq 0x50(%rdi), %rsi +;; 18: movb %cl, 0x1000(%rsi, %r10) +;; 20: movq %rbp, %rsp +;; 23: popq %rbp +;; 24: retq +;; 25: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movl %edx, %r10d -;; cmpq %r11, %r10 -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %rsi -;; movzbq 4096(%rsi,%r10,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r11 +;; 38: movl %edx, %r10d +;; 3b: cmpq %r11, %r10 +;; 3e: ja 0x56 +;; 44: movq 0x50(%rdi), %rsi +;; 48: movzbq 0x1000(%rsi, %r10), %rax +;; 51: movq %rbp, %rsp +;; 54: popq %rbp +;; 55: retq +;; 56: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat index 8feb425b1057..61db33a5a971 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,46 +18,32 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movl %edx, %r10d -;; cmpq %r11, %r10 -;; jnbe label3; j label1 -;; block1: -;; addq %r10, 80(%rdi), %r10 -;; movl $-65536, %edi -;; movb %cl, 0(%r10,%rdi,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r11 +;; 8: movl %edx, %r10d +;; b: cmpq %r11, %r10 +;; e: ja 0x26 +;; 14: addq 0x50(%rdi), %r10 +;; 18: movl $0xffff0000, %edi +;; 1d: movb %cl, (%r10, %rdi) +;; 21: movq %rbp, %rsp +;; 24: popq %rbp +;; 25: retq +;; 26: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movl %edx, %r10d -;; cmpq %r11, %r10 -;; jnbe label3; j label1 -;; block1: -;; addq %r10, 80(%rdi), %r10 -;; movl $-65536, %edi -;; movzbq 0(%r10,%rdi,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r11 +;; 38: movl %edx, %r10d +;; 3b: cmpq %r11, %r10 +;; 3e: ja 0x57 +;; 44: addq 0x50(%rdi), %r10 +;; 48: movl $0xffff0000, %edi +;; 4d: movzbq (%r10, %rdi), %rax +;; 52: movq %rbp, %rsp +;; 55: popq %rbp +;; 56: retq +;; 57: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat index c5535da397f5..66673fb4c76a 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat @@ -18,42 +18,32 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rsi -;; movl %edx, %edx -;; xorq %rax, %rax, %rax -;; movq %rdx, %r11 -;; addq %r11, 80(%rdi), %r11 -;; cmpq %rsi, %rdx -;; cmovnbeq %rax, %r11, %r11 -;; movl %ecx, 0(%r11) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %rsi +;; 8: movl %edx, %edx +;; a: xorq %rax, %rax +;; d: movq %rdx, %r11 +;; 10: addq 0x50(%rdi), %r11 +;; 14: cmpq %rsi, %rdx +;; 17: cmovaq %rax, %r11 +;; 1b: movl %ecx, (%r11) +;; 1e: movq %rbp, %rsp +;; 21: popq %rbp +;; 22: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rsi -;; movl %edx, %ecx -;; xorq %rax, %rax, %rax -;; movq %rcx, %r11 -;; addq %r11, 80(%rdi), %r11 -;; cmpq %rsi, %rcx -;; cmovnbeq %rax, %r11, %r11 -;; movl 0(%r11), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %rsi +;; 38: movl %edx, %ecx +;; 3a: xorq %rax, %rax +;; 3d: movq %rcx, %r11 +;; 40: addq 0x50(%rdi), %r11 +;; 44: cmpq %rsi, %rcx +;; 47: cmovaq %rax, %r11 +;; 4b: movl (%r11), %eax +;; 4e: movq %rbp, %rsp +;; 51: popq %rbp +;; 52: retq diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat index 768f258e8d79..bb3ba35f3c34 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,43 +18,33 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq %rdx, %r8 -;; movq 88(%rdi), %r9 -;; movq 80(%rdi), %rdx -;; movl %r8d, %r8d -;; xorq %rax, %rax, %rax -;; lea 4096(%rdx,%r8,1), %rsi -;; cmpq %r9, %r8 -;; cmovnbeq %rax, %rsi, %rsi -;; movl %ecx, 0(%rsi) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq %rdx, %r8 +;; 7: movq 0x58(%rdi), %r9 +;; b: movq 0x50(%rdi), %rdx +;; f: movl %r8d, %r8d +;; 12: xorq %rax, %rax +;; 15: leaq 0x1000(%rdx, %r8), %rsi +;; 1d: cmpq %r9, %r8 +;; 20: cmovaq %rax, %rsi +;; 24: movl %ecx, (%rsi) +;; 26: movq %rbp, %rsp +;; 29: popq %rbp +;; 2a: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r8 -;; movq 80(%rdi), %rcx -;; movl %edx, %edx -;; xorq %rax, %rax, %rax -;; lea 4096(%rcx,%rdx,1), %rsi -;; cmpq %r8, %rdx -;; cmovnbeq %rax, %rsi, %rsi -;; movl 0(%rsi), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r8 +;; 38: movq 0x50(%rdi), %rcx +;; 3c: movl %edx, %edx +;; 3e: xorq %rax, %rax +;; 41: leaq 0x1000(%rcx, %rdx), %rsi +;; 49: cmpq %r8, %rdx +;; 4c: cmovaq %rax, %rsi +;; 50: movl (%rsi), %eax +;; 52: movq %rbp, %rsp +;; 55: popq %rbp +;; 56: retq diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 1f28cd14d3b3..81f8ef86c722 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,46 +18,36 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rax -;; movl %edx, %r8d -;; xorq %rdx, %rdx, %rdx -;; movq %r8, %r9 -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %r10d -;; lea 0(%r9,%r10,1), %rdi -;; cmpq %rax, %r8 -;; cmovnbeq %rdx, %rdi, %rdi -;; movl %ecx, 0(%rdi) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %rax +;; 8: movl %edx, %r8d +;; b: xorq %rdx, %rdx +;; e: movq %r8, %r9 +;; 11: addq 0x50(%rdi), %r9 +;; 15: movl $0xffff0000, %r10d +;; 1b: leaq (%r9, %r10), %rdi +;; 1f: cmpq %rax, %r8 +;; 22: cmovaq %rdx, %rdi +;; 26: movl %ecx, (%rdi) +;; 28: movq %rbp, %rsp +;; 2b: popq %rbp +;; 2c: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rax -;; movl %edx, %edx -;; xorq %rcx, %rcx, %rcx -;; movq %rdx, %r8 -;; addq %r8, 80(%rdi), %r8 -;; movl $-65536, %r9d -;; lea 0(%r8,%r9,1), %rdi -;; cmpq %rax, %rdx -;; cmovnbeq %rcx, %rdi, %rdi -;; movl 0(%rdi), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %rax +;; 38: movl %edx, %edx +;; 3a: xorq %rcx, %rcx +;; 3d: movq %rdx, %r8 +;; 40: addq 0x50(%rdi), %r8 +;; 44: movl $0xffff0000, %r9d +;; 4a: leaq (%r8, %r9), %rdi +;; 4e: cmpq %rax, %rdx +;; 51: cmovaq %rcx, %rdi +;; 55: movl (%rdi), %eax +;; 57: movq %rbp, %rsp +;; 5a: popq %rbp +;; 5b: retq diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat index ce02c8a697f0..8049887f92ac 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat @@ -18,42 +18,32 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rsi -;; movl %edx, %edx -;; xorq %rax, %rax, %rax -;; movq %rdx, %r11 -;; addq %r11, 80(%rdi), %r11 -;; cmpq %rsi, %rdx -;; cmovnbq %rax, %r11, %r11 -;; movb %cl, 0(%r11) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %rsi +;; 8: movl %edx, %edx +;; a: xorq %rax, %rax +;; d: movq %rdx, %r11 +;; 10: addq 0x50(%rdi), %r11 +;; 14: cmpq %rsi, %rdx +;; 17: cmovaeq %rax, %r11 +;; 1b: movb %cl, (%r11) +;; 1e: movq %rbp, %rsp +;; 21: popq %rbp +;; 22: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rsi -;; movl %edx, %ecx -;; xorq %rax, %rax, %rax -;; movq %rcx, %r11 -;; addq %r11, 80(%rdi), %r11 -;; cmpq %rsi, %rcx -;; cmovnbq %rax, %r11, %r11 -;; movzbq 0(%r11), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %rsi +;; 38: movl %edx, %ecx +;; 3a: xorq %rax, %rax +;; 3d: movq %rcx, %r11 +;; 40: addq 0x50(%rdi), %r11 +;; 44: cmpq %rsi, %rcx +;; 47: cmovaeq %rax, %r11 +;; 4b: movzbq (%r11), %rax +;; 4f: movq %rbp, %rsp +;; 52: popq %rbp +;; 53: retq diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat index a66de079355d..02028f245ed8 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,43 +18,33 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq %rdx, %r8 -;; movq 88(%rdi), %r9 -;; movq 80(%rdi), %rdx -;; movl %r8d, %r8d -;; xorq %rax, %rax, %rax -;; lea 4096(%rdx,%r8,1), %rsi -;; cmpq %r9, %r8 -;; cmovnbeq %rax, %rsi, %rsi -;; movb %cl, 0(%rsi) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq %rdx, %r8 +;; 7: movq 0x58(%rdi), %r9 +;; b: movq 0x50(%rdi), %rdx +;; f: movl %r8d, %r8d +;; 12: xorq %rax, %rax +;; 15: leaq 0x1000(%rdx, %r8), %rsi +;; 1d: cmpq %r9, %r8 +;; 20: cmovaq %rax, %rsi +;; 24: movb %cl, (%rsi) +;; 26: movq %rbp, %rsp +;; 29: popq %rbp +;; 2a: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r8 -;; movq 80(%rdi), %rcx -;; movl %edx, %edx -;; xorq %rax, %rax, %rax -;; lea 4096(%rcx,%rdx,1), %rsi -;; cmpq %r8, %rdx -;; cmovnbeq %rax, %rsi, %rsi -;; movzbq 0(%rsi), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r8 +;; 38: movq 0x50(%rdi), %rcx +;; 3c: movl %edx, %edx +;; 3e: xorq %rax, %rax +;; 41: leaq 0x1000(%rcx, %rdx), %rsi +;; 49: cmpq %r8, %rdx +;; 4c: cmovaq %rax, %rsi +;; 50: movzbq (%rsi), %rax +;; 54: movq %rbp, %rsp +;; 57: popq %rbp +;; 58: retq diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat index 4b87e95b2b9e..feecaf18d5aa 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,46 +18,36 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rax -;; movl %edx, %r8d -;; xorq %rdx, %rdx, %rdx -;; movq %r8, %r9 -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %r10d -;; lea 0(%r9,%r10,1), %rdi -;; cmpq %rax, %r8 -;; cmovnbeq %rdx, %rdi, %rdi -;; movb %cl, 0(%rdi) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %rax +;; 8: movl %edx, %r8d +;; b: xorq %rdx, %rdx +;; e: movq %r8, %r9 +;; 11: addq 0x50(%rdi), %r9 +;; 15: movl $0xffff0000, %r10d +;; 1b: leaq (%r9, %r10), %rdi +;; 1f: cmpq %rax, %r8 +;; 22: cmovaq %rdx, %rdi +;; 26: movb %cl, (%rdi) +;; 28: movq %rbp, %rsp +;; 2b: popq %rbp +;; 2c: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rax -;; movl %edx, %edx -;; xorq %rcx, %rcx, %rcx -;; movq %rdx, %r8 -;; addq %r8, 80(%rdi), %r8 -;; movl $-65536, %r9d -;; lea 0(%r8,%r9,1), %rdi -;; cmpq %rax, %rdx -;; cmovnbeq %rcx, %rdi, %rdi -;; movzbq 0(%rdi), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %rax +;; 38: movl %edx, %edx +;; 3a: xorq %rcx, %rcx +;; 3d: movq %rdx, %r8 +;; 40: addq 0x50(%rdi), %r8 +;; 44: movl $0xffff0000, %r9d +;; 4a: leaq (%r8, %r9), %rdi +;; 4e: cmpq %rax, %rdx +;; 51: cmovaq %rcx, %rdi +;; 55: movzbq (%rdi), %rax +;; 59: movq %rbp, %rsp +;; 5c: popq %rbp +;; 5d: retq diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat index 9372b739e176..8036f5927ae0 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat @@ -18,44 +18,30 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; subq %r9, $4, %r9 -;; cmpq %r9, %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %rsi -;; movl %ecx, 0(%rsi,%rdx,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r9 +;; 8: subq $4, %r9 +;; c: cmpq %r9, %rdx +;; f: ja 0x21 +;; 15: movq 0x50(%rdi), %rsi +;; 19: movl %ecx, (%rsi, %rdx) +;; 1c: movq %rbp, %rsp +;; 1f: popq %rbp +;; 20: retq +;; 21: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; subq %r9, $4, %r9 -;; cmpq %r9, %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %rsi -;; movl 0(%rsi,%rdx,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r9 +;; 38: subq $4, %r9 +;; 3c: cmpq %r9, %rdx +;; 3f: ja 0x51 +;; 45: movq 0x50(%rdi), %rsi +;; 49: movl (%rsi, %rdx), %eax +;; 4c: movq %rbp, %rsp +;; 4f: popq %rbp +;; 50: retq +;; 51: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat index 848d790e1b18..5fe045fdc983 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,44 +18,30 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; subq %r9, $4100, %r9 -;; cmpq %r9, %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %rsi -;; movl %ecx, 4096(%rsi,%rdx,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r9 +;; 8: subq $0x1004, %r9 +;; f: cmpq %r9, %rdx +;; 12: ja 0x28 +;; 18: movq 0x50(%rdi), %rsi +;; 1c: movl %ecx, 0x1000(%rsi, %rdx) +;; 23: movq %rbp, %rsp +;; 26: popq %rbp +;; 27: retq +;; 28: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; subq %r9, $4100, %r9 -;; cmpq %r9, %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %rsi -;; movl 4096(%rsi,%rdx,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r9 +;; 38: subq $0x1004, %r9 +;; 3f: cmpq %r9, %rdx +;; 42: ja 0x58 +;; 48: movq 0x50(%rdi), %rsi +;; 4c: movl 0x1000(%rsi, %rdx), %eax +;; 53: movq %rbp, %rsp +;; 56: popq %rbp +;; 57: retq +;; 58: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat index cee16ce7862e..2d502f6ba608 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,50 +18,42 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq %rdx, %r11 -;; addq %r11, const(0), %r11 -;; jb #trap=heap_oob -;; movq 88(%rdi), %rsi -;; cmpq %rsi, %r11 -;; jnbe label3; j label1 -;; block1: -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %eax -;; movl %ecx, 0(%rdx,%rax,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq %rdx, %r11 +;; 7: addq 0x2a(%rip), %r11 +;; e: jb 0x34 +;; 14: movq 0x58(%rdi), %rsi +;; 18: cmpq %rsi, %r11 +;; 1b: ja 0x32 +;; 21: addq 0x50(%rdi), %rdx +;; 25: movl $0xffff0000, %eax +;; 2a: movl %ecx, (%rdx, %rax) +;; 2d: movq %rbp, %rsp +;; 30: popq %rbp +;; 31: retq +;; 32: ud2 +;; 34: ud2 +;; 36: addb %al, (%rax) +;; 38: addb $0, %al ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq %rdx, %r11 -;; addq %r11, const(0), %r11 -;; jb #trap=heap_oob -;; movq 88(%rdi), %rsi -;; cmpq %rsi, %r11 -;; jnbe label3; j label1 -;; block1: -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %eax -;; movl 0(%rdx,%rax,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 40: pushq %rbp +;; 41: movq %rsp, %rbp +;; 44: movq %rdx, %r11 +;; 47: addq 0x2a(%rip), %r11 +;; 4e: jb 0x74 +;; 54: movq 0x58(%rdi), %rsi +;; 58: cmpq %rsi, %r11 +;; 5b: ja 0x72 +;; 61: addq 0x50(%rdi), %rdx +;; 65: movl $0xffff0000, %eax +;; 6a: movl (%rdx, %rax), %eax +;; 6d: movq %rbp, %rsp +;; 70: popq %rbp +;; 71: retq +;; 72: ud2 +;; 74: ud2 +;; 76: addb %al, (%rax) +;; 78: addb $0, %al diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat index 71ff6ad9cacd..492355b6551f 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat @@ -18,42 +18,28 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; cmpq %r9, %rdx -;; jnb label3; j label1 -;; block1: -;; movq 80(%rdi), %r11 -;; movb %cl, 0(%r11,%rdx,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r9 +;; 8: cmpq %r9, %rdx +;; b: jae 0x1e +;; 11: movq 0x50(%rdi), %r11 +;; 15: movb %cl, (%r11, %rdx) +;; 19: movq %rbp, %rsp +;; 1c: popq %rbp +;; 1d: retq +;; 1e: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; cmpq %r9, %rdx -;; jnb label3; j label1 -;; block1: -;; movq 80(%rdi), %r11 -;; movzbq 0(%r11,%rdx,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: movq 0x58(%rdi), %r9 +;; 28: cmpq %r9, %rdx +;; 2b: jae 0x3f +;; 31: movq 0x50(%rdi), %r11 +;; 35: movzbq (%r11, %rdx), %rax +;; 3a: movq %rbp, %rsp +;; 3d: popq %rbp +;; 3e: retq +;; 3f: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat index 417fddb4967a..2164cb28c50b 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,44 +18,30 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; subq %r9, $4097, %r9 -;; cmpq %r9, %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %rsi -;; movb %cl, 4096(%rsi,%rdx,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r9 +;; 8: subq $0x1001, %r9 +;; f: cmpq %r9, %rdx +;; 12: ja 0x28 +;; 18: movq 0x50(%rdi), %rsi +;; 1c: movb %cl, 0x1000(%rsi, %rdx) +;; 23: movq %rbp, %rsp +;; 26: popq %rbp +;; 27: retq +;; 28: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; subq %r9, $4097, %r9 -;; cmpq %r9, %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %rsi -;; movzbq 4096(%rsi,%rdx,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r9 +;; 38: subq $0x1001, %r9 +;; 3f: cmpq %r9, %rdx +;; 42: ja 0x5a +;; 48: movq 0x50(%rdi), %rsi +;; 4c: movzbq 0x1000(%rsi, %rdx), %rax +;; 55: movq %rbp, %rsp +;; 58: popq %rbp +;; 59: retq +;; 5a: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat index 68c984985741..c6ffc5fa46b2 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,50 +18,41 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq %rdx, %r11 -;; addq %r11, const(0), %r11 -;; jb #trap=heap_oob -;; movq 88(%rdi), %rsi -;; cmpq %rsi, %r11 -;; jnbe label3; j label1 -;; block1: -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %eax -;; movb %cl, 0(%rdx,%rax,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq %rdx, %r11 +;; 7: addq 0x2a(%rip), %r11 +;; e: jb 0x34 +;; 14: movq 0x58(%rdi), %rsi +;; 18: cmpq %rsi, %r11 +;; 1b: ja 0x32 +;; 21: addq 0x50(%rdi), %rdx +;; 25: movl $0xffff0000, %eax +;; 2a: movb %cl, (%rdx, %rax) +;; 2d: movq %rbp, %rsp +;; 30: popq %rbp +;; 31: retq +;; 32: ud2 +;; 34: ud2 +;; 36: addb %al, (%rax) +;; 38: addl %eax, (%rax) ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq %rdx, %r11 -;; addq %r11, const(0), %r11 -;; jb #trap=heap_oob -;; movq 88(%rdi), %rsi -;; cmpq %rsi, %r11 -;; jnbe label3; j label1 -;; block1: -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %eax -;; movzbq 0(%rdx,%rax,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 40: pushq %rbp +;; 41: movq %rsp, %rbp +;; 44: movq %rdx, %r11 +;; 47: addq 0x2a(%rip), %r11 +;; 4e: jb 0x76 +;; 54: movq 0x58(%rdi), %rsi +;; 58: cmpq %rsi, %r11 +;; 5b: ja 0x74 +;; 61: addq 0x50(%rdi), %rdx +;; 65: movl $0xffff0000, %eax +;; 6a: movzbq (%rdx, %rax), %rax +;; 6f: movq %rbp, %rsp +;; 72: popq %rbp +;; 73: retq +;; 74: ud2 +;; 76: ud2 +;; 78: addl %eax, (%rax) diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat index f1683ee01ffb..86951151954d 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat @@ -18,42 +18,32 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; subq %r11, $4, %r11 -;; xorq %rsi, %rsi, %rsi -;; movq %rdx, %rax -;; addq %rax, 80(%rdi), %rax -;; cmpq %r11, %rdx -;; cmovnbeq %rsi, %rax, %rax -;; movl %ecx, 0(%rax) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r11 +;; 8: subq $4, %r11 +;; c: xorq %rsi, %rsi +;; f: movq %rdx, %rax +;; 12: addq 0x50(%rdi), %rax +;; 16: cmpq %r11, %rdx +;; 19: cmovaq %rsi, %rax +;; 1d: movl %ecx, (%rax) +;; 1f: movq %rbp, %rsp +;; 22: popq %rbp +;; 23: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; subq %r11, $4, %r11 -;; xorq %rsi, %rsi, %rsi -;; movq %rdx, %rax -;; addq %rax, 80(%rdi), %rax -;; cmpq %r11, %rdx -;; cmovnbeq %rsi, %rax, %rax -;; movl 0(%rax), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r11 +;; 38: subq $4, %r11 +;; 3c: xorq %rsi, %rsi +;; 3f: movq %rdx, %rax +;; 42: addq 0x50(%rdi), %rax +;; 46: cmpq %r11, %rdx +;; 49: cmovaq %rsi, %rax +;; 4d: movl (%rax), %eax +;; 4f: movq %rbp, %rsp +;; 52: popq %rbp +;; 53: retq diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat index daaeb3587580..4d4d8ed46f50 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,42 +18,32 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movq 80(%rdi), %rax -;; subq %r11, $4100, %r11 -;; xorq %rdi, %rdi, %rdi -;; lea 4096(%rax,%rdx,1), %rsi -;; cmpq %r11, %rdx -;; cmovnbeq %rdi, %rsi, %rsi -;; movl %ecx, 0(%rsi) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r11 +;; 8: movq 0x50(%rdi), %rax +;; c: subq $0x1004, %r11 +;; 13: xorq %rdi, %rdi +;; 16: leaq 0x1000(%rax, %rdx), %rsi +;; 1e: cmpq %r11, %rdx +;; 21: cmovaq %rdi, %rsi +;; 25: movl %ecx, (%rsi) +;; 27: movq %rbp, %rsp +;; 2a: popq %rbp +;; 2b: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movq 80(%rdi), %rax -;; subq %r11, $4100, %r11 -;; xorq %rdi, %rdi, %rdi -;; lea 4096(%rax,%rdx,1), %rsi -;; cmpq %r11, %rdx -;; cmovnbeq %rdi, %rsi, %rsi -;; movl 0(%rsi), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r11 +;; 38: movq 0x50(%rdi), %rax +;; 3c: subq $0x1004, %r11 +;; 43: xorq %rdi, %rdi +;; 46: leaq 0x1000(%rax, %rdx), %rsi +;; 4e: cmpq %r11, %rdx +;; 51: cmovaq %rdi, %rsi +;; 55: movl (%rsi), %eax +;; 57: movq %rbp, %rsp +;; 5a: popq %rbp +;; 5b: retq diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 85ffb0ed4c53..bf4114f0f1cb 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,48 +18,42 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq %rdx, %rax -;; addq %rax, const(0), %rax -;; jb #trap=heap_oob -;; movq 88(%rdi), %r9 -;; xorq %r8, %r8, %r8 -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %r10d -;; lea 0(%rdx,%r10,1), %rdx -;; cmpq %r9, %rax -;; cmovnbeq %r8, %rdx, %rdx -;; movl %ecx, 0(%rdx) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq %rdx, %rax +;; 7: addq 0x2a(%rip), %rax +;; e: jb 0x36 +;; 14: movq 0x58(%rdi), %r9 +;; 18: xorq %r8, %r8 +;; 1b: addq 0x50(%rdi), %rdx +;; 1f: movl $0xffff0000, %r10d +;; 25: addq %r10, %rdx +;; 28: cmpq %r9, %rax +;; 2b: cmovaq %r8, %rdx +;; 2f: movl %ecx, (%rdx) +;; 31: movq %rbp, %rsp +;; 34: popq %rbp +;; 35: retq +;; 36: ud2 +;; 38: addb $0, %al ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq %rdx, %rax -;; addq %rax, const(0), %rax -;; jb #trap=heap_oob -;; movq 88(%rdi), %r8 -;; xorq %rcx, %rcx, %rcx -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %r9d -;; lea 0(%rdx,%r9,1), %rdx -;; cmpq %r8, %rax -;; cmovnbeq %rcx, %rdx, %rdx -;; movl 0(%rdx), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 40: pushq %rbp +;; 41: movq %rsp, %rbp +;; 44: movq %rdx, %rax +;; 47: addq 0x2a(%rip), %rax +;; 4e: jb 0x76 +;; 54: movq 0x58(%rdi), %r8 +;; 58: xorq %rcx, %rcx +;; 5b: addq 0x50(%rdi), %rdx +;; 5f: movl $0xffff0000, %r9d +;; 65: addq %r9, %rdx +;; 68: cmpq %r8, %rax +;; 6b: cmovaq %rcx, %rdx +;; 6f: movl (%rdx), %eax +;; 71: movq %rbp, %rsp +;; 74: popq %rbp +;; 75: retq +;; 76: ud2 +;; 78: addb $0, %al diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat index aa4d6e011635..9c20deb5563f 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat @@ -18,40 +18,30 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rsi -;; xorq %r11, %r11, %r11 -;; movq %rdx, %r10 -;; addq %r10, 80(%rdi), %r10 -;; cmpq %rsi, %rdx -;; cmovnbq %r11, %r10, %r10 -;; movb %cl, 0(%r10) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %rsi +;; 8: xorq %r11, %r11 +;; b: movq %rdx, %r10 +;; e: addq 0x50(%rdi), %r10 +;; 12: cmpq %rsi, %rdx +;; 15: cmovaeq %r11, %r10 +;; 19: movb %cl, (%r10) +;; 1c: movq %rbp, %rsp +;; 1f: popq %rbp +;; 20: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rsi -;; xorq %r11, %r11, %r11 -;; movq %rdx, %r10 -;; addq %r10, 80(%rdi), %r10 -;; cmpq %rsi, %rdx -;; cmovnbq %r11, %r10, %r10 -;; movzbq 0(%r10), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %rsi +;; 38: xorq %r11, %r11 +;; 3b: movq %rdx, %r10 +;; 3e: addq 0x50(%rdi), %r10 +;; 42: cmpq %rsi, %rdx +;; 45: cmovaeq %r11, %r10 +;; 49: movzbq (%r10), %rax +;; 4d: movq %rbp, %rsp +;; 50: popq %rbp +;; 51: retq diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat index 4f61b89a6dd8..054ec18196d1 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,42 +18,32 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movq 80(%rdi), %rax -;; subq %r11, $4097, %r11 -;; xorq %rdi, %rdi, %rdi -;; lea 4096(%rax,%rdx,1), %rsi -;; cmpq %r11, %rdx -;; cmovnbeq %rdi, %rsi, %rsi -;; movb %cl, 0(%rsi) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r11 +;; 8: movq 0x50(%rdi), %rax +;; c: subq $0x1001, %r11 +;; 13: xorq %rdi, %rdi +;; 16: leaq 0x1000(%rax, %rdx), %rsi +;; 1e: cmpq %r11, %rdx +;; 21: cmovaq %rdi, %rsi +;; 25: movb %cl, (%rsi) +;; 27: movq %rbp, %rsp +;; 2a: popq %rbp +;; 2b: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r11 -;; movq 80(%rdi), %rax -;; subq %r11, $4097, %r11 -;; xorq %rdi, %rdi, %rdi -;; lea 4096(%rax,%rdx,1), %rsi -;; cmpq %r11, %rdx -;; cmovnbeq %rdi, %rsi, %rsi -;; movzbq 0(%rsi), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r11 +;; 38: movq 0x50(%rdi), %rax +;; 3c: subq $0x1001, %r11 +;; 43: xorq %rdi, %rdi +;; 46: leaq 0x1000(%rax, %rdx), %rsi +;; 4e: cmpq %r11, %rdx +;; 51: cmovaq %rdi, %rsi +;; 55: movzbq (%rsi), %rax +;; 59: movq %rbp, %rsp +;; 5c: popq %rbp +;; 5d: retq diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat index 26ffff05831a..eeb55c22e973 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,48 +18,45 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq %rdx, %rax -;; addq %rax, const(0), %rax -;; jb #trap=heap_oob -;; movq 88(%rdi), %r9 -;; xorq %r8, %r8, %r8 -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %r10d -;; lea 0(%rdx,%r10,1), %rdx -;; cmpq %r9, %rax -;; cmovnbeq %r8, %rdx, %rdx -;; movb %cl, 0(%rdx) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq %rdx, %rax +;; 7: addq 0x2a(%rip), %rax +;; e: jb 0x36 +;; 14: movq 0x58(%rdi), %r9 +;; 18: xorq %r8, %r8 +;; 1b: addq 0x50(%rdi), %rdx +;; 1f: movl $0xffff0000, %r10d +;; 25: addq %r10, %rdx +;; 28: cmpq %r9, %rax +;; 2b: cmovaq %r8, %rdx +;; 2f: movb %cl, (%rdx) +;; 31: movq %rbp, %rsp +;; 34: popq %rbp +;; 35: retq +;; 36: ud2 +;; 38: addl %eax, (%rax) ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq %rdx, %rax -;; addq %rax, const(0), %rax -;; jb #trap=heap_oob -;; movq 88(%rdi), %r8 -;; xorq %rcx, %rcx, %rcx -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %r9d -;; lea 0(%rdx,%r9,1), %rdx -;; cmpq %r8, %rax -;; cmovnbeq %rcx, %rdx, %rdx -;; movzbq 0(%rdx), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 40: pushq %rbp +;; 41: movq %rsp, %rbp +;; 44: movq %rdx, %rax +;; 47: addq 0x32(%rip), %rax +;; 4e: jb 0x78 +;; 54: movq 0x58(%rdi), %r8 +;; 58: xorq %rcx, %rcx +;; 5b: addq 0x50(%rdi), %rdx +;; 5f: movl $0xffff0000, %r9d +;; 65: addq %r9, %rdx +;; 68: cmpq %r8, %rax +;; 6b: cmovaq %rcx, %rdx +;; 6f: movzbq (%rdx), %rax +;; 73: movq %rbp, %rsp +;; 76: popq %rbp +;; 77: retq +;; 78: ud2 +;; 7a: addb %al, (%rax) +;; 7c: addb %al, (%rax) +;; 7e: addb %al, (%rax) +;; 80: addl %eax, (%rax) diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat index 1b81eff462f8..690a8dfaf873 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat @@ -18,42 +18,28 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; cmpq %r9, %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r11 -;; movl %ecx, 0(%r11,%rdx,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r9 +;; 8: cmpq %r9, %rdx +;; b: ja 0x1e +;; 11: movq 0x50(%rdi), %r11 +;; 15: movl %ecx, (%r11, %rdx) +;; 19: movq %rbp, %rsp +;; 1c: popq %rbp +;; 1d: retq +;; 1e: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; cmpq %r9, %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r11 -;; movl 0(%r11,%rdx,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: movq 0x58(%rdi), %r9 +;; 28: cmpq %r9, %rdx +;; 2b: ja 0x3e +;; 31: movq 0x50(%rdi), %r11 +;; 35: movl (%r11, %rdx), %eax +;; 39: movq %rbp, %rsp +;; 3c: popq %rbp +;; 3d: retq +;; 3e: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat index f204b6a89c9c..7c8846cfadc4 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,42 +18,28 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; cmpq %r9, %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r11 -;; movl %ecx, 4096(%r11,%rdx,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r9 +;; 8: cmpq %r9, %rdx +;; b: ja 0x22 +;; 11: movq 0x50(%rdi), %r11 +;; 15: movl %ecx, 0x1000(%r11, %rdx) +;; 1d: movq %rbp, %rsp +;; 20: popq %rbp +;; 21: retq +;; 22: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; cmpq %r9, %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r11 -;; movl 4096(%r11,%rdx,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r9 +;; 38: cmpq %r9, %rdx +;; 3b: ja 0x52 +;; 41: movq 0x50(%rdi), %r11 +;; 45: movl 0x1000(%r11, %rdx), %eax +;; 4d: movq %rbp, %rsp +;; 50: popq %rbp +;; 51: retq +;; 52: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat index 97dfe4735e45..25e0d2e91587 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,44 +18,30 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r10 -;; cmpq %r10, %rdx -;; jnbe label3; j label1 -;; block1: -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %esi -;; movl %ecx, 0(%rdx,%rsi,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r10 +;; 8: cmpq %r10, %rdx +;; b: ja 0x22 +;; 11: addq 0x50(%rdi), %rdx +;; 15: movl $0xffff0000, %esi +;; 1a: movl %ecx, (%rdx, %rsi) +;; 1d: movq %rbp, %rsp +;; 20: popq %rbp +;; 21: retq +;; 22: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r10 -;; cmpq %r10, %rdx -;; jnbe label3; j label1 -;; block1: -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %esi -;; movl 0(%rdx,%rsi,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r10 +;; 38: cmpq %r10, %rdx +;; 3b: ja 0x52 +;; 41: addq 0x50(%rdi), %rdx +;; 45: movl $0xffff0000, %esi +;; 4a: movl (%rdx, %rsi), %eax +;; 4d: movq %rbp, %rsp +;; 50: popq %rbp +;; 51: retq +;; 52: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat index 17ef249811ee..afe88b1f53c1 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat @@ -18,42 +18,28 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; cmpq %r9, %rdx -;; jnb label3; j label1 -;; block1: -;; movq 80(%rdi), %r11 -;; movb %cl, 0(%r11,%rdx,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r9 +;; 8: cmpq %r9, %rdx +;; b: jae 0x1e +;; 11: movq 0x50(%rdi), %r11 +;; 15: movb %cl, (%r11, %rdx) +;; 19: movq %rbp, %rsp +;; 1c: popq %rbp +;; 1d: retq +;; 1e: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; cmpq %r9, %rdx -;; jnb label3; j label1 -;; block1: -;; movq 80(%rdi), %r11 -;; movzbq 0(%r11,%rdx,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: movq 0x58(%rdi), %r9 +;; 28: cmpq %r9, %rdx +;; 2b: jae 0x3f +;; 31: movq 0x50(%rdi), %r11 +;; 35: movzbq (%r11, %rdx), %rax +;; 3a: movq %rbp, %rsp +;; 3d: popq %rbp +;; 3e: retq +;; 3f: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat index e3865e746845..8cff0dd4b3c1 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,42 +18,28 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; cmpq %r9, %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r11 -;; movb %cl, 4096(%r11,%rdx,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r9 +;; 8: cmpq %r9, %rdx +;; b: ja 0x22 +;; 11: movq 0x50(%rdi), %r11 +;; 15: movb %cl, 0x1000(%r11, %rdx) +;; 1d: movq %rbp, %rsp +;; 20: popq %rbp +;; 21: retq +;; 22: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r9 -;; cmpq %r9, %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r11 -;; movzbq 4096(%r11,%rdx,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r9 +;; 38: cmpq %r9, %rdx +;; 3b: ja 0x53 +;; 41: movq 0x50(%rdi), %r11 +;; 45: movzbq 0x1000(%r11, %rdx), %rax +;; 4e: movq %rbp, %rsp +;; 51: popq %rbp +;; 52: retq +;; 53: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat index 724980deede9..985ea8bb9b89 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,44 +18,30 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r10 -;; cmpq %r10, %rdx -;; jnbe label3; j label1 -;; block1: -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %esi -;; movb %cl, 0(%rdx,%rsi,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %r10 +;; 8: cmpq %r10, %rdx +;; b: ja 0x22 +;; 11: addq 0x50(%rdi), %rdx +;; 15: movl $0xffff0000, %esi +;; 1a: movb %cl, (%rdx, %rsi) +;; 1d: movq %rbp, %rsp +;; 20: popq %rbp +;; 21: retq +;; 22: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %r10 -;; cmpq %r10, %rdx -;; jnbe label3; j label1 -;; block1: -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %esi -;; movzbq 0(%rdx,%rsi,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %r10 +;; 38: cmpq %r10, %rdx +;; 3b: ja 0x54 +;; 41: addq 0x50(%rdi), %rdx +;; 45: movl $0xffff0000, %esi +;; 4a: movzbq (%rdx, %rsi), %rax +;; 4f: movq %rbp, %rsp +;; 52: popq %rbp +;; 53: retq +;; 54: ud2 diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat index c7d048f37c11..3899fcfa9995 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat @@ -18,40 +18,30 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rsi -;; xorq %r11, %r11, %r11 -;; movq %rdx, %r10 -;; addq %r10, 80(%rdi), %r10 -;; cmpq %rsi, %rdx -;; cmovnbeq %r11, %r10, %r10 -;; movl %ecx, 0(%r10) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %rsi +;; 8: xorq %r11, %r11 +;; b: movq %rdx, %r10 +;; e: addq 0x50(%rdi), %r10 +;; 12: cmpq %rsi, %rdx +;; 15: cmovaq %r11, %r10 +;; 19: movl %ecx, (%r10) +;; 1c: movq %rbp, %rsp +;; 1f: popq %rbp +;; 20: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rsi -;; xorq %r11, %r11, %r11 -;; movq %rdx, %r10 -;; addq %r10, 80(%rdi), %r10 -;; cmpq %rsi, %rdx -;; cmovnbeq %r11, %r10, %r10 -;; movl 0(%r10), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %rsi +;; 38: xorq %r11, %r11 +;; 3b: movq %rdx, %r10 +;; 3e: addq 0x50(%rdi), %r10 +;; 42: cmpq %rsi, %rdx +;; 45: cmovaq %r11, %r10 +;; 49: movl (%r10), %eax +;; 4c: movq %rbp, %rsp +;; 4f: popq %rbp +;; 50: retq diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat index ccdfa637c9af..1960a0bd90d7 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,40 +18,30 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rsi -;; movq 80(%rdi), %rax -;; xorq %rdi, %rdi, %rdi -;; lea 4096(%rax,%rdx,1), %r11 -;; cmpq %rsi, %rdx -;; cmovnbeq %rdi, %r11, %r11 -;; movl %ecx, 0(%r11) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %rsi +;; 8: movq 0x50(%rdi), %rax +;; c: xorq %rdi, %rdi +;; f: leaq 0x1000(%rax, %rdx), %r11 +;; 17: cmpq %rsi, %rdx +;; 1a: cmovaq %rdi, %r11 +;; 1e: movl %ecx, (%r11) +;; 21: movq %rbp, %rsp +;; 24: popq %rbp +;; 25: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rsi -;; movq 80(%rdi), %rax -;; xorq %rdi, %rdi, %rdi -;; lea 4096(%rax,%rdx,1), %r11 -;; cmpq %rsi, %rdx -;; cmovnbeq %rdi, %r11, %r11 -;; movl 0(%r11), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %rsi +;; 38: movq 0x50(%rdi), %rax +;; 3c: xorq %rdi, %rdi +;; 3f: leaq 0x1000(%rax, %rdx), %r11 +;; 47: cmpq %rsi, %rdx +;; 4a: cmovaq %rdi, %r11 +;; 4e: movl (%r11), %eax +;; 51: movq %rbp, %rsp +;; 54: popq %rbp +;; 55: retq diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 9c41039c750d..91e014e77647 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,44 +18,34 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rax -;; xorq %r8, %r8, %r8 -;; movq %rdx, %r9 -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %edi -;; lea 0(%r9,%rdi,1), %rsi -;; cmpq %rax, %rdx -;; cmovnbeq %r8, %rsi, %rsi -;; movl %ecx, 0(%rsi) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %rax +;; 8: xorq %r8, %r8 +;; b: movq %rdx, %r9 +;; e: addq 0x50(%rdi), %r9 +;; 12: movl $0xffff0000, %edi +;; 17: leaq (%r9, %rdi), %rsi +;; 1b: cmpq %rax, %rdx +;; 1e: cmovaq %r8, %rsi +;; 22: movl %ecx, (%rsi) +;; 24: movq %rbp, %rsp +;; 27: popq %rbp +;; 28: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rax -;; xorq %rcx, %rcx, %rcx -;; movq %rdx, %r8 -;; addq %r8, 80(%rdi), %r8 -;; movl $-65536, %edi -;; lea 0(%r8,%rdi,1), %rsi -;; cmpq %rax, %rdx -;; cmovnbeq %rcx, %rsi, %rsi -;; movl 0(%rsi), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %rax +;; 38: xorq %rcx, %rcx +;; 3b: movq %rdx, %r8 +;; 3e: addq 0x50(%rdi), %r8 +;; 42: movl $0xffff0000, %edi +;; 47: leaq (%r8, %rdi), %rsi +;; 4b: cmpq %rax, %rdx +;; 4e: cmovaq %rcx, %rsi +;; 52: movl (%rsi), %eax +;; 54: movq %rbp, %rsp +;; 57: popq %rbp +;; 58: retq diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat index 3f9a3cc47033..3754ec8cbbcb 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat @@ -18,40 +18,30 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rsi -;; xorq %r11, %r11, %r11 -;; movq %rdx, %r10 -;; addq %r10, 80(%rdi), %r10 -;; cmpq %rsi, %rdx -;; cmovnbq %r11, %r10, %r10 -;; movb %cl, 0(%r10) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %rsi +;; 8: xorq %r11, %r11 +;; b: movq %rdx, %r10 +;; e: addq 0x50(%rdi), %r10 +;; 12: cmpq %rsi, %rdx +;; 15: cmovaeq %r11, %r10 +;; 19: movb %cl, (%r10) +;; 1c: movq %rbp, %rsp +;; 1f: popq %rbp +;; 20: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rsi -;; xorq %r11, %r11, %r11 -;; movq %rdx, %r10 -;; addq %r10, 80(%rdi), %r10 -;; cmpq %rsi, %rdx -;; cmovnbq %r11, %r10, %r10 -;; movzbq 0(%r10), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %rsi +;; 38: xorq %r11, %r11 +;; 3b: movq %rdx, %r10 +;; 3e: addq 0x50(%rdi), %r10 +;; 42: cmpq %rsi, %rdx +;; 45: cmovaeq %r11, %r10 +;; 49: movzbq (%r10), %rax +;; 4d: movq %rbp, %rsp +;; 50: popq %rbp +;; 51: retq diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat index 2272cec0acea..2be563a0895b 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,40 +18,30 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rsi -;; movq 80(%rdi), %rax -;; xorq %rdi, %rdi, %rdi -;; lea 4096(%rax,%rdx,1), %r11 -;; cmpq %rsi, %rdx -;; cmovnbeq %rdi, %r11, %r11 -;; movb %cl, 0(%r11) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %rsi +;; 8: movq 0x50(%rdi), %rax +;; c: xorq %rdi, %rdi +;; f: leaq 0x1000(%rax, %rdx), %r11 +;; 17: cmpq %rsi, %rdx +;; 1a: cmovaq %rdi, %r11 +;; 1e: movb %cl, (%r11) +;; 21: movq %rbp, %rsp +;; 24: popq %rbp +;; 25: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rsi -;; movq 80(%rdi), %rax -;; xorq %rdi, %rdi, %rdi -;; lea 4096(%rax,%rdx,1), %r11 -;; cmpq %rsi, %rdx -;; cmovnbeq %rdi, %r11, %r11 -;; movzbq 0(%r11), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %rsi +;; 38: movq 0x50(%rdi), %rax +;; 3c: xorq %rdi, %rdi +;; 3f: leaq 0x1000(%rax, %rdx), %r11 +;; 47: cmpq %rsi, %rdx +;; 4a: cmovaq %rdi, %r11 +;; 4e: movzbq (%r11), %rax +;; 52: movq %rbp, %rsp +;; 55: popq %rbp +;; 56: retq diff --git a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat index cc139ff670a5..e82f01423c52 100644 --- a/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,44 +18,34 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rax -;; xorq %r8, %r8, %r8 -;; movq %rdx, %r9 -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %edi -;; lea 0(%r9,%rdi,1), %rsi -;; cmpq %rax, %rdx -;; cmovnbeq %r8, %rsi, %rsi -;; movb %cl, 0(%rsi) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x58(%rdi), %rax +;; 8: xorq %r8, %r8 +;; b: movq %rdx, %r9 +;; e: addq 0x50(%rdi), %r9 +;; 12: movl $0xffff0000, %edi +;; 17: leaq (%r9, %rdi), %rsi +;; 1b: cmpq %rax, %rdx +;; 1e: cmovaq %r8, %rsi +;; 22: movb %cl, (%rsi) +;; 24: movq %rbp, %rsp +;; 27: popq %rbp +;; 28: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 88(%rdi), %rax -;; xorq %rcx, %rcx, %rcx -;; movq %rdx, %r8 -;; addq %r8, 80(%rdi), %r8 -;; movl $-65536, %edi -;; lea 0(%r8,%rdi,1), %rsi -;; cmpq %rax, %rdx -;; cmovnbeq %rcx, %rsi, %rsi -;; movzbq 0(%rsi), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movq 0x58(%rdi), %rax +;; 38: xorq %rcx, %rcx +;; 3b: movq %rdx, %r8 +;; 3e: addq 0x50(%rdi), %r8 +;; 42: movl $0xffff0000, %edi +;; 47: leaq (%r8, %rdi), %rsi +;; 4b: cmpq %rax, %rdx +;; 4e: cmovaq %rcx, %rsi +;; 52: movzbq (%rsi), %rax +;; 56: movq %rbp, %rsp +;; 59: popq %rbp +;; 5a: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat index a059d666e70a..aee0e106404f 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0_offset.wat @@ -18,42 +18,34 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; cmpq const(0), %r9 -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r11 -;; movl %ecx, 0(%r11,%r9,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movl %edx, %r9d +;; 7: cmpq 0x1a(%rip), %r9 +;; e: ja 0x21 +;; 14: movq 0x50(%rdi), %r11 +;; 18: movl %ecx, (%r11, %r9) +;; 1c: movq %rbp, %rsp +;; 1f: popq %rbp +;; 20: retq +;; 21: ud2 +;; 23: addb %al, (%rax) +;; 25: addb %al, (%rax) +;; 27: addb %bh, %ah ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; cmpq const(0), %r9 -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r11 -;; movl 0(%r11,%r9,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movl %edx, %r9d +;; 37: cmpq 0x1a(%rip), %r9 +;; 3e: ja 0x51 +;; 44: movq 0x50(%rdi), %r11 +;; 48: movl (%r11, %r9), %eax +;; 4c: movq %rbp, %rsp +;; 4f: popq %rbp +;; 50: retq +;; 51: ud2 +;; 53: addb %al, (%rax) +;; 55: addb %al, (%rax) +;; 57: addb %bh, %ah diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat index 1906516b2cbe..433db88e6ee4 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,42 +18,32 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; cmpq const(0), %r9 -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r11 -;; movl %ecx, 4096(%r11,%r9,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movl %edx, %r9d +;; 7: cmpq 0x1a(%rip), %r9 +;; e: ja 0x25 +;; 14: movq 0x50(%rdi), %r11 +;; 18: movl %ecx, 0x1000(%r11, %r9) +;; 20: movq %rbp, %rsp +;; 23: popq %rbp +;; 24: retq +;; 25: ud2 +;; 27: addb %bh, %ah +;; 29: outl %eax, %dx ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; cmpq const(0), %r9 -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r11 -;; movl 4096(%r11,%r9,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movl %edx, %r9d +;; 37: cmpq 0x1a(%rip), %r9 +;; 3e: ja 0x55 +;; 44: movq 0x50(%rdi), %r11 +;; 48: movl 0x1000(%r11, %r9), %eax +;; 50: movq %rbp, %rsp +;; 53: popq %rbp +;; 54: retq +;; 55: ud2 +;; 57: addb %bh, %ah +;; 59: outl %eax, %dx diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat index ce4c21890564..79dd86551e51 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,44 +18,30 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; cmpq $65532, %r9 -;; jnbe label3; j label1 -;; block1: -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %esi -;; movl %ecx, 0(%r9,%rsi,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movl %edx, %r9d +;; 7: cmpq $0xfffc, %r9 +;; e: ja 0x26 +;; 14: addq 0x50(%rdi), %r9 +;; 18: movl $0xffff0000, %esi +;; 1d: movl %ecx, (%r9, %rsi) +;; 21: movq %rbp, %rsp +;; 24: popq %rbp +;; 25: retq +;; 26: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; cmpq $65532, %r9 -;; jnbe label3; j label1 -;; block1: -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %esi -;; movl 0(%r9,%rsi,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movl %edx, %r9d +;; 37: cmpq $0xfffc, %r9 +;; 3e: ja 0x56 +;; 44: addq 0x50(%rdi), %r9 +;; 48: movl $0xffff0000, %esi +;; 4d: movl (%r9, %rsi), %eax +;; 51: movq %rbp, %rsp +;; 54: popq %rbp +;; 55: retq +;; 56: ud2 diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat index 1e6d0489cf8a..a06ab1b29629 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0_offset.wat @@ -18,32 +18,22 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movb %cl, 0(%r9,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x50(%rdi), %r9 +;; 8: movl %edx, %r10d +;; b: movb %cl, (%r9, %r10) +;; f: movq %rbp, %rsp +;; 12: popq %rbp +;; 13: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movzbq 0(%r9,%r10,1), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: movq 0x50(%rdi), %r9 +;; 28: movl %edx, %r10d +;; 2b: movzbq (%r9, %r10), %rax +;; 30: movq %rbp, %rsp +;; 33: popq %rbp +;; 34: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat index e7a0428b940e..c6294ebefeda 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,42 +18,30 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; cmpq const(0), %r9 -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r11 -;; movb %cl, 4096(%r11,%r9,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movl %edx, %r9d +;; 7: cmpq 0x1a(%rip), %r9 +;; e: ja 0x25 +;; 14: movq 0x50(%rdi), %r11 +;; 18: movb %cl, 0x1000(%r11, %r9) +;; 20: movq %rbp, %rsp +;; 23: popq %rbp +;; 24: retq +;; 25: ud2 +;; 27: addb %bh, %bh +;; 29: outl %eax, %dx ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; cmpq const(0), %r9 -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r11 -;; movzbq 4096(%r11,%r9,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movl %edx, %r9d +;; 37: cmpq 0x1a(%rip), %r9 +;; 3e: ja 0x56 +;; 44: movq 0x50(%rdi), %r11 +;; 48: movzbq 0x1000(%r11, %r9), %rax +;; 51: movq %rbp, %rsp +;; 54: popq %rbp +;; 55: retq +;; 56: ud2 diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat index 861d6bd3bd20..3244fd9e666d 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,44 +18,30 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; cmpq $65535, %r9 -;; jnbe label3; j label1 -;; block1: -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %esi -;; movb %cl, 0(%r9,%rsi,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movl %edx, %r9d +;; 7: cmpq $0xffff, %r9 +;; e: ja 0x26 +;; 14: addq 0x50(%rdi), %r9 +;; 18: movl $0xffff0000, %esi +;; 1d: movb %cl, (%r9, %rsi) +;; 21: movq %rbp, %rsp +;; 24: popq %rbp +;; 25: retq +;; 26: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; cmpq $65535, %r9 -;; jnbe label3; j label1 -;; block1: -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %esi -;; movzbq 0(%r9,%rsi,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movl %edx, %r9d +;; 37: cmpq $0xffff, %r9 +;; 3e: ja 0x57 +;; 44: addq 0x50(%rdi), %r9 +;; 48: movl $0xffff0000, %esi +;; 4d: movzbq (%r9, %rsi), %rax +;; 52: movq %rbp, %rsp +;; 55: popq %rbp +;; 56: retq +;; 57: ud2 diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat index 1526a224eafc..d32d90a8013d 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0_offset.wat @@ -18,40 +18,36 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %esi -;; xorq %r11, %r11, %r11 -;; movq %rsi, %r10 -;; addq %r10, 80(%rdi), %r10 -;; cmpq const(0), %rsi -;; cmovnbeq %r11, %r10, %r10 -;; movl %ecx, 0(%r10) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movl %edx, %esi +;; 6: xorq %r11, %r11 +;; 9: movq %rsi, %r10 +;; c: addq 0x50(%rdi), %r10 +;; 10: cmpq 0x11(%rip), %rsi +;; 17: cmovaq %r11, %r10 +;; 1b: movl %ecx, (%r10) +;; 1e: movq %rbp, %rsp +;; 21: popq %rbp +;; 22: retq +;; 23: addb %al, (%rax) +;; 25: addb %al, (%rax) +;; 27: addb %bh, %ah ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %esi -;; xorq %r11, %r11, %r11 -;; movq %rsi, %r10 -;; addq %r10, 80(%rdi), %r10 -;; cmpq const(0), %rsi -;; cmovnbeq %r11, %r10, %r10 -;; movl 0(%r10), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movl %edx, %esi +;; 36: xorq %r11, %r11 +;; 39: movq %rsi, %r10 +;; 3c: addq 0x50(%rdi), %r10 +;; 40: cmpq 0x11(%rip), %rsi +;; 47: cmovaq %r11, %r10 +;; 4b: movl (%r10), %eax +;; 4e: movq %rbp, %rsp +;; 51: popq %rbp +;; 52: retq +;; 53: addb %al, (%rax) +;; 55: addb %al, (%rax) +;; 57: addb %bh, %ah diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat index 596317512d89..cdb2cc5d867b 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,43 +18,40 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq %rdi, %rax -;; movl %edx, %edi -;; xorq %rsi, %rsi, %rsi -;; movq %rax, %rdx -;; movq 80(%rdx), %rax -;; lea 4096(%rax,%rdi,1), %r11 -;; cmpq const(0), %rdi -;; cmovnbeq %rsi, %r11, %r11 -;; movl %ecx, 0(%r11) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq %rdi, %rax +;; 7: movl %edx, %edi +;; 9: xorq %rsi, %rsi +;; c: movq %rax, %rdx +;; f: movq 0x50(%rdx), %rax +;; 13: leaq 0x1000(%rax, %rdi), %r11 +;; 1b: cmpq 0xe(%rip), %rdi +;; 22: cmovaq %rsi, %r11 +;; 26: movl %ecx, (%r11) +;; 29: movq %rbp, %rsp +;; 2c: popq %rbp +;; 2d: retq +;; 2e: addb %al, (%rax) +;; 30: cld +;; 31: outl %eax, %dx ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq %rdi, %rcx -;; movl %edx, %edi -;; xorq %rsi, %rsi, %rsi -;; movq 80(%rcx), %rax -;; lea 4096(%rax,%rdi,1), %r11 -;; cmpq const(0), %rdi -;; cmovnbeq %rsi, %r11, %r11 -;; movl 0(%r11), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 40: pushq %rbp +;; 41: movq %rsp, %rbp +;; 44: movq %rdi, %rcx +;; 47: movl %edx, %edi +;; 49: xorq %rsi, %rsi +;; 4c: movq 0x50(%rcx), %rax +;; 50: leaq 0x1000(%rax, %rdi), %r11 +;; 58: cmpq 0x11(%rip), %rdi +;; 5f: cmovaq %rsi, %r11 +;; 63: movl (%r11), %eax +;; 66: movq %rbp, %rsp +;; 69: popq %rbp +;; 6a: retq +;; 6b: addb %al, (%rax) +;; 6d: addb %al, (%rax) +;; 6f: addb %bh, %ah +;; 71: outl %eax, %dx diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat index dc417078d477..9b09ef19e1d5 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,44 +18,34 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %eax -;; xorq %rdx, %rdx, %rdx -;; movq %rax, %r8 -;; addq %r8, 80(%rdi), %r8 -;; movl $-65536, %edi -;; lea 0(%r8,%rdi,1), %rsi -;; cmpq $65532, %rax -;; cmovnbeq %rdx, %rsi, %rsi -;; movl %ecx, 0(%rsi) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movl %edx, %eax +;; 6: xorq %rdx, %rdx +;; 9: movq %rax, %r8 +;; c: addq 0x50(%rdi), %r8 +;; 10: movl $0xffff0000, %edi +;; 15: leaq (%r8, %rdi), %rsi +;; 19: cmpq $0xfffc, %rax +;; 20: cmovaq %rdx, %rsi +;; 24: movl %ecx, (%rsi) +;; 26: movq %rbp, %rsp +;; 29: popq %rbp +;; 2a: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %eax -;; xorq %rcx, %rcx, %rcx -;; movq %rax, %rdx -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %edi -;; lea 0(%rdx,%rdi,1), %rsi -;; cmpq $65532, %rax -;; cmovnbeq %rcx, %rsi, %rsi -;; movl 0(%rsi), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movl %edx, %eax +;; 36: xorq %rcx, %rcx +;; 39: movq %rax, %rdx +;; 3c: addq 0x50(%rdi), %rdx +;; 40: movl $0xffff0000, %edi +;; 45: leaq (%rdx, %rdi), %rsi +;; 49: cmpq $0xfffc, %rax +;; 50: cmovaq %rcx, %rsi +;; 54: movl (%rsi), %eax +;; 56: movq %rbp, %rsp +;; 59: popq %rbp +;; 5a: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat index b4042f64c15b..59f9d2d679bd 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0_offset.wat @@ -18,32 +18,22 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movb %cl, 0(%r9,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x50(%rdi), %r9 +;; 8: movl %edx, %r10d +;; b: movb %cl, (%r9, %r10) +;; f: movq %rbp, %rsp +;; 12: popq %rbp +;; 13: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movzbq 0(%r9,%r10,1), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: movq 0x50(%rdi), %r9 +;; 28: movl %edx, %r10d +;; 2b: movzbq (%r9, %r10), %rax +;; 30: movq %rbp, %rsp +;; 33: popq %rbp +;; 34: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat index 4b6209b77565..ce11613c594c 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,43 +18,36 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq %rdi, %rax -;; movl %edx, %edi -;; xorq %rsi, %rsi, %rsi -;; movq %rax, %rdx -;; movq 80(%rdx), %rax -;; lea 4096(%rax,%rdi,1), %r11 -;; cmpq const(0), %rdi -;; cmovnbeq %rsi, %r11, %r11 -;; movb %cl, 0(%r11) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq %rdi, %rax +;; 7: movl %edx, %edi +;; 9: xorq %rsi, %rsi +;; c: movq %rax, %rdx +;; f: movq 0x50(%rdx), %rax +;; 13: leaq 0x1000(%rax, %rdi), %r11 +;; 1b: cmpq 0xe(%rip), %rdi +;; 22: cmovaq %rsi, %r11 +;; 26: movb %cl, (%r11) +;; 29: movq %rbp, %rsp +;; 2c: popq %rbp +;; 2d: retq +;; 2e: addb %al, (%rax) ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq %rdi, %rcx -;; movl %edx, %edi -;; xorq %rsi, %rsi, %rsi -;; movq 80(%rcx), %rax -;; lea 4096(%rax,%rdi,1), %r11 -;; cmpq const(0), %rdi -;; cmovnbeq %rsi, %r11, %r11 -;; movzbq 0(%r11), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 40: pushq %rbp +;; 41: movq %rsp, %rbp +;; 44: movq %rdi, %rcx +;; 47: movl %edx, %edi +;; 49: xorq %rsi, %rsi +;; 4c: movq 0x50(%rcx), %rax +;; 50: leaq 0x1000(%rax, %rdi), %r11 +;; 58: cmpq 0x11(%rip), %rdi +;; 5f: cmovaq %rsi, %r11 +;; 63: movzbq (%r11), %rax +;; 67: movq %rbp, %rsp +;; 6a: popq %rbp +;; 6b: retq +;; 6c: addb %al, (%rax) +;; 6e: addb %al, (%rax) diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat index 08285a6d8adc..44f22a9c353e 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,44 +18,34 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %eax -;; xorq %rdx, %rdx, %rdx -;; movq %rax, %r8 -;; addq %r8, 80(%rdi), %r8 -;; movl $-65536, %edi -;; lea 0(%r8,%rdi,1), %rsi -;; cmpq $65535, %rax -;; cmovnbeq %rdx, %rsi, %rsi -;; movb %cl, 0(%rsi) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movl %edx, %eax +;; 6: xorq %rdx, %rdx +;; 9: movq %rax, %r8 +;; c: addq 0x50(%rdi), %r8 +;; 10: movl $0xffff0000, %edi +;; 15: leaq (%r8, %rdi), %rsi +;; 19: cmpq $0xffff, %rax +;; 20: cmovaq %rdx, %rsi +;; 24: movb %cl, (%rsi) +;; 26: movq %rbp, %rsp +;; 29: popq %rbp +;; 2a: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %eax -;; xorq %rcx, %rcx, %rcx -;; movq %rax, %rdx -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %edi -;; lea 0(%rdx,%rdi,1), %rsi -;; cmpq $65535, %rax -;; cmovnbeq %rcx, %rsi, %rsi -;; movzbq 0(%rsi), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movl %edx, %eax +;; 36: xorq %rcx, %rcx +;; 39: movq %rax, %rdx +;; 3c: addq 0x50(%rdi), %rdx +;; 40: movl $0xffff0000, %edi +;; 45: leaq (%rdx, %rdi), %rsi +;; 49: cmpq $0xffff, %rax +;; 50: cmovaq %rcx, %rsi +;; 54: movzbq (%rsi), %rax +;; 58: movq %rbp, %rsp +;; 5b: popq %rbp +;; 5c: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat index 72a4c0c5dcb4..276b07077083 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat @@ -18,32 +18,22 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movl %ecx, 0(%r9,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x50(%rdi), %r9 +;; 8: movl %edx, %r10d +;; b: movl %ecx, (%r9, %r10) +;; f: movq %rbp, %rsp +;; 12: popq %rbp +;; 13: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movl 0(%r9,%r10,1), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: movq 0x50(%rdi), %r9 +;; 28: movl %edx, %r10d +;; 2b: movl (%r9, %r10), %eax +;; 2f: movq %rbp, %rsp +;; 32: popq %rbp +;; 33: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat index b1c7f6771ac4..676f057ad4d5 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,32 +18,22 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movl %ecx, 4096(%r9,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x50(%rdi), %r9 +;; 8: movl %edx, %r10d +;; b: movl %ecx, 0x1000(%r9, %r10) +;; 13: movq %rbp, %rsp +;; 16: popq %rbp +;; 17: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movl 4096(%r9,%r10,1), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: movq 0x50(%rdi), %r9 +;; 28: movl %edx, %r10d +;; 2b: movl 0x1000(%r9, %r10), %eax +;; 33: movq %rbp, %rsp +;; 36: popq %rbp +;; 37: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat index 04ce50e1c1bb..c5b9944ccf76 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,34 +18,24 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %r10d -;; movl %ecx, 0(%r9,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movl %edx, %r9d +;; 7: addq 0x50(%rdi), %r9 +;; b: movl $0xffff0000, %r10d +;; 11: movl %ecx, (%r9, %r10) +;; 15: movq %rbp, %rsp +;; 18: popq %rbp +;; 19: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %r10d -;; movl 0(%r9,%r10,1), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: movl %edx, %r9d +;; 27: addq 0x50(%rdi), %r9 +;; 2b: movl $0xffff0000, %r10d +;; 31: movl (%r9, %r10), %eax +;; 35: movq %rbp, %rsp +;; 38: popq %rbp +;; 39: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat index 76c351fbb544..cf26f5d741c7 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat @@ -18,32 +18,22 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movb %cl, 0(%r9,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x50(%rdi), %r9 +;; 8: movl %edx, %r10d +;; b: movb %cl, (%r9, %r10) +;; f: movq %rbp, %rsp +;; 12: popq %rbp +;; 13: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movzbq 0(%r9,%r10,1), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: movq 0x50(%rdi), %r9 +;; 28: movl %edx, %r10d +;; 2b: movzbq (%r9, %r10), %rax +;; 30: movq %rbp, %rsp +;; 33: popq %rbp +;; 34: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat index d59381d28aed..0256751f1b8a 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,32 +18,22 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movb %cl, 4096(%r9,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x50(%rdi), %r9 +;; 8: movl %edx, %r10d +;; b: movb %cl, 0x1000(%r9, %r10) +;; 13: movq %rbp, %rsp +;; 16: popq %rbp +;; 17: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movzbq 4096(%r9,%r10,1), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: movq 0x50(%rdi), %r9 +;; 28: movl %edx, %r10d +;; 2b: movzbq 0x1000(%r9, %r10), %rax +;; 34: movq %rbp, %rsp +;; 37: popq %rbp +;; 38: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat index 6f634a5c8125..2d03344fa1c8 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,34 +18,24 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %r10d -;; movb %cl, 0(%r9,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movl %edx, %r9d +;; 7: addq 0x50(%rdi), %r9 +;; b: movl $0xffff0000, %r10d +;; 11: movb %cl, (%r9, %r10) +;; 15: movq %rbp, %rsp +;; 18: popq %rbp +;; 19: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %r10d -;; movzbq 0(%r9,%r10,1), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: movl %edx, %r9d +;; 27: addq 0x50(%rdi), %r9 +;; 2b: movl $0xffff0000, %r10d +;; 31: movzbq (%r9, %r10), %rax +;; 36: movq %rbp, %rsp +;; 39: popq %rbp +;; 3a: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat index 4440da775707..e11aed6f9b0d 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat @@ -18,32 +18,22 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movl %ecx, 0(%r9,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x50(%rdi), %r9 +;; 8: movl %edx, %r10d +;; b: movl %ecx, (%r9, %r10) +;; f: movq %rbp, %rsp +;; 12: popq %rbp +;; 13: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movl 0(%r9,%r10,1), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: movq 0x50(%rdi), %r9 +;; 28: movl %edx, %r10d +;; 2b: movl (%r9, %r10), %eax +;; 2f: movq %rbp, %rsp +;; 32: popq %rbp +;; 33: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat index 37fa5be04c64..9e7431336c95 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,32 +18,22 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movl %ecx, 4096(%r9,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x50(%rdi), %r9 +;; 8: movl %edx, %r10d +;; b: movl %ecx, 0x1000(%r9, %r10) +;; 13: movq %rbp, %rsp +;; 16: popq %rbp +;; 17: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movl 4096(%r9,%r10,1), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: movq 0x50(%rdi), %r9 +;; 28: movl %edx, %r10d +;; 2b: movl 0x1000(%r9, %r10), %eax +;; 33: movq %rbp, %rsp +;; 36: popq %rbp +;; 37: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 7a3794748bf3..9552176d14ab 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,34 +18,24 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %r10d -;; movl %ecx, 0(%r9,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movl %edx, %r9d +;; 7: addq 0x50(%rdi), %r9 +;; b: movl $0xffff0000, %r10d +;; 11: movl %ecx, (%r9, %r10) +;; 15: movq %rbp, %rsp +;; 18: popq %rbp +;; 19: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %r10d -;; movl 0(%r9,%r10,1), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: movl %edx, %r9d +;; 27: addq 0x50(%rdi), %r9 +;; 2b: movl $0xffff0000, %r10d +;; 31: movl (%r9, %r10), %eax +;; 35: movq %rbp, %rsp +;; 38: popq %rbp +;; 39: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat index 194af647de20..241f2a097c33 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat @@ -18,32 +18,22 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movb %cl, 0(%r9,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x50(%rdi), %r9 +;; 8: movl %edx, %r10d +;; b: movb %cl, (%r9, %r10) +;; f: movq %rbp, %rsp +;; 12: popq %rbp +;; 13: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movzbq 0(%r9,%r10,1), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: movq 0x50(%rdi), %r9 +;; 28: movl %edx, %r10d +;; 2b: movzbq (%r9, %r10), %rax +;; 30: movq %rbp, %rsp +;; 33: popq %rbp +;; 34: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat index 8334cb81b082..5bf4eb3a509e 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,32 +18,22 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movb %cl, 4096(%r9,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x50(%rdi), %r9 +;; 8: movl %edx, %r10d +;; b: movb %cl, 0x1000(%r9, %r10) +;; 13: movq %rbp, %rsp +;; 16: popq %rbp +;; 17: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movzbq 4096(%r9,%r10,1), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: movq 0x50(%rdi), %r9 +;; 28: movl %edx, %r10d +;; 2b: movzbq 0x1000(%r9, %r10), %rax +;; 34: movq %rbp, %rsp +;; 37: popq %rbp +;; 38: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat index 96722a6a730e..c54461986397 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,34 +18,24 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %r10d -;; movb %cl, 0(%r9,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movl %edx, %r9d +;; 7: addq 0x50(%rdi), %r9 +;; b: movl $0xffff0000, %r10d +;; 11: movb %cl, (%r9, %r10) +;; 15: movq %rbp, %rsp +;; 18: popq %rbp +;; 19: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; addq %r9, 80(%rdi), %r9 -;; movl $-65536, %r10d -;; movzbq 0(%r9,%r10,1), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: movl %edx, %r9d +;; 27: addq 0x50(%rdi), %r9 +;; 2b: movl $0xffff0000, %r10d +;; 31: movzbq (%r9, %r10), %rax +;; 36: movq %rbp, %rsp +;; 39: popq %rbp +;; 3a: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat index 318f6525fb94..80855b369512 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0_offset.wat @@ -18,40 +18,28 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq const(0), %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r10 -;; movl %ecx, 0(%r10,%rdx,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: cmpq 0x15(%rip), %rdx +;; b: ja 0x1e +;; 11: movq 0x50(%rdi), %r10 +;; 15: movl %ecx, (%r10, %rdx) +;; 19: movq %rbp, %rsp +;; 1c: popq %rbp +;; 1d: retq +;; 1e: ud2 +;; 20: cld ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq const(0), %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r10 -;; movl 0(%r10,%rdx,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: cmpq 0x15(%rip), %rdx +;; 3b: ja 0x4e +;; 41: movq 0x50(%rdi), %r10 +;; 45: movl (%r10, %rdx), %eax +;; 49: movq %rbp, %rsp +;; 4c: popq %rbp +;; 4d: retq +;; 4e: ud2 +;; 50: cld diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat index 87006921c589..f7fb5b1d8f08 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,40 +18,34 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq const(0), %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r10 -;; movl %ecx, 4096(%r10,%rdx,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: cmpq 0x1d(%rip), %rdx +;; b: ja 0x22 +;; 11: movq 0x50(%rdi), %r10 +;; 15: movl %ecx, 0x1000(%r10, %rdx) +;; 1d: movq %rbp, %rsp +;; 20: popq %rbp +;; 21: retq +;; 22: ud2 +;; 24: addb %al, (%rax) +;; 26: addb %al, (%rax) +;; 28: cld +;; 29: outl %eax, %dx ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq const(0), %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r10 -;; movl 4096(%r10,%rdx,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: cmpq 0x1d(%rip), %rdx +;; 3b: ja 0x52 +;; 41: movq 0x50(%rdi), %r10 +;; 45: movl 0x1000(%r10, %rdx), %eax +;; 4d: movq %rbp, %rsp +;; 50: popq %rbp +;; 51: retq +;; 52: ud2 +;; 54: addb %al, (%rax) +;; 56: addb %al, (%rax) +;; 58: cld +;; 59: outl %eax, %dx diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat index c1841adabee7..125a67684ea9 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,42 +18,28 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq $65532, %rdx -;; jnbe label3; j label1 -;; block1: -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %r11d -;; movl %ecx, 0(%rdx,%r11,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: cmpq $0xfffc, %rdx +;; b: ja 0x24 +;; 11: addq 0x50(%rdi), %rdx +;; 15: movl $0xffff0000, %r11d +;; 1b: movl %ecx, (%rdx, %r11) +;; 1f: movq %rbp, %rsp +;; 22: popq %rbp +;; 23: retq +;; 24: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq $65532, %rdx -;; jnbe label3; j label1 -;; block1: -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %r11d -;; movl 0(%rdx,%r11,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: cmpq $0xfffc, %rdx +;; 3b: ja 0x54 +;; 41: addq 0x50(%rdi), %rdx +;; 45: movl $0xffff0000, %r11d +;; 4b: movl (%rdx, %r11), %eax +;; 4f: movq %rbp, %rsp +;; 52: popq %rbp +;; 53: retq +;; 54: ud2 diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat index 6b0ab39911ad..778d50213a8b 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0_offset.wat @@ -18,40 +18,30 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq const(0), %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r10 -;; movb %cl, 0(%r10,%rdx,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: cmpq 0x15(%rip), %rdx +;; b: ja 0x1e +;; 11: movq 0x50(%rdi), %r10 +;; 15: movb %cl, (%r10, %rdx) +;; 19: movq %rbp, %rsp +;; 1c: popq %rbp +;; 1d: retq +;; 1e: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq const(0), %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r10 -;; movzbq 0(%r10,%rdx,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: cmpq 0x1d(%rip), %rdx +;; 3b: ja 0x4f +;; 41: movq 0x50(%rdi), %r10 +;; 45: movzbq (%r10, %rdx), %rax +;; 4a: movq %rbp, %rsp +;; 4d: popq %rbp +;; 4e: retq +;; 4f: ud2 +;; 51: addb %al, (%rax) +;; 53: addb %al, (%rax) +;; 55: addb %al, (%rax) +;; 57: addb %bh, %bh diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat index fc42c277576b..2d0d21e1e1e1 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,40 +18,31 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq const(0), %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r10 -;; movb %cl, 4096(%r10,%rdx,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: cmpq 0x1d(%rip), %rdx +;; b: ja 0x22 +;; 11: movq 0x50(%rdi), %r10 +;; 15: movb %cl, 0x1000(%r10, %rdx) +;; 1d: movq %rbp, %rsp +;; 20: popq %rbp +;; 21: retq +;; 22: ud2 +;; 24: addb %al, (%rax) +;; 26: addb %al, (%rax) ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq const(0), %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r10 -;; movzbq 4096(%r10,%rdx,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: cmpq 0x1d(%rip), %rdx +;; 3b: ja 0x53 +;; 41: movq 0x50(%rdi), %r10 +;; 45: movzbq 0x1000(%r10, %rdx), %rax +;; 4e: movq %rbp, %rsp +;; 51: popq %rbp +;; 52: retq +;; 53: ud2 +;; 55: addb %al, (%rax) +;; 57: addb %bh, %bh +;; 59: outl %eax, %dx diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat index 8221f0263543..b89224f614f6 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,42 +18,28 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq $65535, %rdx -;; jnbe label3; j label1 -;; block1: -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %r11d -;; movb %cl, 0(%rdx,%r11,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: cmpq $0xffff, %rdx +;; b: ja 0x24 +;; 11: addq 0x50(%rdi), %rdx +;; 15: movl $0xffff0000, %r11d +;; 1b: movb %cl, (%rdx, %r11) +;; 1f: movq %rbp, %rsp +;; 22: popq %rbp +;; 23: retq +;; 24: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq $65535, %rdx -;; jnbe label3; j label1 -;; block1: -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %r11d -;; movzbq 0(%rdx,%r11,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: cmpq $0xffff, %rdx +;; 3b: ja 0x55 +;; 41: addq 0x50(%rdi), %rdx +;; 45: movl $0xffff0000, %r11d +;; 4b: movzbq (%rdx, %r11), %rax +;; 50: movq %rbp, %rsp +;; 53: popq %rbp +;; 54: retq +;; 55: ud2 diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat index 2d949be2165d..a5882c09ab49 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0_offset.wat @@ -18,38 +18,36 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %r10, %r10, %r10 -;; movq %rdx, %r9 -;; addq %r9, 80(%rdi), %r9 -;; cmpq const(0), %rdx -;; cmovnbeq %r10, %r9, %r9 -;; movl %ecx, 0(%r9) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: xorq %r10, %r10 +;; 7: movq %rdx, %r9 +;; a: addq 0x50(%rdi), %r9 +;; e: cmpq 0x13(%rip), %rdx +;; 15: cmovaq %r10, %r9 +;; 19: movl %ecx, (%r9) +;; 1c: movq %rbp, %rsp +;; 1f: popq %rbp +;; 20: retq +;; 21: addb %al, (%rax) +;; 23: addb %al, (%rax) +;; 25: addb %al, (%rax) +;; 27: addb %bh, %ah ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %r10, %r10, %r10 -;; movq %rdx, %r9 -;; addq %r9, 80(%rdi), %r9 -;; cmpq const(0), %rdx -;; cmovnbeq %r10, %r9, %r9 -;; movl 0(%r9), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: xorq %r10, %r10 +;; 37: movq %rdx, %r9 +;; 3a: addq 0x50(%rdi), %r9 +;; 3e: cmpq 0x13(%rip), %rdx +;; 45: cmovaq %r10, %r9 +;; 49: movl (%r9), %eax +;; 4c: movq %rbp, %rsp +;; 4f: popq %rbp +;; 50: retq +;; 51: addb %al, (%rax) +;; 53: addb %al, (%rax) +;; 55: addb %al, (%rax) +;; 57: addb %bh, %ah diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat index f78b7ccc8c04..544b408f5b48 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,38 +18,34 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %r11, %r11, %r11 -;; movq 80(%rdi), %rsi -;; lea 4096(%rsi,%rdx,1), %r10 -;; cmpq const(0), %rdx -;; cmovnbeq %r11, %r10, %r10 -;; movl %ecx, 0(%r10) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: xorq %r11, %r11 +;; 7: movq 0x50(%rdi), %rsi +;; b: leaq 0x1000(%rsi, %rdx), %r10 +;; 13: cmpq 0xe(%rip), %rdx +;; 1a: cmovaq %r11, %r10 +;; 1e: movl %ecx, (%r10) +;; 21: movq %rbp, %rsp +;; 24: popq %rbp +;; 25: retq +;; 26: addb %al, (%rax) +;; 28: cld +;; 29: outl %eax, %dx ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %r11, %r11, %r11 -;; movq 80(%rdi), %rsi -;; lea 4096(%rsi,%rdx,1), %r10 -;; cmpq const(0), %rdx -;; cmovnbeq %r11, %r10, %r10 -;; movl 0(%r10), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: xorq %r11, %r11 +;; 37: movq 0x50(%rdi), %rsi +;; 3b: leaq 0x1000(%rsi, %rdx), %r10 +;; 43: cmpq 0xe(%rip), %rdx +;; 4a: cmovaq %r11, %r10 +;; 4e: movl (%r10), %eax +;; 51: movq %rbp, %rsp +;; 54: popq %rbp +;; 55: retq +;; 56: addb %al, (%rax) +;; 58: cld +;; 59: outl %eax, %dx diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat index ed06582b272b..59bcf7a1f005 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,42 +18,32 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %rsi, %rsi, %rsi -;; movq %rdx, %rax -;; addq %rax, 80(%rdi), %rax -;; movl $-65536, %edi -;; lea 0(%rax,%rdi,1), %r11 -;; cmpq $65532, %rdx -;; cmovnbeq %rsi, %r11, %r11 -;; movl %ecx, 0(%r11) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: xorq %rsi, %rsi +;; 7: movq %rdx, %rax +;; a: addq 0x50(%rdi), %rax +;; e: movl $0xffff0000, %edi +;; 13: leaq (%rax, %rdi), %r11 +;; 17: cmpq $0xfffc, %rdx +;; 1e: cmovaq %rsi, %r11 +;; 22: movl %ecx, (%r11) +;; 25: movq %rbp, %rsp +;; 28: popq %rbp +;; 29: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %rsi, %rsi, %rsi -;; movq %rdx, %rax -;; addq %rax, 80(%rdi), %rax -;; movl $-65536, %edi -;; lea 0(%rax,%rdi,1), %r11 -;; cmpq $65532, %rdx -;; cmovnbeq %rsi, %r11, %r11 -;; movl 0(%r11), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: xorq %rsi, %rsi +;; 37: movq %rdx, %rax +;; 3a: addq 0x50(%rdi), %rax +;; 3e: movl $0xffff0000, %edi +;; 43: leaq (%rax, %rdi), %r11 +;; 47: cmpq $0xfffc, %rdx +;; 4e: cmovaq %rsi, %r11 +;; 52: movl (%r11), %eax +;; 55: movq %rbp, %rsp +;; 58: popq %rbp +;; 59: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat index 2fc49d032048..b5fd75f07bf0 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0_offset.wat @@ -18,38 +18,35 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %r10, %r10, %r10 -;; movq %rdx, %r9 -;; addq %r9, 80(%rdi), %r9 -;; cmpq const(0), %rdx -;; cmovnbeq %r10, %r9, %r9 -;; movb %cl, 0(%r9) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: xorq %r10, %r10 +;; 7: movq %rdx, %r9 +;; a: addq 0x50(%rdi), %r9 +;; e: cmpq 0x13(%rip), %rdx +;; 15: cmovaq %r10, %r9 +;; 19: movb %cl, (%r9) +;; 1c: movq %rbp, %rsp +;; 1f: popq %rbp +;; 20: retq +;; 21: addb %al, (%rax) +;; 23: addb %al, (%rax) +;; 25: addb %al, (%rax) +;; 27: addb %bh, %bh ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %r10, %r10, %r10 -;; movq %rdx, %r9 -;; addq %r9, 80(%rdi), %r9 -;; cmpq const(0), %rdx -;; cmovnbeq %r10, %r9, %r9 -;; movzbq 0(%r9), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: xorq %r10, %r10 +;; 37: movq %rdx, %r9 +;; 3a: addq 0x50(%rdi), %r9 +;; 3e: cmpq 0x13(%rip), %rdx +;; 45: cmovaq %r10, %r9 +;; 49: movzbq (%r9), %rax +;; 4d: movq %rbp, %rsp +;; 50: popq %rbp +;; 51: retq +;; 52: addb %al, (%rax) +;; 54: addb %al, (%rax) +;; 56: addb %al, (%rax) diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat index 49d50c6f58bf..5be008b0f3a4 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,38 +18,31 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %r11, %r11, %r11 -;; movq 80(%rdi), %rsi -;; lea 4096(%rsi,%rdx,1), %r10 -;; cmpq const(0), %rdx -;; cmovnbeq %r11, %r10, %r10 -;; movb %cl, 0(%r10) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: xorq %r11, %r11 +;; 7: movq 0x50(%rdi), %rsi +;; b: leaq 0x1000(%rsi, %rdx), %r10 +;; 13: cmpq 0xe(%rip), %rdx +;; 1a: cmovaq %r11, %r10 +;; 1e: movb %cl, (%r10) +;; 21: movq %rbp, %rsp +;; 24: popq %rbp +;; 25: retq +;; 26: addb %al, (%rax) ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %r11, %r11, %r11 -;; movq 80(%rdi), %rsi -;; lea 4096(%rsi,%rdx,1), %r10 -;; cmpq const(0), %rdx -;; cmovnbeq %r11, %r10, %r10 -;; movzbq 0(%r10), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: xorq %r11, %r11 +;; 37: movq 0x50(%rdi), %rsi +;; 3b: leaq 0x1000(%rsi, %rdx), %r10 +;; 43: cmpq 0xe(%rip), %rdx +;; 4a: cmovaq %r11, %r10 +;; 4e: movzbq (%r10), %rax +;; 52: movq %rbp, %rsp +;; 55: popq %rbp +;; 56: retq +;; 57: addb %bh, %bh +;; 59: outl %eax, %dx diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat index a5dab3cf8597..eba0846bd2ac 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,42 +18,32 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %rsi, %rsi, %rsi -;; movq %rdx, %rax -;; addq %rax, 80(%rdi), %rax -;; movl $-65536, %edi -;; lea 0(%rax,%rdi,1), %r11 -;; cmpq $65535, %rdx -;; cmovnbeq %rsi, %r11, %r11 -;; movb %cl, 0(%r11) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: xorq %rsi, %rsi +;; 7: movq %rdx, %rax +;; a: addq 0x50(%rdi), %rax +;; e: movl $0xffff0000, %edi +;; 13: leaq (%rax, %rdi), %r11 +;; 17: cmpq $0xffff, %rdx +;; 1e: cmovaq %rsi, %r11 +;; 22: movb %cl, (%r11) +;; 25: movq %rbp, %rsp +;; 28: popq %rbp +;; 29: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %rsi, %rsi, %rsi -;; movq %rdx, %rax -;; addq %rax, 80(%rdi), %rax -;; movl $-65536, %edi -;; lea 0(%rax,%rdi,1), %r11 -;; cmpq $65535, %rdx -;; cmovnbeq %rsi, %r11, %r11 -;; movzbq 0(%r11), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: xorq %rsi, %rsi +;; 37: movq %rdx, %rax +;; 3a: addq 0x50(%rdi), %rax +;; 3e: movl $0xffff0000, %edi +;; 43: leaq (%rax, %rdi), %r11 +;; 47: cmpq $0xffff, %rdx +;; 4e: cmovaq %rsi, %r11 +;; 52: movzbq (%r11), %rax +;; 56: movq %rbp, %rsp +;; 59: popq %rbp +;; 5a: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat index 485b63352aef..aa149e50fbf7 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0_offset.wat @@ -18,40 +18,28 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq const(0), %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r10 -;; movl %ecx, 0(%r10,%rdx,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: cmpq 0x15(%rip), %rdx +;; b: ja 0x1e +;; 11: movq 0x50(%rdi), %r10 +;; 15: movl %ecx, (%r10, %rdx) +;; 19: movq %rbp, %rsp +;; 1c: popq %rbp +;; 1d: retq +;; 1e: ud2 +;; 20: cld ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq const(0), %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r10 -;; movl 0(%r10,%rdx,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: cmpq 0x15(%rip), %rdx +;; 3b: ja 0x4e +;; 41: movq 0x50(%rdi), %r10 +;; 45: movl (%r10, %rdx), %eax +;; 49: movq %rbp, %rsp +;; 4c: popq %rbp +;; 4d: retq +;; 4e: ud2 +;; 50: cld diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat index 6aa6a5af088f..6250acd2dae1 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0x1000_offset.wat @@ -18,40 +18,34 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq const(0), %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r10 -;; movl %ecx, 4096(%r10,%rdx,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: cmpq 0x1d(%rip), %rdx +;; b: ja 0x22 +;; 11: movq 0x50(%rdi), %r10 +;; 15: movl %ecx, 0x1000(%r10, %rdx) +;; 1d: movq %rbp, %rsp +;; 20: popq %rbp +;; 21: retq +;; 22: ud2 +;; 24: addb %al, (%rax) +;; 26: addb %al, (%rax) +;; 28: cld +;; 29: outl %eax, %dx ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq const(0), %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r10 -;; movl 4096(%r10,%rdx,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: cmpq 0x1d(%rip), %rdx +;; 3b: ja 0x52 +;; 41: movq 0x50(%rdi), %r10 +;; 45: movl 0x1000(%r10, %rdx), %eax +;; 4d: movq %rbp, %rsp +;; 50: popq %rbp +;; 51: retq +;; 52: ud2 +;; 54: addb %al, (%rax) +;; 56: addb %al, (%rax) +;; 58: cld +;; 59: outl %eax, %dx diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat index 587efb964af0..5fa091d38b19 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -18,42 +18,28 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq $65532, %rdx -;; jnbe label3; j label1 -;; block1: -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %r11d -;; movl %ecx, 0(%rdx,%r11,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: cmpq $0xfffc, %rdx +;; b: ja 0x24 +;; 11: addq 0x50(%rdi), %rdx +;; 15: movl $0xffff0000, %r11d +;; 1b: movl %ecx, (%rdx, %r11) +;; 1f: movq %rbp, %rsp +;; 22: popq %rbp +;; 23: retq +;; 24: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq $65532, %rdx -;; jnbe label3; j label1 -;; block1: -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %r11d -;; movl 0(%rdx,%r11,1), %eax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: cmpq $0xfffc, %rdx +;; 3b: ja 0x54 +;; 41: addq 0x50(%rdi), %rdx +;; 45: movl $0xffff0000, %r11d +;; 4b: movl (%rdx, %r11), %eax +;; 4f: movq %rbp, %rsp +;; 52: popq %rbp +;; 53: retq +;; 54: ud2 diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat index ed55d956d93a..189649df67ae 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0_offset.wat @@ -18,40 +18,30 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq const(0), %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r10 -;; movb %cl, 0(%r10,%rdx,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: cmpq 0x15(%rip), %rdx +;; b: ja 0x1e +;; 11: movq 0x50(%rdi), %r10 +;; 15: movb %cl, (%r10, %rdx) +;; 19: movq %rbp, %rsp +;; 1c: popq %rbp +;; 1d: retq +;; 1e: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq const(0), %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r10 -;; movzbq 0(%r10,%rdx,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: cmpq 0x1d(%rip), %rdx +;; 3b: ja 0x4f +;; 41: movq 0x50(%rdi), %r10 +;; 45: movzbq (%r10, %rdx), %rax +;; 4a: movq %rbp, %rsp +;; 4d: popq %rbp +;; 4e: retq +;; 4f: ud2 +;; 51: addb %al, (%rax) +;; 53: addb %al, (%rax) +;; 55: addb %al, (%rax) +;; 57: addb %bh, %bh diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat index 0dd595985081..711c5615fac5 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0x1000_offset.wat @@ -18,40 +18,31 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq const(0), %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r10 -;; movb %cl, 4096(%r10,%rdx,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: cmpq 0x1d(%rip), %rdx +;; b: ja 0x22 +;; 11: movq 0x50(%rdi), %r10 +;; 15: movb %cl, 0x1000(%r10, %rdx) +;; 1d: movq %rbp, %rsp +;; 20: popq %rbp +;; 21: retq +;; 22: ud2 +;; 24: addb %al, (%rax) +;; 26: addb %al, (%rax) ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq const(0), %rdx -;; jnbe label3; j label1 -;; block1: -;; movq 80(%rdi), %r10 -;; movzbq 4096(%r10,%rdx,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: cmpq 0x1d(%rip), %rdx +;; 3b: ja 0x53 +;; 41: movq 0x50(%rdi), %r10 +;; 45: movzbq 0x1000(%r10, %rdx), %rax +;; 4e: movq %rbp, %rsp +;; 51: popq %rbp +;; 52: retq +;; 53: ud2 +;; 55: addb %al, (%rax) +;; 57: addb %bh, %bh +;; 59: outl %eax, %dx diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat index a2156d4df6e2..07b1d80a66b3 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -18,42 +18,28 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq $65535, %rdx -;; jnbe label3; j label1 -;; block1: -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %r11d -;; movb %cl, 0(%rdx,%r11,1) -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: cmpq $0xffff, %rdx +;; b: ja 0x24 +;; 11: addq 0x50(%rdi), %rdx +;; 15: movl $0xffff0000, %r11d +;; 1b: movb %cl, (%rdx, %r11) +;; 1f: movq %rbp, %rsp +;; 22: popq %rbp +;; 23: retq +;; 24: ud2 ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; cmpq $65535, %rdx -;; jnbe label3; j label1 -;; block1: -;; addq %rdx, 80(%rdi), %rdx -;; movl $-65536, %r11d -;; movzbq 0(%rdx,%r11,1), %rax -;; jmp label2 -;; block2: -;; movq %rbp, %rsp -;; popq %rbp -;; ret -;; block3: -;; ud2 heap_oob +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: cmpq $0xffff, %rdx +;; 3b: ja 0x55 +;; 41: addq 0x50(%rdi), %rdx +;; 45: movl $0xffff0000, %r11d +;; 4b: movzbq (%rdx, %r11), %rax +;; 50: movq %rbp, %rsp +;; 53: popq %rbp +;; 54: retq +;; 55: ud2 diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat index 918c3390b3c2..9682bfb00481 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0_offset.wat @@ -18,38 +18,36 @@ local.get 0 i32.load offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %r10, %r10, %r10 -;; movq %rdx, %r9 -;; addq %r9, 80(%rdi), %r9 -;; cmpq const(0), %rdx -;; cmovnbeq %r10, %r9, %r9 -;; movl %ecx, 0(%r9) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: xorq %r10, %r10 +;; 7: movq %rdx, %r9 +;; a: addq 0x50(%rdi), %r9 +;; e: cmpq 0x13(%rip), %rdx +;; 15: cmovaq %r10, %r9 +;; 19: movl %ecx, (%r9) +;; 1c: movq %rbp, %rsp +;; 1f: popq %rbp +;; 20: retq +;; 21: addb %al, (%rax) +;; 23: addb %al, (%rax) +;; 25: addb %al, (%rax) +;; 27: addb %bh, %ah ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %r10, %r10, %r10 -;; movq %rdx, %r9 -;; addq %r9, 80(%rdi), %r9 -;; cmpq const(0), %rdx -;; cmovnbeq %r10, %r9, %r9 -;; movl 0(%r9), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: xorq %r10, %r10 +;; 37: movq %rdx, %r9 +;; 3a: addq 0x50(%rdi), %r9 +;; 3e: cmpq 0x13(%rip), %rdx +;; 45: cmovaq %r10, %r9 +;; 49: movl (%r9), %eax +;; 4c: movq %rbp, %rsp +;; 4f: popq %rbp +;; 50: retq +;; 51: addb %al, (%rax) +;; 53: addb %al, (%rax) +;; 55: addb %al, (%rax) +;; 57: addb %bh, %ah diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat index 1ac531c288b1..7e19b9f5d38e 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0x1000_offset.wat @@ -18,38 +18,34 @@ local.get 0 i32.load offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %r11, %r11, %r11 -;; movq 80(%rdi), %rsi -;; lea 4096(%rsi,%rdx,1), %r10 -;; cmpq const(0), %rdx -;; cmovnbeq %r11, %r10, %r10 -;; movl %ecx, 0(%r10) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: xorq %r11, %r11 +;; 7: movq 0x50(%rdi), %rsi +;; b: leaq 0x1000(%rsi, %rdx), %r10 +;; 13: cmpq 0xe(%rip), %rdx +;; 1a: cmovaq %r11, %r10 +;; 1e: movl %ecx, (%r10) +;; 21: movq %rbp, %rsp +;; 24: popq %rbp +;; 25: retq +;; 26: addb %al, (%rax) +;; 28: cld +;; 29: outl %eax, %dx ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %r11, %r11, %r11 -;; movq 80(%rdi), %rsi -;; lea 4096(%rsi,%rdx,1), %r10 -;; cmpq const(0), %rdx -;; cmovnbeq %r11, %r10, %r10 -;; movl 0(%r10), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: xorq %r11, %r11 +;; 37: movq 0x50(%rdi), %rsi +;; 3b: leaq 0x1000(%rsi, %rdx), %r10 +;; 43: cmpq 0xe(%rip), %rdx +;; 4a: cmovaq %r11, %r10 +;; 4e: movl (%r10), %eax +;; 51: movq %rbp, %rsp +;; 54: popq %rbp +;; 55: retq +;; 56: addb %al, (%rax) +;; 58: cld +;; 59: outl %eax, %dx diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 6e54184f9f91..11dba7a9f557 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -18,42 +18,32 @@ local.get 0 i32.load offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %rsi, %rsi, %rsi -;; movq %rdx, %rax -;; addq %rax, 80(%rdi), %rax -;; movl $-65536, %edi -;; lea 0(%rax,%rdi,1), %r11 -;; cmpq $65532, %rdx -;; cmovnbeq %rsi, %r11, %r11 -;; movl %ecx, 0(%r11) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: xorq %rsi, %rsi +;; 7: movq %rdx, %rax +;; a: addq 0x50(%rdi), %rax +;; e: movl $0xffff0000, %edi +;; 13: leaq (%rax, %rdi), %r11 +;; 17: cmpq $0xfffc, %rdx +;; 1e: cmovaq %rsi, %r11 +;; 22: movl %ecx, (%r11) +;; 25: movq %rbp, %rsp +;; 28: popq %rbp +;; 29: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %rsi, %rsi, %rsi -;; movq %rdx, %rax -;; addq %rax, 80(%rdi), %rax -;; movl $-65536, %edi -;; lea 0(%rax,%rdi,1), %r11 -;; cmpq $65532, %rdx -;; cmovnbeq %rsi, %r11, %r11 -;; movl 0(%r11), %eax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: xorq %rsi, %rsi +;; 37: movq %rdx, %rax +;; 3a: addq 0x50(%rdi), %rax +;; 3e: movl $0xffff0000, %edi +;; 43: leaq (%rax, %rdi), %r11 +;; 47: cmpq $0xfffc, %rdx +;; 4e: cmovaq %rsi, %r11 +;; 52: movl (%r11), %eax +;; 55: movq %rbp, %rsp +;; 58: popq %rbp +;; 59: retq diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat index f5ecd1bb1172..094537c3d498 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0_offset.wat @@ -18,38 +18,35 @@ local.get 0 i32.load8_u offset=0)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %r10, %r10, %r10 -;; movq %rdx, %r9 -;; addq %r9, 80(%rdi), %r9 -;; cmpq const(0), %rdx -;; cmovnbeq %r10, %r9, %r9 -;; movb %cl, 0(%r9) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: xorq %r10, %r10 +;; 7: movq %rdx, %r9 +;; a: addq 0x50(%rdi), %r9 +;; e: cmpq 0x13(%rip), %rdx +;; 15: cmovaq %r10, %r9 +;; 19: movb %cl, (%r9) +;; 1c: movq %rbp, %rsp +;; 1f: popq %rbp +;; 20: retq +;; 21: addb %al, (%rax) +;; 23: addb %al, (%rax) +;; 25: addb %al, (%rax) +;; 27: addb %bh, %bh ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %r10, %r10, %r10 -;; movq %rdx, %r9 -;; addq %r9, 80(%rdi), %r9 -;; cmpq const(0), %rdx -;; cmovnbeq %r10, %r9, %r9 -;; movzbq 0(%r9), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: xorq %r10, %r10 +;; 37: movq %rdx, %r9 +;; 3a: addq 0x50(%rdi), %r9 +;; 3e: cmpq 0x13(%rip), %rdx +;; 45: cmovaq %r10, %r9 +;; 49: movzbq (%r9), %rax +;; 4d: movq %rbp, %rsp +;; 50: popq %rbp +;; 51: retq +;; 52: addb %al, (%rax) +;; 54: addb %al, (%rax) +;; 56: addb %al, (%rax) diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat index 5f63e0bdc00e..eabfb4e9addd 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0x1000_offset.wat @@ -18,38 +18,31 @@ local.get 0 i32.load8_u offset=0x1000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %r11, %r11, %r11 -;; movq 80(%rdi), %rsi -;; lea 4096(%rsi,%rdx,1), %r10 -;; cmpq const(0), %rdx -;; cmovnbeq %r11, %r10, %r10 -;; movb %cl, 0(%r10) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: xorq %r11, %r11 +;; 7: movq 0x50(%rdi), %rsi +;; b: leaq 0x1000(%rsi, %rdx), %r10 +;; 13: cmpq 0xe(%rip), %rdx +;; 1a: cmovaq %r11, %r10 +;; 1e: movb %cl, (%r10) +;; 21: movq %rbp, %rsp +;; 24: popq %rbp +;; 25: retq +;; 26: addb %al, (%rax) ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %r11, %r11, %r11 -;; movq 80(%rdi), %rsi -;; lea 4096(%rsi,%rdx,1), %r10 -;; cmpq const(0), %rdx -;; cmovnbeq %r11, %r10, %r10 -;; movzbq 0(%r10), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: xorq %r11, %r11 +;; 37: movq 0x50(%rdi), %rsi +;; 3b: leaq 0x1000(%rsi, %rdx), %r10 +;; 43: cmpq 0xe(%rip), %rdx +;; 4a: cmovaq %r11, %r10 +;; 4e: movzbq (%r10), %rax +;; 52: movq %rbp, %rsp +;; 55: popq %rbp +;; 56: retq +;; 57: addb %bh, %bh +;; 59: outl %eax, %dx diff --git a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat index c3fbdea89898..69b868a96eb0 100644 --- a/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/tests/disas/load-store/x64/load_store_static_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -18,42 +18,32 @@ local.get 0 i32.load8_u offset=0xffff0000)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %rsi, %rsi, %rsi -;; movq %rdx, %rax -;; addq %rax, 80(%rdi), %rax -;; movl $-65536, %edi -;; lea 0(%rax,%rdi,1), %r11 -;; cmpq $65535, %rdx -;; cmovnbeq %rsi, %r11, %r11 -;; movb %cl, 0(%r11) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: xorq %rsi, %rsi +;; 7: movq %rdx, %rax +;; a: addq 0x50(%rdi), %rax +;; e: movl $0xffff0000, %edi +;; 13: leaq (%rax, %rdi), %r11 +;; 17: cmpq $0xffff, %rdx +;; 1e: cmovaq %rsi, %r11 +;; 22: movb %cl, (%r11) +;; 25: movq %rbp, %rsp +;; 28: popq %rbp +;; 29: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; xorq %rsi, %rsi, %rsi -;; movq %rdx, %rax -;; addq %rax, 80(%rdi), %rax -;; movl $-65536, %edi -;; lea 0(%rax,%rdi,1), %r11 -;; cmpq $65535, %rdx -;; cmovnbeq %rsi, %r11, %r11 -;; movzbq 0(%r11), %rax -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: xorq %rsi, %rsi +;; 37: movq %rdx, %rax +;; 3a: addq 0x50(%rdi), %rax +;; 3e: movl $0xffff0000, %edi +;; 43: leaq (%rax, %rdi), %r11 +;; 47: cmpq $0xffff, %rdx +;; 4e: cmovaq %rsi, %r11 +;; 52: movzbq (%r11), %rax +;; 56: movq %rbp, %rsp +;; 59: popq %rbp +;; 5a: retq diff --git a/tests/disas/pcc-imported-memory.wat b/tests/disas/pcc-imported-memory.wat index eb4c3a3722e2..7258347f66e1 100644 --- a/tests/disas/pcc-imported-memory.wat +++ b/tests/disas/pcc-imported-memory.wat @@ -34,41 +34,27 @@ local.get 1 drop)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 72(%rdi), %r10 -;; movq 8(%r10), %rax -;; movl $65536, %r10d -;; xorq %rdx, %rdx, %rdx -;; div %rax, %rdx, %r10, %rax, %rdx ; trap=int_divz -;; movq %rax, %r9 -;; shll $16, %r9d, %r9d -;; lea 4(%rax), %r10d -;; cmpl %r10d, %r9d -;; jbe label1; j label2 -;; block1: -;; jmp label5 -;; block2: -;; testl %eax, %eax -;; jle label3; j label4 -;; block3: -;; jmp label5 -;; block4: -;; movq 72(%rdi), %rcx -;; movq 0(%rcx), %rcx -;; movl %eax, %edx -;; movl 0(%rcx,%rdx,1), %edi -;; jmp label6 -;; block5: -;; xorl %edi, %edi, %edi -;; jmp label6 -;; block6: -;; jmp label7 -;; block7: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x48(%rdi), %r10 +;; 8: movq 8(%r10), %rax +;; c: movl $0x10000, %r10d +;; 12: xorq %rdx, %rdx +;; 15: divq %r10 +;; 18: movq %rax, %r9 +;; 1b: shll $0x10, %r9d +;; 1f: leal 4(%rax), %r10d +;; 23: cmpl %r10d, %r9d +;; 26: jbe 0x45 +;; 2c: testl %eax, %eax +;; 2e: jle 0x45 +;; 34: movq 0x48(%rdi), %rcx +;; 38: movq (%rcx), %rcx +;; 3b: movl %eax, %edx +;; 3d: movl (%rcx, %rdx), %edi +;; 40: jmp 0x47 +;; 45: xorl %edi, %edi +;; 47: movq %rbp, %rsp +;; 4a: popq %rbp +;; 4b: retq diff --git a/tests/disas/pcc-insertlane-x64-avx.wat b/tests/disas/pcc-insertlane-x64-avx.wat index 63a02e0dcef7..43fe6af61354 100644 --- a/tests/disas/pcc-insertlane-x64-avx.wat +++ b/tests/disas/pcc-insertlane-x64-avx.wat @@ -65,208 +65,159 @@ local.get 0 i64x2.extract_lane 1 i64.store)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; vmovdqu const(0), %xmm7 -;; movl %edx, %r10d -;; movq 80(%rdi), %r11 -;; vpinsrb $1, %xmm7, 0(%r11,%r10,1), %xmm0 -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: vmovdqu 0x14(%rip), %xmm7 +;; c: movl %edx, %r10d +;; f: movq 0x50(%rdi), %r11 +;; 13: vpinsrb $1, (%r11, %r10), %xmm7, %xmm0 +;; 1a: movq %rbp, %rsp +;; 1d: popq %rbp +;; 1e: retq +;; 1f: addb %ch, (%rax) +;; 21: subl %ebp, (%rcx) +;; 23: subl %ebp, (%rax) +;; 25: imull $0x616d286d, 0x20(%rsi), %ebp ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; vmovdqu const(0), %xmm7 -;; movl %edx, %r10d -;; movq 80(%rdi), %r11 -;; vpinsrw $1, %xmm7, 0(%r11,%r10,1), %xmm0 -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: vmovdqu 0x14(%rip), %xmm7 +;; 3c: movl %edx, %r10d +;; 3f: movq 0x50(%rdi), %r11 +;; 43: vpinsrw $1, (%r11, %r10), %xmm7, %xmm0 +;; 4a: movq %rbp, %rsp +;; 4d: popq %rbp +;; 4e: retq +;; 4f: addb %ch, (%rax) +;; 51: subl %ebp, (%rcx) +;; 53: subl %ebp, (%rax) +;; 55: imull $0x616d286d, 0x20(%rsi), %ebp ;; -;; function u0:2: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; vmovdqu const(0), %xmm7 -;; movl %edx, %r10d -;; movq 80(%rdi), %r11 -;; vpinsrd $1, %xmm7, 0(%r11,%r10,1), %xmm0 -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[2]: +;; 60: pushq %rbp +;; 61: movq %rsp, %rbp +;; 64: vmovdqu 0x14(%rip), %xmm7 +;; 6c: movl %edx, %r10d +;; 6f: movq 0x50(%rdi), %r11 +;; 73: vpinsrd $1, (%r11, %r10), %xmm7, %xmm0 +;; 7a: movq %rbp, %rsp +;; 7d: popq %rbp +;; 7e: retq +;; 7f: addb %ch, (%rax) +;; 81: subl %ebp, (%rcx) +;; 83: subl %ebp, (%rax) +;; 85: imull $0x616d286d, 0x20(%rsi), %ebp ;; -;; function u0:3: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; vmovdqu const(0), %xmm7 -;; movl %edx, %r10d -;; movq 80(%rdi), %r11 -;; vpinsrq $1, %xmm7, 0(%r11,%r10,1), %xmm0 -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[3]: +;; 90: pushq %rbp +;; 91: movq %rsp, %rbp +;; 94: vmovdqu 0x14(%rip), %xmm7 +;; 9c: movl %edx, %r10d +;; 9f: movq 0x50(%rdi), %r11 +;; a3: vpinsrq $1, (%r11, %r10), %xmm7, %xmm0 +;; aa: movq %rbp, %rsp +;; ad: popq %rbp +;; ae: retq +;; af: addb %ch, (%rax) +;; b1: subl %ebp, (%rcx) +;; b3: subl %ebp, (%rax) +;; b5: imull $0x616d286d, 0x20(%rsi), %ebp ;; -;; function u0:4: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r10d -;; movq 80(%rdi), %r11 -;; vinsertps $0, %xmm0, 0(%r11,%r10,1), %xmm0 -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[4]: +;; c0: pushq %rbp +;; c1: movq %rsp, %rbp +;; c4: movl %edx, %r10d +;; c7: movq 0x50(%rdi), %r11 +;; cb: vinsertps $0, (%r11, %r10), %xmm0, %xmm0 +;; d2: movq %rbp, %rsp +;; d5: popq %rbp +;; d6: retq ;; -;; function u0:5: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r10d -;; movq 80(%rdi), %r11 -;; vmovlhps %xmm0, 0(%r11,%r10,1), %xmm0 -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[5]: +;; e0: pushq %rbp +;; e1: movq %rsp, %rbp +;; e4: movl %edx, %r10d +;; e7: movq 0x50(%rdi), %r11 +;; eb: vmovhps (%r11, %r10), %xmm0, %xmm0 +;; f1: movq %rbp, %rsp +;; f4: popq %rbp +;; f5: retq ;; -;; function u0:6: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r11d -;; movq 80(%rdi), %rsi -;; vmovsd 0(%rsi,%r11,1), %xmm1 -;; vmovsd %xmm0, %xmm1, %xmm0 -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[6]: +;; 100: pushq %rbp +;; 101: movq %rsp, %rbp +;; 104: movl %edx, %r11d +;; 107: movq 0x50(%rdi), %rsi +;; 10b: vmovsd (%rsi, %r11), %xmm1 +;; 111: vmovsd %xmm1, %xmm0, %xmm0 +;; 115: movq %rbp, %rsp +;; 118: popq %rbp +;; 119: retq ;; -;; function u0:7: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; vpshufd $238, %xmm0, %xmm7 -;; movl %edx, %r10d -;; movq 80(%rdi), %r11 -;; vmovsd %xmm7, 0(%r11,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[7]: +;; 120: pushq %rbp +;; 121: movq %rsp, %rbp +;; 124: vpshufd $0xee, %xmm0, %xmm7 +;; 129: movl %edx, %r10d +;; 12c: movq 0x50(%rdi), %r11 +;; 130: vmovsd %xmm7, (%r11, %r10) +;; 136: movq %rbp, %rsp +;; 139: popq %rbp +;; 13a: retq ;; -;; function u0:8: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; vpshufd $1, %xmm0, %xmm7 -;; movl %edx, %r10d -;; movq 80(%rdi), %r11 -;; vmovss %xmm7, 0(%r11,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[8]: +;; 140: pushq %rbp +;; 141: movq %rsp, %rbp +;; 144: vpshufd $1, %xmm0, %xmm7 +;; 149: movl %edx, %r10d +;; 14c: movq 0x50(%rdi), %r11 +;; 150: vmovss %xmm7, (%r11, %r10) +;; 156: movq %rbp, %rsp +;; 159: popq %rbp +;; 15a: retq ;; -;; function u0:9: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; vpextrb $1, %xmm0, %r11 -;; movsbl %r11b, %r11d -;; movl %edx, %esi -;; movq 80(%rdi), %rdi -;; movb %r11b, 0(%rdi,%rsi,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[9]: +;; 160: pushq %rbp +;; 161: movq %rsp, %rbp +;; 164: vpextrb $1, %xmm0, %r11d +;; 16a: movsbl %r11b, %r11d +;; 16e: movl %edx, %esi +;; 170: movq 0x50(%rdi), %rdi +;; 174: movb %r11b, (%rdi, %rsi) +;; 178: movq %rbp, %rsp +;; 17b: popq %rbp +;; 17c: retq ;; -;; function u0:10: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; vpextrw $1, %xmm0, %r11 -;; movswl %r11w, %r11d -;; movl %edx, %esi -;; movq 80(%rdi), %rdi -;; movw %r11w, 0(%rdi,%rsi,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[10]: +;; 180: pushq %rbp +;; 181: movq %rsp, %rbp +;; 184: vpextrw $1, %xmm0, %r11d +;; 18a: movswl %r11w, %r11d +;; 18e: movl %edx, %esi +;; 190: movq 0x50(%rdi), %rdi +;; 194: movw %r11w, (%rdi, %rsi) +;; 199: movq %rbp, %rsp +;; 19c: popq %rbp +;; 19d: retq ;; -;; function u0:11: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; movq 80(%rdi), %r10 -;; vpextrd $1, %xmm0, 0(%r10,%r9,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[11]: +;; 1a0: pushq %rbp +;; 1a1: movq %rsp, %rbp +;; 1a4: movl %edx, %r9d +;; 1a7: movq 0x50(%rdi), %r10 +;; 1ab: vpextrd $1, %xmm0, (%r10, %r9) +;; 1b2: movq %rbp, %rsp +;; 1b5: popq %rbp +;; 1b6: retq ;; -;; function u0:12: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; movq 80(%rdi), %r10 -;; vpextrq $1, %xmm0, 0(%r10,%r9,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[12]: +;; 1c0: pushq %rbp +;; 1c1: movq %rsp, %rbp +;; 1c4: movl %edx, %r9d +;; 1c7: movq 0x50(%rdi), %r10 +;; 1cb: vpextrq $1, %xmm0, (%r10, %r9) +;; 1d2: movq %rbp, %rsp +;; 1d5: popq %rbp +;; 1d6: retq diff --git a/tests/disas/pcc-insertlane-x64.wat b/tests/disas/pcc-insertlane-x64.wat index 48ea72a207b7..c63a18076b01 100644 --- a/tests/disas/pcc-insertlane-x64.wat +++ b/tests/disas/pcc-insertlane-x64.wat @@ -65,209 +65,163 @@ local.get 0 i64x2.extract_lane 1 i64.store)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movdqu const(0), %xmm0 -;; movl %edx, %r10d -;; movq 80(%rdi), %r11 -;; pinsrb $1, %xmm0, 0(%r11,%r10,1), %xmm0 -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movdqu 0x14(%rip), %xmm0 +;; c: movl %edx, %r10d +;; f: movq 0x50(%rdi), %r11 +;; 13: pinsrb $1, (%r11, %r10), %xmm0 +;; 1b: movq %rbp, %rsp +;; 1e: popq %rbp +;; 1f: retq +;; 20: subb %ch, (%rcx) +;; 22: subl %ebp, (%rcx) +;; 24: subb %ch, 0x6e(%rcx) +;; 27: andb %ch, 0x28(%rbp) +;; 2a: insl %dx, (%rdi) ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movdqu const(0), %xmm0 -;; movl %edx, %r10d -;; movq 80(%rdi), %r11 -;; pinsrw $1, %xmm0, 0(%r11,%r10,1), %xmm0 -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: movdqu 0x14(%rip), %xmm0 +;; 3c: movl %edx, %r10d +;; 3f: movq 0x50(%rdi), %r11 +;; 43: pinsrw $1, (%r11, %r10), %xmm0 +;; 4a: movq %rbp, %rsp +;; 4d: popq %rbp +;; 4e: retq +;; 4f: addb %ch, (%rax) +;; 51: subl %ebp, (%rcx) +;; 53: subl %ebp, (%rax) +;; 55: imull $0x616d286d, 0x20(%rsi), %ebp ;; -;; function u0:2: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movdqu const(0), %xmm0 -;; movl %edx, %r10d -;; movq 80(%rdi), %r11 -;; pinsrd $1, %xmm0, 0(%r11,%r10,1), %xmm0 -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[2]: +;; 60: pushq %rbp +;; 61: movq %rsp, %rbp +;; 64: movdqu 0x14(%rip), %xmm0 +;; 6c: movl %edx, %r10d +;; 6f: movq 0x50(%rdi), %r11 +;; 73: pinsrd $1, (%r11, %r10), %xmm0 +;; 7b: movq %rbp, %rsp +;; 7e: popq %rbp +;; 7f: retq +;; 80: subb %ch, (%rcx) +;; 82: subl %ebp, (%rcx) +;; 84: subb %ch, 0x6e(%rcx) +;; 87: andb %ch, 0x28(%rbp) +;; 8a: insl %dx, (%rdi) ;; -;; function u0:3: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movdqu const(0), %xmm0 -;; movl %edx, %r10d -;; movq 80(%rdi), %r11 -;; pinsrd.w $1, %xmm0, 0(%r11,%r10,1), %xmm0 -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[3]: +;; 90: pushq %rbp +;; 91: movq %rsp, %rbp +;; 94: movdqu 0x14(%rip), %xmm0 +;; 9c: movl %edx, %r10d +;; 9f: movq 0x50(%rdi), %r11 +;; a3: pinsrq $1, (%r11, %r10), %xmm0 +;; ab: movq %rbp, %rsp +;; ae: popq %rbp +;; af: retq +;; b0: subb %ch, (%rcx) +;; b2: subl %ebp, (%rcx) +;; b4: subb %ch, 0x6e(%rcx) +;; b7: andb %ch, 0x28(%rbp) +;; ba: insl %dx, (%rdi) ;; -;; function u0:4: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r10d -;; movq 80(%rdi), %r11 -;; insertps $0, %xmm0, 0(%r11,%r10,1), %xmm0 -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[4]: +;; c0: pushq %rbp +;; c1: movq %rsp, %rbp +;; c4: movl %edx, %r10d +;; c7: movq 0x50(%rdi), %r11 +;; cb: insertps $0, (%r11, %r10), %xmm0 +;; d3: movq %rbp, %rsp +;; d6: popq %rbp +;; d7: retq ;; -;; function u0:5: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r11d -;; movq 80(%rdi), %rsi -;; movdqu 0(%rsi,%r11,1), %xmm7 -;; movlhps %xmm0, %xmm7, %xmm0 -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[5]: +;; e0: pushq %rbp +;; e1: movq %rsp, %rbp +;; e4: movl %edx, %r11d +;; e7: movq 0x50(%rdi), %rsi +;; eb: movdqu (%rsi, %r11), %xmm7 +;; f1: movlhps %xmm7, %xmm0 +;; f4: movq %rbp, %rsp +;; f7: popq %rbp +;; f8: retq ;; -;; function u0:6: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r11d -;; movq 80(%rdi), %rsi -;; movsd 0(%rsi,%r11,1), %xmm1 -;; movsd %xmm0, %xmm1, %xmm0 -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[6]: +;; 100: pushq %rbp +;; 101: movq %rsp, %rbp +;; 104: movl %edx, %r11d +;; 107: movq 0x50(%rdi), %rsi +;; 10b: movsd (%rsi, %r11), %xmm1 +;; 111: movsd %xmm1, %xmm0 +;; 115: movq %rbp, %rsp +;; 118: popq %rbp +;; 119: retq ;; -;; function u0:7: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; pshufd $238, %xmm0, %xmm7 -;; movl %edx, %r10d -;; movq 80(%rdi), %r11 -;; movsd %xmm7, 0(%r11,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[7]: +;; 120: pushq %rbp +;; 121: movq %rsp, %rbp +;; 124: pshufd $0xee, %xmm0, %xmm7 +;; 129: movl %edx, %r10d +;; 12c: movq 0x50(%rdi), %r11 +;; 130: movsd %xmm7, (%r11, %r10) +;; 136: movq %rbp, %rsp +;; 139: popq %rbp +;; 13a: retq ;; -;; function u0:8: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; pshufd $1, %xmm0, %xmm7 -;; movl %edx, %r10d -;; movq 80(%rdi), %r11 -;; movss %xmm7, 0(%r11,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[8]: +;; 140: pushq %rbp +;; 141: movq %rsp, %rbp +;; 144: pshufd $1, %xmm0, %xmm7 +;; 149: movl %edx, %r10d +;; 14c: movq 0x50(%rdi), %r11 +;; 150: movss %xmm7, (%r11, %r10) +;; 156: movq %rbp, %rsp +;; 159: popq %rbp +;; 15a: retq ;; -;; function u0:9: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; pextrb $1, %xmm0, %r11 -;; movsbl %r11b, %r11d -;; movl %edx, %esi -;; movq 80(%rdi), %rdi -;; movb %r11b, 0(%rdi,%rsi,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[9]: +;; 160: pushq %rbp +;; 161: movq %rsp, %rbp +;; 164: pextrb $1, %xmm0, %r11d +;; 16b: movsbl %r11b, %r11d +;; 16f: movl %edx, %esi +;; 171: movq 0x50(%rdi), %rdi +;; 175: movb %r11b, (%rdi, %rsi) +;; 179: movq %rbp, %rsp +;; 17c: popq %rbp +;; 17d: retq ;; -;; function u0:10: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; pextrw $1, %xmm0, %r11 -;; movswl %r11w, %r11d -;; movl %edx, %esi -;; movq 80(%rdi), %rdi -;; movw %r11w, 0(%rdi,%rsi,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[10]: +;; 180: pushq %rbp +;; 181: movq %rsp, %rbp +;; 184: pextrw $1, %xmm0, %r11d +;; 18a: movswl %r11w, %r11d +;; 18e: movl %edx, %esi +;; 190: movq 0x50(%rdi), %rdi +;; 194: movw %r11w, (%rdi, %rsi) +;; 199: movq %rbp, %rsp +;; 19c: popq %rbp +;; 19d: retq ;; -;; function u0:11: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; movq 80(%rdi), %r10 -;; pextrd $1, %xmm0, 0(%r10,%r9,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[11]: +;; 1a0: pushq %rbp +;; 1a1: movq %rsp, %rbp +;; 1a4: movl %edx, %r9d +;; 1a7: movq 0x50(%rdi), %r10 +;; 1ab: pextrd $1, %xmm0, (%r10, %r9) +;; 1b3: movq %rbp, %rsp +;; 1b6: popq %rbp +;; 1b7: retq ;; -;; function u0:12: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movl %edx, %r9d -;; movq 80(%rdi), %r10 -;; pextrq $1, %xmm0, 0(%r10,%r9,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[12]: +;; 1c0: pushq %rbp +;; 1c1: movq %rsp, %rbp +;; 1c4: movl %edx, %r9d +;; 1c7: movq 0x50(%rdi), %r10 +;; 1cb: pextrq $1, %xmm0, (%r10, %r9) +;; 1d3: movq %rbp, %rsp +;; 1d6: popq %rbp +;; 1d7: retq diff --git a/tests/disas/pcc-loads-x64-avx.wat b/tests/disas/pcc-loads-x64-avx.wat index b96dd995565b..f485ed977ce2 100644 --- a/tests/disas/pcc-loads-x64-avx.wat +++ b/tests/disas/pcc-loads-x64-avx.wat @@ -18,62 +18,42 @@ local.get 0 local.get 1 f64.store)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; vmovss 0(%r9,%r10,1), %xmm0 -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x50(%rdi), %r9 +;; 8: movl %edx, %r10d +;; b: vmovss (%r9, %r10), %xmm0 +;; 11: movq %rbp, %rsp +;; 14: popq %rbp +;; 15: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; vmovsd 0(%r9,%r10,1), %xmm0 -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: movq 0x50(%rdi), %r9 +;; 28: movl %edx, %r10d +;; 2b: vmovsd (%r9, %r10), %xmm0 +;; 31: movq %rbp, %rsp +;; 34: popq %rbp +;; 35: retq ;; -;; function u0:2: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; vmovss %xmm0, 0(%r9,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[2]: +;; 40: pushq %rbp +;; 41: movq %rsp, %rbp +;; 44: movq 0x50(%rdi), %r9 +;; 48: movl %edx, %r10d +;; 4b: vmovss %xmm0, (%r9, %r10) +;; 51: movq %rbp, %rsp +;; 54: popq %rbp +;; 55: retq ;; -;; function u0:3: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; vmovsd %xmm0, 0(%r9,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[3]: +;; 60: pushq %rbp +;; 61: movq %rsp, %rbp +;; 64: movq 0x50(%rdi), %r9 +;; 68: movl %edx, %r10d +;; 6b: vmovsd %xmm0, (%r9, %r10) +;; 71: movq %rbp, %rsp +;; 74: popq %rbp +;; 75: retq diff --git a/tests/disas/pcc-loads-x64.wat b/tests/disas/pcc-loads-x64.wat index 925fa6f03e27..8c164c4f0542 100644 --- a/tests/disas/pcc-loads-x64.wat +++ b/tests/disas/pcc-loads-x64.wat @@ -18,62 +18,42 @@ local.get 0 local.get 1 f64.store)) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movss 0(%r9,%r10,1), %xmm0 -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: movq 0x50(%rdi), %r9 +;; 8: movl %edx, %r10d +;; b: movss (%r9, %r10), %xmm0 +;; 11: movq %rbp, %rsp +;; 14: popq %rbp +;; 15: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movsd 0(%r9,%r10,1), %xmm0 -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: movq 0x50(%rdi), %r9 +;; 28: movl %edx, %r10d +;; 2b: movsd (%r9, %r10), %xmm0 +;; 31: movq %rbp, %rsp +;; 34: popq %rbp +;; 35: retq ;; -;; function u0:2: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movss %xmm0, 0(%r9,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[2]: +;; 40: pushq %rbp +;; 41: movq %rsp, %rbp +;; 44: movq 0x50(%rdi), %r9 +;; 48: movl %edx, %r10d +;; 4b: movss %xmm0, (%r9, %r10) +;; 51: movq %rbp, %rsp +;; 54: popq %rbp +;; 55: retq ;; -;; function u0:3: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; movq 80(%rdi), %r9 -;; movl %edx, %r10d -;; movsd %xmm0, 0(%r9,%r10,1) -;; jmp label1 -;; block1: -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[3]: +;; 60: pushq %rbp +;; 61: movq %rsp, %rbp +;; 64: movq 0x50(%rdi), %r9 +;; 68: movl %edx, %r10d +;; 6b: movsd %xmm0, (%r9, %r10) +;; 71: movq %rbp, %rsp +;; 74: popq %rbp +;; 75: retq diff --git a/tests/disas/riscv64-zbb.wat b/tests/disas/riscv64-zbb.wat index e22f757f8e98..147546cadce8 100644 --- a/tests/disas/riscv64-zbb.wat +++ b/tests/disas/riscv64-zbb.wat @@ -30,86 +30,134 @@ (func (export "xnor64_2") (param i64 i64) (result i64) (i64.xor (i64.const -1) (i64.xor (local.get 0) (local.get 1)))) ) -;; function u0:0: -;; block0: -;; j label1 -;; block1: -;; rolw a0,a2,a3 -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: .byte 0x3b, 0x15, 0xd6, 0x60 +;; 14: ld ra, 8(sp) +;; 18: ld s0, 0(sp) +;; 1c: addi sp, sp, 0x10 +;; 20: ret ;; -;; function u0:1: -;; block0: -;; j label1 -;; block1: -;; rol a0,a2,a3 -;; ret +;; wasm[0]::function[1]: +;; 24: addi sp, sp, -0x10 +;; 28: sd ra, 8(sp) +;; 2c: sd s0, 0(sp) +;; 30: mv s0, sp +;; 34: .byte 0x33, 0x15, 0xd6, 0x60 +;; 38: ld ra, 8(sp) +;; 3c: ld s0, 0(sp) +;; 40: addi sp, sp, 0x10 +;; 44: ret ;; -;; function u0:2: -;; block0: -;; j label1 -;; block1: -;; roriw a0,a2,28 -;; ret +;; wasm[0]::function[2]: +;; 48: addi sp, sp, -0x10 +;; 4c: sd ra, 8(sp) +;; 50: sd s0, 0(sp) +;; 54: mv s0, sp +;; 58: .byte 0x1b, 0x55, 0xc6, 0x61 +;; 5c: ld ra, 8(sp) +;; 60: ld s0, 0(sp) +;; 64: addi sp, sp, 0x10 +;; 68: ret ;; -;; function u0:3: -;; block0: -;; j label1 -;; block1: -;; rori a0,a2,24 -;; ret +;; wasm[0]::function[3]: +;; 6c: addi sp, sp, -0x10 +;; 70: sd ra, 8(sp) +;; 74: sd s0, 0(sp) +;; 78: mv s0, sp +;; 7c: .byte 0x13, 0x55, 0x86, 0x61 +;; 80: ld ra, 8(sp) +;; 84: ld s0, 0(sp) +;; 88: addi sp, sp, 0x10 +;; 8c: ret ;; -;; function u0:4: -;; block0: -;; j label1 -;; block1: -;; rorw a0,a2,a3 -;; ret +;; wasm[0]::function[4]: +;; 90: addi sp, sp, -0x10 +;; 94: sd ra, 8(sp) +;; 98: sd s0, 0(sp) +;; 9c: mv s0, sp +;; a0: .byte 0x3b, 0x55, 0xd6, 0x60 +;; a4: ld ra, 8(sp) +;; a8: ld s0, 0(sp) +;; ac: addi sp, sp, 0x10 +;; b0: ret ;; -;; function u0:5: -;; block0: -;; j label1 -;; block1: -;; ror a0,a2,a3 -;; ret +;; wasm[0]::function[5]: +;; b4: addi sp, sp, -0x10 +;; b8: sd ra, 8(sp) +;; bc: sd s0, 0(sp) +;; c0: mv s0, sp +;; c4: .byte 0x33, 0x55, 0xd6, 0x60 +;; c8: ld ra, 8(sp) +;; cc: ld s0, 0(sp) +;; d0: addi sp, sp, 0x10 +;; d4: ret ;; -;; function u0:6: -;; block0: -;; j label1 -;; block1: -;; roriw a0,a2,4 -;; ret +;; wasm[0]::function[6]: +;; d8: addi sp, sp, -0x10 +;; dc: sd ra, 8(sp) +;; e0: sd s0, 0(sp) +;; e4: mv s0, sp +;; e8: .byte 0x1b, 0x55, 0x46, 0x60 +;; ec: ld ra, 8(sp) +;; f0: ld s0, 0(sp) +;; f4: addi sp, sp, 0x10 +;; f8: ret ;; -;; function u0:7: -;; block0: -;; j label1 -;; block1: -;; rori a0,a2,40 -;; ret +;; wasm[0]::function[7]: +;; fc: addi sp, sp, -0x10 +;; 100: sd ra, 8(sp) +;; 104: sd s0, 0(sp) +;; 108: mv s0, sp +;; 10c: .byte 0x13, 0x55, 0x86, 0x62 +;; 110: ld ra, 8(sp) +;; 114: ld s0, 0(sp) +;; 118: addi sp, sp, 0x10 +;; 11c: ret ;; -;; function u0:8: -;; block0: -;; j label1 -;; block1: -;; xnor a0,a2,a3 -;; ret +;; wasm[0]::function[8]: +;; 120: addi sp, sp, -0x10 +;; 124: sd ra, 8(sp) +;; 128: sd s0, 0(sp) +;; 12c: mv s0, sp +;; 130: .byte 0x33, 0x45, 0xd6, 0x40 +;; 134: ld ra, 8(sp) +;; 138: ld s0, 0(sp) +;; 13c: addi sp, sp, 0x10 +;; 140: ret ;; -;; function u0:9: -;; block0: -;; j label1 -;; block1: -;; xnor a0,a2,a3 -;; ret +;; wasm[0]::function[9]: +;; 144: addi sp, sp, -0x10 +;; 148: sd ra, 8(sp) +;; 14c: sd s0, 0(sp) +;; 150: mv s0, sp +;; 154: .byte 0x33, 0x45, 0xd6, 0x40 +;; 158: ld ra, 8(sp) +;; 15c: ld s0, 0(sp) +;; 160: addi sp, sp, 0x10 +;; 164: ret ;; -;; function u0:10: -;; block0: -;; j label1 -;; block1: -;; xnor a0,a2,a3 -;; ret +;; wasm[0]::function[10]: +;; 168: addi sp, sp, -0x10 +;; 16c: sd ra, 8(sp) +;; 170: sd s0, 0(sp) +;; 174: mv s0, sp +;; 178: .byte 0x33, 0x45, 0xd6, 0x40 +;; 17c: ld ra, 8(sp) +;; 180: ld s0, 0(sp) +;; 184: addi sp, sp, 0x10 +;; 188: ret ;; -;; function u0:11: -;; block0: -;; j label1 -;; block1: -;; xnor a0,a2,a3 -;; ret +;; wasm[0]::function[11]: +;; 18c: addi sp, sp, -0x10 +;; 190: sd ra, 8(sp) +;; 194: sd s0, 0(sp) +;; 198: mv s0, sp +;; 19c: .byte 0x33, 0x45, 0xd6, 0x40 +;; 1a0: ld ra, 8(sp) +;; 1a4: ld s0, 0(sp) +;; 1a8: addi sp, sp, 0x10 +;; 1ac: ret diff --git a/tests/disas/riscv64-zbs.wat b/tests/disas/riscv64-zbs.wat index 53bb46b33da4..9f2575c1a861 100644 --- a/tests/disas/riscv64-zbs.wat +++ b/tests/disas/riscv64-zbs.wat @@ -122,277 +122,429 @@ (i64.or (i64.shl (i64.const 1) (i64.const 40)) (local.get 0)) ) ) -;; function u0:0: -;; block0: -;; j label1 -;; block1: -;; andi a0,a3,31 -;; bclr a0,a2,a0 -;; ret -;; -;; function u0:1: -;; block0: -;; j label1 -;; block1: -;; bclr a0,a2,a3 -;; ret -;; -;; function u0:2: -;; block0: -;; j label1 -;; block1: -;; bclri a0,a2,4 -;; ret -;; -;; function u0:3: -;; block0: -;; j label1 -;; block1: -;; bclri a0,a2,20 -;; ret -;; -;; function u0:4: -;; block0: -;; j label1 -;; block1: -;; bclri a0,a2,4 -;; ret -;; -;; function u0:5: -;; block0: -;; j label1 -;; block1: -;; bclri a0,a2,52 -;; ret -;; -;; function u0:6: -;; block0: -;; j label1 -;; block1: -;; andi a0,a3,31 -;; bext a0,a2,a0 -;; ret -;; -;; function u0:7: -;; block0: -;; j label1 -;; block1: -;; andi a0,a3,31 -;; bext a0,a2,a0 -;; ret -;; -;; function u0:8: -;; block0: -;; j label1 -;; block1: -;; andi a0,a3,31 -;; bext a0,a2,a0 -;; ret -;; -;; function u0:9: -;; block0: -;; j label1 -;; block1: -;; andi a0,a3,31 -;; bext a0,a2,a0 -;; ret -;; -;; function u0:10: -;; block0: -;; j label1 -;; block1: -;; bext a0,a2,a3 -;; ret -;; -;; function u0:11: -;; block0: -;; j label1 -;; block1: -;; bext a0,a2,a3 -;; ret -;; -;; function u0:12: -;; block0: -;; j label1 -;; block1: -;; bext a0,a2,a3 -;; ret -;; -;; function u0:13: -;; block0: -;; j label1 -;; block1: -;; bext a0,a2,a3 -;; ret -;; -;; function u0:14: -;; block0: -;; j label1 -;; block1: -;; bexti a0,a2,10 -;; ret -;; -;; function u0:15: -;; block0: -;; j label1 -;; block1: -;; bexti a0,a2,20 -;; ret -;; -;; function u0:16: -;; block0: -;; j label1 -;; block1: -;; bexti a0,a2,30 -;; ret -;; -;; function u0:17: -;; block0: -;; j label1 -;; block1: -;; bexti a0,a2,8 -;; ret -;; -;; function u0:18: -;; block0: -;; j label1 -;; block1: -;; bexti a0,a2,10 -;; ret -;; -;; function u0:19: -;; block0: -;; j label1 -;; block1: -;; bexti a0,a2,20 -;; ret -;; -;; function u0:20: -;; block0: -;; j label1 -;; block1: -;; bexti a0,a2,30 -;; ret -;; -;; function u0:21: -;; block0: -;; j label1 -;; block1: -;; bexti a0,a2,40 -;; ret -;; -;; function u0:22: -;; block0: -;; j label1 -;; block1: -;; andi a0,a3,31 -;; binv a0,a2,a0 -;; ret -;; -;; function u0:23: -;; block0: -;; j label1 -;; block1: -;; andi a0,a3,31 -;; binv a0,a2,a0 -;; ret -;; -;; function u0:24: -;; block0: -;; j label1 -;; block1: -;; binv a0,a2,a3 -;; ret -;; -;; function u0:25: -;; block0: -;; j label1 -;; block1: -;; binv a0,a2,a3 -;; ret -;; -;; function u0:26: -;; block0: -;; j label1 -;; block1: -;; binvi a0,a2,10 -;; ret -;; -;; function u0:27: -;; block0: -;; j label1 -;; block1: -;; binvi a0,a2,20 -;; ret -;; -;; function u0:28: -;; block0: -;; j label1 -;; block1: -;; binvi a0,a2,30 -;; ret -;; -;; function u0:29: -;; block0: -;; j label1 -;; block1: -;; binvi a0,a2,40 -;; ret -;; -;; function u0:30: -;; block0: -;; j label1 -;; block1: -;; andi a0,a3,31 -;; bset a0,a2,a0 -;; ret -;; -;; function u0:31: -;; block0: -;; j label1 -;; block1: -;; andi a0,a3,31 -;; bset a0,a2,a0 -;; ret -;; -;; function u0:32: -;; block0: -;; j label1 -;; block1: -;; bset a0,a2,a3 -;; ret -;; -;; function u0:33: -;; block0: -;; j label1 -;; block1: -;; bset a0,a2,a3 -;; ret -;; -;; function u0:34: -;; block0: -;; j label1 -;; block1: -;; bseti a0,a2,10 -;; ret -;; -;; function u0:35: -;; block0: -;; j label1 -;; block1: -;; bseti a0,a2,20 -;; ret -;; -;; function u0:36: -;; block0: -;; j label1 -;; block1: -;; bseti a0,a2,30 -;; ret -;; -;; function u0:37: -;; block0: -;; j label1 -;; block1: -;; bseti a0,a2,40 -;; ret +;; wasm[0]::function[0]: +;; 0: addi sp, sp, -0x10 +;; 4: sd ra, 8(sp) +;; 8: sd s0, 0(sp) +;; c: mv s0, sp +;; 10: andi a0, a3, 0x1f +;; 14: .byte 0x33, 0x15, 0xa6, 0x48 +;; 18: ld ra, 8(sp) +;; 1c: ld s0, 0(sp) +;; 20: addi sp, sp, 0x10 +;; 24: ret +;; +;; wasm[0]::function[1]: +;; 28: addi sp, sp, -0x10 +;; 2c: sd ra, 8(sp) +;; 30: sd s0, 0(sp) +;; 34: mv s0, sp +;; 38: .byte 0x33, 0x15, 0xd6, 0x48 +;; 3c: ld ra, 8(sp) +;; 40: ld s0, 0(sp) +;; 44: addi sp, sp, 0x10 +;; 48: ret +;; +;; wasm[0]::function[2]: +;; 4c: addi sp, sp, -0x10 +;; 50: sd ra, 8(sp) +;; 54: sd s0, 0(sp) +;; 58: mv s0, sp +;; 5c: .byte 0x13, 0x15, 0x46, 0x48 +;; 60: ld ra, 8(sp) +;; 64: ld s0, 0(sp) +;; 68: addi sp, sp, 0x10 +;; 6c: ret +;; +;; wasm[0]::function[3]: +;; 70: addi sp, sp, -0x10 +;; 74: sd ra, 8(sp) +;; 78: sd s0, 0(sp) +;; 7c: mv s0, sp +;; 80: .byte 0x13, 0x15, 0x46, 0x49 +;; 84: ld ra, 8(sp) +;; 88: ld s0, 0(sp) +;; 8c: addi sp, sp, 0x10 +;; 90: ret +;; +;; wasm[0]::function[4]: +;; 94: addi sp, sp, -0x10 +;; 98: sd ra, 8(sp) +;; 9c: sd s0, 0(sp) +;; a0: mv s0, sp +;; a4: .byte 0x13, 0x15, 0x46, 0x48 +;; a8: ld ra, 8(sp) +;; ac: ld s0, 0(sp) +;; b0: addi sp, sp, 0x10 +;; b4: ret +;; +;; wasm[0]::function[5]: +;; b8: addi sp, sp, -0x10 +;; bc: sd ra, 8(sp) +;; c0: sd s0, 0(sp) +;; c4: mv s0, sp +;; c8: .byte 0x13, 0x15, 0x46, 0x4b +;; cc: ld ra, 8(sp) +;; d0: ld s0, 0(sp) +;; d4: addi sp, sp, 0x10 +;; d8: ret +;; +;; wasm[0]::function[6]: +;; dc: addi sp, sp, -0x10 +;; e0: sd ra, 8(sp) +;; e4: sd s0, 0(sp) +;; e8: mv s0, sp +;; ec: andi a0, a3, 0x1f +;; f0: .byte 0x33, 0x55, 0xa6, 0x48 +;; f4: ld ra, 8(sp) +;; f8: ld s0, 0(sp) +;; fc: addi sp, sp, 0x10 +;; 100: ret +;; +;; wasm[0]::function[7]: +;; 104: addi sp, sp, -0x10 +;; 108: sd ra, 8(sp) +;; 10c: sd s0, 0(sp) +;; 110: mv s0, sp +;; 114: andi a0, a3, 0x1f +;; 118: .byte 0x33, 0x55, 0xa6, 0x48 +;; 11c: ld ra, 8(sp) +;; 120: ld s0, 0(sp) +;; 124: addi sp, sp, 0x10 +;; 128: ret +;; +;; wasm[0]::function[8]: +;; 12c: addi sp, sp, -0x10 +;; 130: sd ra, 8(sp) +;; 134: sd s0, 0(sp) +;; 138: mv s0, sp +;; 13c: andi a0, a3, 0x1f +;; 140: .byte 0x33, 0x55, 0xa6, 0x48 +;; 144: ld ra, 8(sp) +;; 148: ld s0, 0(sp) +;; 14c: addi sp, sp, 0x10 +;; 150: ret +;; +;; wasm[0]::function[9]: +;; 154: addi sp, sp, -0x10 +;; 158: sd ra, 8(sp) +;; 15c: sd s0, 0(sp) +;; 160: mv s0, sp +;; 164: andi a0, a3, 0x1f +;; 168: .byte 0x33, 0x55, 0xa6, 0x48 +;; 16c: ld ra, 8(sp) +;; 170: ld s0, 0(sp) +;; 174: addi sp, sp, 0x10 +;; 178: ret +;; +;; wasm[0]::function[10]: +;; 17c: addi sp, sp, -0x10 +;; 180: sd ra, 8(sp) +;; 184: sd s0, 0(sp) +;; 188: mv s0, sp +;; 18c: .byte 0x33, 0x55, 0xd6, 0x48 +;; 190: ld ra, 8(sp) +;; 194: ld s0, 0(sp) +;; 198: addi sp, sp, 0x10 +;; 19c: ret +;; +;; wasm[0]::function[11]: +;; 1a0: addi sp, sp, -0x10 +;; 1a4: sd ra, 8(sp) +;; 1a8: sd s0, 0(sp) +;; 1ac: mv s0, sp +;; 1b0: .byte 0x33, 0x55, 0xd6, 0x48 +;; 1b4: ld ra, 8(sp) +;; 1b8: ld s0, 0(sp) +;; 1bc: addi sp, sp, 0x10 +;; 1c0: ret +;; +;; wasm[0]::function[12]: +;; 1c4: addi sp, sp, -0x10 +;; 1c8: sd ra, 8(sp) +;; 1cc: sd s0, 0(sp) +;; 1d0: mv s0, sp +;; 1d4: .byte 0x33, 0x55, 0xd6, 0x48 +;; 1d8: ld ra, 8(sp) +;; 1dc: ld s0, 0(sp) +;; 1e0: addi sp, sp, 0x10 +;; 1e4: ret +;; +;; wasm[0]::function[13]: +;; 1e8: addi sp, sp, -0x10 +;; 1ec: sd ra, 8(sp) +;; 1f0: sd s0, 0(sp) +;; 1f4: mv s0, sp +;; 1f8: .byte 0x33, 0x55, 0xd6, 0x48 +;; 1fc: ld ra, 8(sp) +;; 200: ld s0, 0(sp) +;; 204: addi sp, sp, 0x10 +;; 208: ret +;; +;; wasm[0]::function[14]: +;; 20c: addi sp, sp, -0x10 +;; 210: sd ra, 8(sp) +;; 214: sd s0, 0(sp) +;; 218: mv s0, sp +;; 21c: .byte 0x13, 0x55, 0xa6, 0x48 +;; 220: ld ra, 8(sp) +;; 224: ld s0, 0(sp) +;; 228: addi sp, sp, 0x10 +;; 22c: ret +;; +;; wasm[0]::function[15]: +;; 230: addi sp, sp, -0x10 +;; 234: sd ra, 8(sp) +;; 238: sd s0, 0(sp) +;; 23c: mv s0, sp +;; 240: .byte 0x13, 0x55, 0x46, 0x49 +;; 244: ld ra, 8(sp) +;; 248: ld s0, 0(sp) +;; 24c: addi sp, sp, 0x10 +;; 250: ret +;; +;; wasm[0]::function[16]: +;; 254: addi sp, sp, -0x10 +;; 258: sd ra, 8(sp) +;; 25c: sd s0, 0(sp) +;; 260: mv s0, sp +;; 264: .byte 0x13, 0x55, 0xe6, 0x49 +;; 268: ld ra, 8(sp) +;; 26c: ld s0, 0(sp) +;; 270: addi sp, sp, 0x10 +;; 274: ret +;; +;; wasm[0]::function[17]: +;; 278: addi sp, sp, -0x10 +;; 27c: sd ra, 8(sp) +;; 280: sd s0, 0(sp) +;; 284: mv s0, sp +;; 288: .byte 0x13, 0x55, 0x86, 0x48 +;; 28c: ld ra, 8(sp) +;; 290: ld s0, 0(sp) +;; 294: addi sp, sp, 0x10 +;; 298: ret +;; +;; wasm[0]::function[18]: +;; 29c: addi sp, sp, -0x10 +;; 2a0: sd ra, 8(sp) +;; 2a4: sd s0, 0(sp) +;; 2a8: mv s0, sp +;; 2ac: .byte 0x13, 0x55, 0xa6, 0x48 +;; 2b0: ld ra, 8(sp) +;; 2b4: ld s0, 0(sp) +;; 2b8: addi sp, sp, 0x10 +;; 2bc: ret +;; +;; wasm[0]::function[19]: +;; 2c0: addi sp, sp, -0x10 +;; 2c4: sd ra, 8(sp) +;; 2c8: sd s0, 0(sp) +;; 2cc: mv s0, sp +;; 2d0: .byte 0x13, 0x55, 0x46, 0x49 +;; 2d4: ld ra, 8(sp) +;; 2d8: ld s0, 0(sp) +;; 2dc: addi sp, sp, 0x10 +;; 2e0: ret +;; +;; wasm[0]::function[20]: +;; 2e4: addi sp, sp, -0x10 +;; 2e8: sd ra, 8(sp) +;; 2ec: sd s0, 0(sp) +;; 2f0: mv s0, sp +;; 2f4: .byte 0x13, 0x55, 0xe6, 0x49 +;; 2f8: ld ra, 8(sp) +;; 2fc: ld s0, 0(sp) +;; 300: addi sp, sp, 0x10 +;; 304: ret +;; +;; wasm[0]::function[21]: +;; 308: addi sp, sp, -0x10 +;; 30c: sd ra, 8(sp) +;; 310: sd s0, 0(sp) +;; 314: mv s0, sp +;; 318: .byte 0x13, 0x55, 0x86, 0x4a +;; 31c: ld ra, 8(sp) +;; 320: ld s0, 0(sp) +;; 324: addi sp, sp, 0x10 +;; 328: ret +;; +;; wasm[0]::function[22]: +;; 32c: addi sp, sp, -0x10 +;; 330: sd ra, 8(sp) +;; 334: sd s0, 0(sp) +;; 338: mv s0, sp +;; 33c: andi a0, a3, 0x1f +;; 340: .byte 0x33, 0x15, 0xa6, 0x68 +;; 344: ld ra, 8(sp) +;; 348: ld s0, 0(sp) +;; 34c: addi sp, sp, 0x10 +;; 350: ret +;; +;; wasm[0]::function[23]: +;; 354: addi sp, sp, -0x10 +;; 358: sd ra, 8(sp) +;; 35c: sd s0, 0(sp) +;; 360: mv s0, sp +;; 364: andi a0, a3, 0x1f +;; 368: .byte 0x33, 0x15, 0xa6, 0x68 +;; 36c: ld ra, 8(sp) +;; 370: ld s0, 0(sp) +;; 374: addi sp, sp, 0x10 +;; 378: ret +;; +;; wasm[0]::function[24]: +;; 37c: addi sp, sp, -0x10 +;; 380: sd ra, 8(sp) +;; 384: sd s0, 0(sp) +;; 388: mv s0, sp +;; 38c: .byte 0x33, 0x15, 0xd6, 0x68 +;; 390: ld ra, 8(sp) +;; 394: ld s0, 0(sp) +;; 398: addi sp, sp, 0x10 +;; 39c: ret +;; +;; wasm[0]::function[25]: +;; 3a0: addi sp, sp, -0x10 +;; 3a4: sd ra, 8(sp) +;; 3a8: sd s0, 0(sp) +;; 3ac: mv s0, sp +;; 3b0: .byte 0x33, 0x15, 0xd6, 0x68 +;; 3b4: ld ra, 8(sp) +;; 3b8: ld s0, 0(sp) +;; 3bc: addi sp, sp, 0x10 +;; 3c0: ret +;; +;; wasm[0]::function[26]: +;; 3c4: addi sp, sp, -0x10 +;; 3c8: sd ra, 8(sp) +;; 3cc: sd s0, 0(sp) +;; 3d0: mv s0, sp +;; 3d4: .byte 0x13, 0x15, 0xa6, 0x68 +;; 3d8: ld ra, 8(sp) +;; 3dc: ld s0, 0(sp) +;; 3e0: addi sp, sp, 0x10 +;; 3e4: ret +;; +;; wasm[0]::function[27]: +;; 3e8: addi sp, sp, -0x10 +;; 3ec: sd ra, 8(sp) +;; 3f0: sd s0, 0(sp) +;; 3f4: mv s0, sp +;; 3f8: .byte 0x13, 0x15, 0x46, 0x69 +;; 3fc: ld ra, 8(sp) +;; 400: ld s0, 0(sp) +;; 404: addi sp, sp, 0x10 +;; 408: ret +;; +;; wasm[0]::function[28]: +;; 40c: addi sp, sp, -0x10 +;; 410: sd ra, 8(sp) +;; 414: sd s0, 0(sp) +;; 418: mv s0, sp +;; 41c: .byte 0x13, 0x15, 0xe6, 0x69 +;; 420: ld ra, 8(sp) +;; 424: ld s0, 0(sp) +;; 428: addi sp, sp, 0x10 +;; 42c: ret +;; +;; wasm[0]::function[29]: +;; 430: addi sp, sp, -0x10 +;; 434: sd ra, 8(sp) +;; 438: sd s0, 0(sp) +;; 43c: mv s0, sp +;; 440: .byte 0x13, 0x15, 0x86, 0x6a +;; 444: ld ra, 8(sp) +;; 448: ld s0, 0(sp) +;; 44c: addi sp, sp, 0x10 +;; 450: ret +;; +;; wasm[0]::function[30]: +;; 454: addi sp, sp, -0x10 +;; 458: sd ra, 8(sp) +;; 45c: sd s0, 0(sp) +;; 460: mv s0, sp +;; 464: andi a0, a3, 0x1f +;; 468: .byte 0x33, 0x15, 0xa6, 0x28 +;; 46c: ld ra, 8(sp) +;; 470: ld s0, 0(sp) +;; 474: addi sp, sp, 0x10 +;; 478: ret +;; +;; wasm[0]::function[31]: +;; 47c: addi sp, sp, -0x10 +;; 480: sd ra, 8(sp) +;; 484: sd s0, 0(sp) +;; 488: mv s0, sp +;; 48c: andi a0, a3, 0x1f +;; 490: .byte 0x33, 0x15, 0xa6, 0x28 +;; 494: ld ra, 8(sp) +;; 498: ld s0, 0(sp) +;; 49c: addi sp, sp, 0x10 +;; 4a0: ret +;; +;; wasm[0]::function[32]: +;; 4a4: addi sp, sp, -0x10 +;; 4a8: sd ra, 8(sp) +;; 4ac: sd s0, 0(sp) +;; 4b0: mv s0, sp +;; 4b4: .byte 0x33, 0x15, 0xd6, 0x28 +;; 4b8: ld ra, 8(sp) +;; 4bc: ld s0, 0(sp) +;; 4c0: addi sp, sp, 0x10 +;; 4c4: ret +;; +;; wasm[0]::function[33]: +;; 4c8: addi sp, sp, -0x10 +;; 4cc: sd ra, 8(sp) +;; 4d0: sd s0, 0(sp) +;; 4d4: mv s0, sp +;; 4d8: .byte 0x33, 0x15, 0xd6, 0x28 +;; 4dc: ld ra, 8(sp) +;; 4e0: ld s0, 0(sp) +;; 4e4: addi sp, sp, 0x10 +;; 4e8: ret +;; +;; wasm[0]::function[34]: +;; 4ec: addi sp, sp, -0x10 +;; 4f0: sd ra, 8(sp) +;; 4f4: sd s0, 0(sp) +;; 4f8: mv s0, sp +;; 4fc: .byte 0x13, 0x15, 0xa6, 0x28 +;; 500: ld ra, 8(sp) +;; 504: ld s0, 0(sp) +;; 508: addi sp, sp, 0x10 +;; 50c: ret +;; +;; wasm[0]::function[35]: +;; 510: addi sp, sp, -0x10 +;; 514: sd ra, 8(sp) +;; 518: sd s0, 0(sp) +;; 51c: mv s0, sp +;; 520: .byte 0x13, 0x15, 0x46, 0x29 +;; 524: ld ra, 8(sp) +;; 528: ld s0, 0(sp) +;; 52c: addi sp, sp, 0x10 +;; 530: ret +;; +;; wasm[0]::function[36]: +;; 534: addi sp, sp, -0x10 +;; 538: sd ra, 8(sp) +;; 53c: sd s0, 0(sp) +;; 540: mv s0, sp +;; 544: .byte 0x13, 0x15, 0xe6, 0x29 +;; 548: ld ra, 8(sp) +;; 54c: ld s0, 0(sp) +;; 550: addi sp, sp, 0x10 +;; 554: ret +;; +;; wasm[0]::function[37]: +;; 558: addi sp, sp, -0x10 +;; 55c: sd ra, 8(sp) +;; 560: sd s0, 0(sp) +;; 564: mv s0, sp +;; 568: .byte 0x13, 0x15, 0x86, 0x2a +;; 56c: ld ra, 8(sp) +;; 570: ld s0, 0(sp) +;; 574: addi sp, sp, 0x10 +;; 578: ret diff --git a/tests/disas/x64-bmi1.wat b/tests/disas/x64-bmi1.wat index b92c4581079e..cbf1018a329d 100644 --- a/tests/disas/x64-bmi1.wat +++ b/tests/disas/x64-bmi1.wat @@ -45,132 +45,82 @@ (func (export "andn64") (param i64 i64) (result i64) (i64.and (local.get 0) (i64.xor (local.get 1) (i64.const -1)))) ) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; blsil %edx, %eax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: blsil %edx, %eax +;; 9: movq %rbp, %rsp +;; c: popq %rbp +;; d: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; blsiq %rdx, %rax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 10: pushq %rbp +;; 11: movq %rsp, %rbp +;; 14: blsiq %rdx, %rax +;; 19: movq %rbp, %rsp +;; 1c: popq %rbp +;; 1d: retq ;; -;; function u0:2: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; blsrl %edx, %eax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[2]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: blsrl %edx, %eax +;; 29: movq %rbp, %rsp +;; 2c: popq %rbp +;; 2d: retq ;; -;; function u0:3: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; blsrq %rdx, %rax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[3]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: blsrq %rdx, %rax +;; 39: movq %rbp, %rsp +;; 3c: popq %rbp +;; 3d: retq ;; -;; function u0:4: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; blsmskl %edx, %eax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[4]: +;; 40: pushq %rbp +;; 41: movq %rsp, %rbp +;; 44: blsmskl %edx, %eax +;; 49: movq %rbp, %rsp +;; 4c: popq %rbp +;; 4d: retq ;; -;; function u0:5: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; blsmskq %rdx, %rax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[5]: +;; 50: pushq %rbp +;; 51: movq %rsp, %rbp +;; 54: blsmskq %rdx, %rax +;; 59: movq %rbp, %rsp +;; 5c: popq %rbp +;; 5d: retq ;; -;; function u0:6: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; tzcntl %edx, %eax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[6]: +;; 60: pushq %rbp +;; 61: movq %rsp, %rbp +;; 64: tzcntl %edx, %eax +;; 68: movq %rbp, %rsp +;; 6b: popq %rbp +;; 6c: retq ;; -;; function u0:7: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; tzcntq %rdx, %rax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[7]: +;; 70: pushq %rbp +;; 71: movq %rsp, %rbp +;; 74: tzcntq %rdx, %rax +;; 79: movq %rbp, %rsp +;; 7c: popq %rbp +;; 7d: retq ;; -;; function u0:8: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; andn %edx, %ecx, %eax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[8]: +;; 80: pushq %rbp +;; 81: movq %rsp, %rbp +;; 84: andnl %edx, %ecx, %eax +;; 89: movq %rbp, %rsp +;; 8c: popq %rbp +;; 8d: retq ;; -;; function u0:9: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; andn %rdx, %rcx, %rax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[9]: +;; 90: pushq %rbp +;; 91: movq %rsp, %rbp +;; 94: andnq %rdx, %rcx, %rax +;; 99: movq %rbp, %rsp +;; 9c: popq %rbp +;; 9d: retq diff --git a/tests/disas/x64-bmi2.wat b/tests/disas/x64-bmi2.wat index f6196f44724c..826e72f5c5e7 100644 --- a/tests/disas/x64-bmi2.wat +++ b/tests/disas/x64-bmi2.wat @@ -42,134 +42,84 @@ (func (export "sarx64") (param i64 i64) (result i64) (i64.shr_s (local.get 0) (local.get 1))) ) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; andl %ecx, $31, %ecx -;; bzhi %edx, %ecx, %eax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: andl $0x1f, %ecx +;; 7: bzhil %ecx, %edx, %eax +;; c: movq %rbp, %rsp +;; f: popq %rbp +;; 10: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; andq %rcx, $63, %rcx -;; bzhi %rdx, %rcx, %rax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: andq $0x3f, %rcx +;; 28: bzhiq %rcx, %rdx, %rax +;; 2d: movq %rbp, %rsp +;; 30: popq %rbp +;; 31: retq ;; -;; function u0:2: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; rorxl $8, %edx, %eax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[2]: +;; 40: pushq %rbp +;; 41: movq %rsp, %rbp +;; 44: rorxl $8, %edx, %eax +;; 4a: movq %rbp, %rsp +;; 4d: popq %rbp +;; 4e: retq ;; -;; function u0:3: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; rorxq $55, %rdx, %rax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[3]: +;; 50: pushq %rbp +;; 51: movq %rsp, %rbp +;; 54: rorxq $0x37, %rdx, %rax +;; 5a: movq %rbp, %rsp +;; 5d: popq %rbp +;; 5e: retq ;; -;; function u0:4: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; shlx %edx, %ecx, %eax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[4]: +;; 60: pushq %rbp +;; 61: movq %rsp, %rbp +;; 64: shlxl %ecx, %edx, %eax +;; 69: movq %rbp, %rsp +;; 6c: popq %rbp +;; 6d: retq ;; -;; function u0:5: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; shlx %rdx, %rcx, %rax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[5]: +;; 70: pushq %rbp +;; 71: movq %rsp, %rbp +;; 74: shlxq %rcx, %rdx, %rax +;; 79: movq %rbp, %rsp +;; 7c: popq %rbp +;; 7d: retq ;; -;; function u0:6: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; shrx %edx, %ecx, %eax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[6]: +;; 80: pushq %rbp +;; 81: movq %rsp, %rbp +;; 84: shrxl %ecx, %edx, %eax +;; 89: movq %rbp, %rsp +;; 8c: popq %rbp +;; 8d: retq ;; -;; function u0:7: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; shrx %rdx, %rcx, %rax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[7]: +;; 90: pushq %rbp +;; 91: movq %rsp, %rbp +;; 94: shrxq %rcx, %rdx, %rax +;; 99: movq %rbp, %rsp +;; 9c: popq %rbp +;; 9d: retq ;; -;; function u0:8: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; sarx %edx, %ecx, %eax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[8]: +;; a0: pushq %rbp +;; a1: movq %rsp, %rbp +;; a4: sarxl %ecx, %edx, %eax +;; a9: movq %rbp, %rsp +;; ac: popq %rbp +;; ad: retq ;; -;; function u0:9: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; sarx %rdx, %rcx, %rax -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[9]: +;; b0: pushq %rbp +;; b1: movq %rsp, %rbp +;; b4: sarxq %rcx, %rdx, %rax +;; b9: movq %rbp, %rsp +;; bc: popq %rbp +;; bd: retq diff --git a/tests/disas/x64-pmin.wat b/tests/disas/x64-pmin.wat index 69ca39a3341e..e1da9a5386d2 100644 --- a/tests/disas/x64-pmin.wat +++ b/tests/disas/x64-pmin.wat @@ -31,106 +31,66 @@ (func (export "f64x2.pmax") (param v128 v128) (result v128) (f64x2.pmax (local.get 0) (local.get 1))) ) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; vminss %xmm1, %xmm0, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: vminss %xmm0, %xmm1, %xmm0 +;; 8: movq %rbp, %rsp +;; b: popq %rbp +;; c: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; vmaxss %xmm1, %xmm0, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 10: pushq %rbp +;; 11: movq %rsp, %rbp +;; 14: vmaxss %xmm0, %xmm1, %xmm0 +;; 18: movq %rbp, %rsp +;; 1b: popq %rbp +;; 1c: retq ;; -;; function u0:2: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; vminsd %xmm1, %xmm0, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[2]: +;; 20: pushq %rbp +;; 21: movq %rsp, %rbp +;; 24: vminsd %xmm0, %xmm1, %xmm0 +;; 28: movq %rbp, %rsp +;; 2b: popq %rbp +;; 2c: retq ;; -;; function u0:3: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; vmaxsd %xmm1, %xmm0, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[3]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: vmaxsd %xmm0, %xmm1, %xmm0 +;; 38: movq %rbp, %rsp +;; 3b: popq %rbp +;; 3c: retq ;; -;; function u0:4: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; vminps %xmm1, %xmm0, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[4]: +;; 40: pushq %rbp +;; 41: movq %rsp, %rbp +;; 44: vminps %xmm0, %xmm1, %xmm0 +;; 48: movq %rbp, %rsp +;; 4b: popq %rbp +;; 4c: retq ;; -;; function u0:5: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; vmaxps %xmm1, %xmm0, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[5]: +;; 50: pushq %rbp +;; 51: movq %rsp, %rbp +;; 54: vmaxps %xmm0, %xmm1, %xmm0 +;; 58: movq %rbp, %rsp +;; 5b: popq %rbp +;; 5c: retq ;; -;; function u0:6: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; vminpd %xmm1, %xmm0, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[6]: +;; 60: pushq %rbp +;; 61: movq %rsp, %rbp +;; 64: vminpd %xmm0, %xmm1, %xmm0 +;; 68: movq %rbp, %rsp +;; 6b: popq %rbp +;; 6c: retq ;; -;; function u0:7: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; vmaxpd %xmm1, %xmm0, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[7]: +;; 70: pushq %rbp +;; 71: movq %rsp, %rbp +;; 74: vmaxpd %xmm0, %xmm1, %xmm0 +;; 78: movq %rbp, %rsp +;; 7b: popq %rbp +;; 7c: retq diff --git a/tests/disas/x64-relaxed-simd-deterministic.wat b/tests/disas/x64-relaxed-simd-deterministic.wat index 90feb7e32f28..f6b72ac11b3f 100644 --- a/tests/disas/x64-relaxed-simd-deterministic.wat +++ b/tests/disas/x64-relaxed-simd-deterministic.wat @@ -37,127 +37,116 @@ ) ) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; vcmpps $0, %xmm0, %xmm0, %xmm5 -;; vandps %xmm0, %xmm5, %xmm7 -;; vpxor %xmm5, %xmm7, %xmm1 -;; vcvttps2dq %xmm7, %xmm3 -;; vpand %xmm3, %xmm1, %xmm5 -;; vpsrad %xmm5, $31, %xmm7 -;; vpxor %xmm7, %xmm3, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: vcmpeqps %xmm0, %xmm0, %xmm5 +;; 9: vandps %xmm5, %xmm0, %xmm7 +;; d: vpxor %xmm7, %xmm5, %xmm1 +;; 11: vcvttps2dq %xmm7, %xmm3 +;; 15: vpand %xmm1, %xmm3, %xmm5 +;; 19: vpsrad $0x1f, %xmm5, %xmm7 +;; 1e: vpxor %xmm3, %xmm7, %xmm0 +;; 22: movq %rbp, %rsp +;; 25: popq %rbp +;; 26: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; uninit %xmm5 -;; vxorps %xmm5, %xmm5, %xmm7 -;; vmaxps %xmm0, %xmm7, %xmm2 -;; vpcmpeqd %xmm7, %xmm7, %xmm3 -;; vpsrld %xmm3, $1, %xmm5 -;; vcvtdq2ps %xmm5, %xmm7 -;; vcvttps2dq %xmm2, %xmm1 -;; vsubps %xmm2, %xmm7, %xmm3 -;; vcmpps $2, %xmm7, %xmm3, %xmm5 -;; vcvttps2dq %xmm3, %xmm7 -;; vpxor %xmm7, %xmm5, %xmm2 -;; uninit %xmm3 -;; vpxor %xmm3, %xmm3, %xmm5 -;; vpmaxsd %xmm2, %xmm5, %xmm7 -;; vpaddd %xmm7, %xmm1, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 30: pushq %rbp +;; 31: movq %rsp, %rbp +;; 34: vxorps %xmm5, %xmm5, %xmm7 +;; 38: vmaxps %xmm7, %xmm0, %xmm2 +;; 3c: vpcmpeqd %xmm7, %xmm7, %xmm3 +;; 40: vpsrld $1, %xmm3, %xmm5 +;; 45: vcvtdq2ps %xmm5, %xmm7 +;; 49: vcvttps2dq %xmm2, %xmm1 +;; 4d: vsubps %xmm7, %xmm2, %xmm3 +;; 51: vcmpleps %xmm3, %xmm7, %xmm5 +;; 56: vcvttps2dq %xmm3, %xmm7 +;; 5a: vpxor %xmm5, %xmm7, %xmm2 +;; 5e: vpxor %xmm3, %xmm3, %xmm5 +;; 62: vpmaxsd %xmm5, %xmm2, %xmm7 +;; 67: vpaddd %xmm1, %xmm7, %xmm0 +;; 6b: movq %rbp, %rsp +;; 6e: popq %rbp +;; 6f: retq ;; -;; function u0:2: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; vcmppd $0, %xmm0, %xmm0, %xmm5 -;; vandps %xmm5, const(0), %xmm7 -;; vminpd %xmm0, %xmm7, %xmm1 -;; vcvttpd2dq %xmm1, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[2]: +;; 70: pushq %rbp +;; 71: movq %rsp, %rbp +;; 74: vcmpeqpd %xmm0, %xmm0, %xmm5 +;; 79: vandps 0xf(%rip), %xmm5, %xmm7 +;; 81: vminpd %xmm7, %xmm0, %xmm1 +;; 85: vcvttpd2dq %xmm1, %xmm0 +;; 89: movq %rbp, %rsp +;; 8c: popq %rbp +;; 8d: retq +;; 8e: addb %al, (%rax) +;; 90: addb %al, (%rax) +;; 92: sarb $0xff, %bh ;; -;; function u0:3: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; uninit %xmm5 -;; vxorpd %xmm5, %xmm5, %xmm7 -;; vmaxpd %xmm0, %xmm7, %xmm1 -;; vminpd %xmm1, const(0), %xmm3 -;; vroundpd $3, %xmm3, %xmm5 -;; vaddpd %xmm5, const(1), %xmm0 -;; vshufps $136, %xmm0, %xmm7, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[3]: +;; a0: pushq %rbp +;; a1: movq %rsp, %rbp +;; a4: vxorpd %xmm5, %xmm5, %xmm7 +;; a8: vmaxpd %xmm7, %xmm0, %xmm1 +;; ac: vminpd 0x1c(%rip), %xmm1, %xmm3 +;; b4: vroundpd $3, %xmm3, %xmm5 +;; ba: vaddpd 0x1e(%rip), %xmm5, %xmm0 +;; c2: vshufps $0x88, %xmm7, %xmm0, %xmm0 +;; c7: movq %rbp, %rsp +;; ca: popq %rbp +;; cb: retq +;; cc: addb %al, (%rax) +;; ce: addb %al, (%rax) +;; d0: addb %al, (%rax) +;; d2: loopne 0xd3 ;; -;; function u0:4: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; vpmovsxbw %xmm0, %xmm6 -;; vpmovsxbw %xmm1, %xmm7 -;; vpmullw %xmm6, %xmm7, %xmm6 -;; vpalignr $8, %xmm0, %xmm0, %xmm5 -;; vpmovsxbw %xmm5, %xmm7 -;; vpalignr $8, %xmm1, %xmm1, %xmm5 -;; vpmovsxbw %xmm5, %xmm0 -;; vpmullw %xmm7, %xmm0, %xmm7 -;; vphaddw %xmm6, %xmm7, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[4]: +;; f0: pushq %rbp +;; f1: movq %rsp, %rbp +;; f4: vpmovsxbw %xmm0, %xmm6 +;; f9: vpmovsxbw %xmm1, %xmm7 +;; fe: vpmullw %xmm7, %xmm6, %xmm6 +;; 102: vpalignr $8, %xmm0, %xmm0, %xmm5 +;; 108: vpmovsxbw %xmm5, %xmm7 +;; 10d: vpalignr $8, %xmm1, %xmm1, %xmm5 +;; 113: vpmovsxbw %xmm5, %xmm0 +;; 118: vpmullw %xmm0, %xmm7, %xmm7 +;; 11c: vphaddw %xmm7, %xmm6, %xmm0 +;; 121: movq %rbp, %rsp +;; 124: popq %rbp +;; 125: retq ;; -;; function u0:5: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; vpmovsxbw %xmm0, %xmm3 -;; vpmovsxbw %xmm1, %xmm4 -;; vpmullw %xmm3, %xmm4, %xmm3 -;; vpalignr $8, %xmm0, %xmm0, %xmm0 -;; vpmovsxbw %xmm0, %xmm4 -;; vpalignr $8, %xmm1, %xmm1, %xmm0 -;; vpmovsxbw %xmm0, %xmm5 -;; vpmullw %xmm4, %xmm5, %xmm1 -;; vphaddw %xmm3, %xmm1, %xmm1 -;; vpmaddwd %xmm1, const(0), %xmm1 -;; vpaddd %xmm1, %xmm2, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[5]: +;; 130: pushq %rbp +;; 131: movq %rsp, %rbp +;; 134: vpmovsxbw %xmm0, %xmm3 +;; 139: vpmovsxbw %xmm1, %xmm4 +;; 13e: vpmullw %xmm4, %xmm3, %xmm3 +;; 142: vpalignr $8, %xmm0, %xmm0, %xmm0 +;; 148: vpmovsxbw %xmm0, %xmm4 +;; 14d: vpalignr $8, %xmm1, %xmm1, %xmm0 +;; 153: vpmovsxbw %xmm0, %xmm5 +;; 158: vpmullw %xmm5, %xmm4, %xmm1 +;; 15c: vphaddw %xmm1, %xmm3, %xmm1 +;; 161: vpmaddwd 0x17(%rip), %xmm1, %xmm1 +;; 169: vpaddd %xmm2, %xmm1, %xmm0 +;; 16d: movq %rbp, %rsp +;; 170: popq %rbp +;; 171: retq +;; 172: addb %al, (%rax) +;; 174: addb %al, (%rax) +;; 176: addb %al, (%rax) +;; 178: addb %al, (%rax) +;; 17a: addb %al, (%rax) +;; 17c: addb %al, (%rax) +;; 17e: addb %al, (%rax) +;; 180: addl %eax, (%rax) +;; 182: addl %eax, (%rax) +;; 184: addl %eax, (%rax) +;; 186: addl %eax, (%rax) +;; 188: addl %eax, (%rax) +;; 18a: addl %eax, (%rax) +;; 18c: addl %eax, (%rax) +;; 18e: addl %eax, (%rax) diff --git a/tests/disas/x64-relaxed-simd.wat b/tests/disas/x64-relaxed-simd.wat index db8a4150fff8..44a037d9547d 100644 --- a/tests/disas/x64-relaxed-simd.wat +++ b/tests/disas/x64-relaxed-simd.wat @@ -37,105 +37,85 @@ ) ) -;; function u0:0: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; cvttps2dq %xmm0, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[0]: +;; 0: pushq %rbp +;; 1: movq %rsp, %rbp +;; 4: cvttps2dq %xmm0, %xmm0 +;; 8: movq %rbp, %rsp +;; b: popq %rbp +;; c: retq ;; -;; function u0:1: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; uninit %xmm1 -;; xorps %xmm1, %xmm1, %xmm1 -;; maxps %xmm0, %xmm1, %xmm0 -;; pcmpeqd %xmm1, %xmm1, %xmm1 -;; psrld %xmm1, $1, %xmm1 -;; cvtdq2ps %xmm1, %xmm2 -;; cvttps2dq %xmm0, %xmm1 -;; subps %xmm0, %xmm2, %xmm0 -;; cmpps $2, %xmm2, %xmm0, %xmm2 -;; cvttps2dq %xmm0, %xmm0 -;; pxor %xmm0, %xmm2, %xmm0 -;; uninit %xmm4 -;; pxor %xmm4, %xmm4, %xmm4 -;; pmaxsd %xmm0, %xmm4, %xmm0 -;; paddd %xmm0, %xmm1, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[1]: +;; 10: pushq %rbp +;; 11: movq %rsp, %rbp +;; 14: xorps %xmm1, %xmm1 +;; 17: maxps %xmm1, %xmm0 +;; 1a: pcmpeqd %xmm1, %xmm1 +;; 1e: psrld $1, %xmm1 +;; 23: cvtdq2ps %xmm1, %xmm2 +;; 26: cvttps2dq %xmm0, %xmm1 +;; 2a: subps %xmm2, %xmm0 +;; 2d: cmpleps %xmm0, %xmm2 +;; 31: cvttps2dq %xmm0, %xmm0 +;; 35: pxor %xmm2, %xmm0 +;; 39: pxor %xmm4, %xmm4 +;; 3d: pmaxsd %xmm4, %xmm0 +;; 42: paddd %xmm1, %xmm0 +;; 46: movq %rbp, %rsp +;; 49: popq %rbp +;; 4a: retq ;; -;; function u0:2: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; cvttpd2dq %xmm0, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[2]: +;; 50: pushq %rbp +;; 51: movq %rsp, %rbp +;; 54: cvttpd2dq %xmm0, %xmm0 +;; 58: movq %rbp, %rsp +;; 5b: popq %rbp +;; 5c: retq ;; -;; function u0:3: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; uninit %xmm6 -;; xorpd %xmm6, %xmm6, %xmm6 -;; maxpd %xmm0, %xmm6, %xmm0 -;; minpd %xmm0, const(0), %xmm0 -;; roundpd $3, %xmm0, %xmm0 -;; addpd %xmm0, const(1), %xmm0 -;; shufps $136, %xmm0, %xmm6, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[3]: +;; 60: pushq %rbp +;; 61: movq %rsp, %rbp +;; 64: xorpd %xmm6, %xmm6 +;; 68: maxpd %xmm6, %xmm0 +;; 6c: minpd 0x1c(%rip), %xmm0 +;; 74: roundpd $3, %xmm0, %xmm0 +;; 7a: addpd 0x1e(%rip), %xmm0 +;; 82: shufps $0x88, %xmm6, %xmm0 +;; 86: movq %rbp, %rsp +;; 89: popq %rbp +;; 8a: retq +;; 8b: addb %al, (%rax) +;; 8d: addb %al, (%rax) +;; 8f: addb %al, (%rax) +;; 91: addb %ah, %al ;; -;; function u0:4: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; movdqa %xmm0, %xmm7 -;; movdqa %xmm1, %xmm0 -;; pmaddubsw %xmm0, %xmm7, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[4]: +;; b0: pushq %rbp +;; b1: movq %rsp, %rbp +;; b4: movdqa %xmm0, %xmm7 +;; b8: movdqa %xmm1, %xmm0 +;; bc: pmaddubsw %xmm7, %xmm0 +;; c1: movq %rbp, %rsp +;; c4: popq %rbp +;; c5: retq ;; -;; function u0:5: -;; pushq %rbp -;; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 } -;; movq %rsp, %rbp -;; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 } -;; block0: -;; jmp label1 -;; block1: -;; pmaddubsw %xmm1, %xmm0, %xmm1 -;; pmaddwd %xmm1, const(0), %xmm1 -;; movdqa %xmm1, %xmm0 -;; paddd %xmm0, %xmm2, %xmm0 -;; movq %rbp, %rsp -;; popq %rbp -;; ret +;; wasm[0]::function[5]: +;; d0: pushq %rbp +;; d1: movq %rsp, %rbp +;; d4: pmaddubsw %xmm0, %xmm1 +;; d9: pmaddwd 0xf(%rip), %xmm1 +;; e1: movdqa %xmm1, %xmm0 +;; e5: paddd %xmm2, %xmm0 +;; e9: movq %rbp, %rsp +;; ec: popq %rbp +;; ed: retq +;; ee: addb %al, (%rax) +;; f0: addl %eax, (%rax) +;; f2: addl %eax, (%rax) +;; f4: addl %eax, (%rax) +;; f6: addl %eax, (%rax) +;; f8: addl %eax, (%rax) +;; fa: addl %eax, (%rax) +;; fc: addl %eax, (%rax) +;; fe: addl %eax, (%rax) From aa9036695d32572b168c05a6562fc678b0c1ff8d Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Tue, 26 Mar 2024 07:28:21 -0700 Subject: [PATCH 3/3] Fix PR-based CI when too many files are changed --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index dbb829e933e4..2c75044a9aea 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -158,7 +158,7 @@ jobs: else pr=${{ github.event.number }} gh pr view $pr --json commits | tee commits.log - gh pr diff $pr --name-only | tee names.log + gh pr diff $pr --name-only | tee names.log || echo "failed to get files" if [ "${{ github.base_ref }}" != "main" ]; then run_full=true elif grep -q 'prtest:full' commits.log; then