From 93cc9f8517d35f1375b6414d00b127ce9a79ca4d Mon Sep 17 00:00:00 2001 From: Johnathan Sharratt Date: Sun, 2 Apr 2023 18:51:32 +0200 Subject: [PATCH] Added missing ASM instructions for wasix on singlepass (#3731) --- lib/compiler-singlepass/src/emitter_x64.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/compiler-singlepass/src/emitter_x64.rs b/lib/compiler-singlepass/src/emitter_x64.rs index 8a04a45c42d..713dbd5ee14 100644 --- a/lib/compiler-singlepass/src/emitter_x64.rs +++ b/lib/compiler-singlepass/src/emitter_x64.rs @@ -1471,12 +1471,24 @@ impl EmitterX64 for AssemblerX64 { (Size::S32, Location::Memory(src, disp), Size::S64, Location::GPR(dst)) => { dynasm!(self ; mov Rd(dst as u8), DWORD [Rq(src as u8) + disp]); } - (Size::S32, Location::Imm64(imm), Size::S64, Location::GPR(dst)) => { + (Size::S8, Location::Imm32(imm), Size::S32, Location::GPR(dst)) => { + dynasm!(self ; mov Rq(dst as u8), imm as i32); + } + (Size::S16, Location::Imm32(imm), Size::S64, Location::GPR(dst)) => { + dynasm!(self ; mov Rq(dst as u8), imm as i32); + } + (Size::S32, Location::Imm32(imm), Size::S64, Location::GPR(dst)) => { + dynasm!(self ; mov Rq(dst as u8), imm as i32); + } + (Size::S8, Location::Imm64(imm), Size::S32, Location::GPR(dst)) => { dynasm!(self ; mov Rq(dst as u8), imm as i32); } (Size::S16, Location::Imm64(imm), Size::S64, Location::GPR(dst)) => { dynasm!(self ; mov Rq(dst as u8), imm as i32); } + (Size::S32, Location::Imm64(imm), Size::S64, Location::GPR(dst)) => { + dynasm!(self ; mov Rq(dst as u8), imm as i32); + } _ => { codegen_error!( "singlepass can't emit MOVZX {:?} {:?} {:?} {:?}",