summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/display.rs5
-rw-r--r--src/lib.rs9
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(),
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)?;