diff --git a/src/asm/mod.rs b/src/asm/mod.rs index f069c33..97c214c 100644 --- a/src/asm/mod.rs +++ b/src/asm/mod.rs @@ -531,6 +531,12 @@ pub enum Pseudo { }, /// mv rd, rs Mv { rd: Register, rs: Register }, + /// fmv.s rd, rs or fmv.d rd, rs + Fmv { + data_size: DataSize, + rd: Register, + rs: Register, + }, /// neg(w) rd, rs Neg { data_size: Option, diff --git a/src/asm/write_asm.rs b/src/asm/write_asm.rs index d66e4cd..3f54159 100644 --- a/src/asm/write_asm.rs +++ b/src/asm/write_asm.rs @@ -386,6 +386,12 @@ impl WriteString for Pseudo { match self { Self::Li { rd, imm } => format!("li\t{},{}", rd.write_string(), *imm as i64), Self::Mv { rd, rs } => format!("mv\t{},{}", rd.write_string(), rs.write_string()), + Self::Fmv { data_size, rd, rs } => format!( + "fmv.{}\t{},{}", + data_size.write_string(), + rd.write_string(), + rs.write_string() + ), Self::Neg { data_size, rd, rs } => format!( "neg{}\t{},{}", data_size.write_string(),