formatting
/ build (push) Successful in 24s Details

This commit is contained in:
45Tatami 2024-04-12 22:19:40 +02:00
parent 3e183d51ec
commit d6bec3fa88
2 changed files with 15 additions and 22 deletions

View File

@ -227,21 +227,16 @@ impl TryFrom<u8> for Operation {
let cc = (value & 0b11_000) >> 3;
(Jr(JmpCond::Flags(cc)), 3, 2) // TODO cycle can be 2 or 3!
}
_ if (value & (HD_MSK | T1_MSK) == 0b10_110_000) => {
(Bit(Or, Reg(Register::try_from(value & 0b111)?)), 1, 1)
}
_ if (value & (HD_MSK | T1_MSK) == 0b10_101_000) => {
(Bit(Xor, Reg(Register::try_from(value & 0b111)?)), 1, 1)
}
_ if (value & (HD_MSK | T1_MSK) == 0b10_100_000) => {
(Bit(And, Reg(Register::try_from(value & 0b111)?)), 1, 1)
}
_ if (value & (HD_MSK | 0b1_000 | T2_MSK) == 0b00_000_011) => {
(Inc(Reg(Register::from16_rep(payload(value)))), 2, 1)
}
_ if (value & (HD_MSK | 0b1_000 | T2_MSK) == 0b00_001_011) => {
(Dec(Reg(Register::from16_rep(payload(value)))), 2, 1)
}
_ if (value & (HD_MSK | T1_MSK) == 0b10_110_000) =>
(Bit(Or, Reg(Register::try_from(value & 0b111)?)), 1, 1),
_ if (value & (HD_MSK | T1_MSK) == 0b10_101_000) =>
(Bit(Xor, Reg(Register::try_from(value & 0b111)?)), 1, 1),
_ if (value & (HD_MSK | T1_MSK) == 0b10_100_000) =>
(Bit(And, Reg(Register::try_from(value & 0b111)?)), 1, 1),
_ if (value & (HD_MSK | 0b1_000 | T2_MSK) == 0b00_000_011) =>
(Inc(Reg(Register::from16_rep(payload(value)))), 2, 1),
_ if (value & (HD_MSK | 0b1_000 | T2_MSK) == 0b00_001_011) =>
(Dec(Reg(Register::from16_rep(payload(value)))), 2, 1),
_ if (value & (HD_MSK | T2_MSK) == 0b00_000_100) => {
if (T1_MSK & value) == 0b110_000 {
(Inc(Mem(AddrLoc::Reg(HL))), 3, 1)
@ -256,12 +251,10 @@ impl TryFrom<u8> for Operation {
(Dec(Reg(Register::try_from((value & T1_MSK) >> 3)?)), 1, 1)
}
}
_ if (value & (HD_MSK | 0b1_000 | T2_MSK) == 0b11_000_101) => {
(Psh(Register::repr_psh(payload(value))), 4, 1)
}
_ if (value & (HD_MSK | 0b1_000 | T2_MSK) == 0b11_000_001) => {
(Pop(Register::repr_psh(payload(value))), 3, 1)
}
_ if (value & (HD_MSK | 0b1_000 | T2_MSK) == 0b11_000_101) =>
(Psh(Register::repr_psh(payload(value))), 4, 1),
_ if (value & (HD_MSK | 0b1_000 | T2_MSK) == 0b11_000_001) =>
(Pop(Register::repr_psh(payload(value))), 3, 1),
_ if (value & (HD_MSK | T2_MSK)) == 0b00_000_110 => {
let reg = Register::try_from((value & T1_MSK) >> 3)?;
(Ld(Reg(reg), Direct, PostOp::None), 2, 2)