diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/display.rs | 5 | ||||
-rw-r--r-- | src/lib.rs | 9 |
2 files changed, 9 insertions, 5 deletions
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(), @@ -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)?; |