From 264f2a457a19f86a3b82f40e5a57b990ae8d354f Mon Sep 17 00:00:00 2001 From: iximeow Date: Mon, 7 Apr 2025 02:50:52 -0700 Subject: sfrecipa, more test cases, more inst variants --- src/display.rs | 5 +++++ src/lib.rs | 9 ++++----- 2 files changed, 9 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/display.rs b/src/display.rs index 352ff3f..5ce3d80 100644 --- a/src/display.rs +++ b/src/display.rs @@ -146,6 +146,11 @@ impl fmt::Display for Instruction { return write!(f, "{} = add(clb({}), {})", self.dest.as_ref().unwrap(), self.sources[0], self.sources[1]); } + Opcode::SfRecipa => { + return write!(f, "{}, {} = {}({}, {})", + self.dest.as_ref().unwrap(), self.alt_dest.as_ref().unwrap(), + self.opcode, self.sources[0], self.sources[1]); + } Opcode::SfInvsqrta => { return write!(f, "{}, {} = {}({})", self.dest.as_ref().unwrap(), self.alt_dest.as_ref().unwrap(), diff --git a/src/lib.rs b/src/lib.rs index 90c87e0..2e1aa74 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -787,7 +787,6 @@ pub enum Opcode { SfFixupr, SfFixupn, SfFixupd, - SfRecipa, Swiz, Shuffeb, Shuffob, @@ -851,6 +850,7 @@ pub enum Opcode { AddClb, AddAdd, AddSub, + SfRecipa, SfInvsqrta, Any8VcmpbEq, @@ -6025,12 +6025,11 @@ fn decode_instruction< handler.rounded(RoundingMode::Round)?; } 0b1000 => { - handler.on_opcode_decoded(Vmpywoh)?; - handler.saturate()?; - handler.rounded(RoundingMode::Round)?; + handler.on_opcode_decoded(Vrmpywoh)?; } 0b1001 => { - handler.on_opcode_decoded(Vrmpywoh)?; + handler.on_opcode_decoded(Vmpyweuh)?; + handler.saturate()?; } 0b1010 => { handler.on_opcode_decoded(Vcmpyi)?; -- cgit v1.1