summaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2025-04-06 14:21:55 -0700
committeriximeow <me@iximeow.net>2025-04-06 14:21:55 -0700
commite76ca92f31d64b967dfa0e2debb51841bf93505f (patch)
tree7b7cf02286b7cb332172f4aa166eb93e7a74d600 /src/lib.rs
parentc1913d640dc76b416082019544e7a74305875296 (diff)
shift vs sat order in display, vxaddsubh/vxsubaddh/extractu/decbin
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/lib.rs b/src/lib.rs
index c9b2bb0..650c7f9 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -4520,13 +4520,8 @@ fn decode_instruction<
} else {
handler.on_dest_decoded(Operand::gprpair(ddddd)?)?;
}
- if op_lo < 0b10 {
- handler.on_source_decoded(Operand::gprpair(sssss)?)?;
- handler.on_source_decoded(Operand::gprpair(ttttt)?)?;
- } else {
- handler.on_source_decoded(Operand::gprpair(ttttt)?)?;
- handler.on_source_decoded(Operand::gprpair(sssss)?)?;
- }
+ handler.on_source_decoded(Operand::gprpair(sssss)?)?;
+ handler.on_source_decoded(Operand::gprpair(ttttt)?)?;
}
0b10 => {
static OPCODES: [Option<Opcode>; 8] = [
@@ -4548,8 +4543,9 @@ fn decode_instruction<
}
}
_ => {
- static OPCODES: [Opcode; 4] = [
- Opcode::Vxaddsubh, Opcode::Vxsubaddh, Opcode::Extractu, Opcode::Decbin,
+ static OPCODES: [Opcode; 8] = [
+ Opcode::Vxaddsubh, Opcode::Vxaddsubh, Opcode::Vxsubaddh, Opcode::Vxsubaddh,
+ Opcode::Extractu, Opcode::Extractu, Opcode::Decbin, Opcode::Decbin,
];
handler.on_opcode_decoded(OPCODES[op_lo as usize])?;
@@ -4557,7 +4553,7 @@ fn decode_instruction<
handler.on_source_decoded(Operand::gprpair(sssss)?)?;
handler.on_source_decoded(Operand::gprpair(ttttt)?)?;
- if op_lo < 0b10 {
+ if op_lo < 0b100 {
handler.rounded(RoundingMode::Round)?;
handler.shift_right(1)?;
handler.saturate()?;