diff options
Diffstat (limited to 'src/arm32/condition/mod.rs')
-rw-r--r-- | src/arm32/condition/mod.rs | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/src/arm32/condition/mod.rs b/src/arm32/condition/mod.rs deleted file mode 100644 index f8d81ba..0000000 --- a/src/arm32/condition/mod.rs +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2021-2024 Gabriel Bjørnager Jensen. -// -// This file is part of Pollex. -// -// Pollex is free software: you can redistribute it -// and/or modify it under the terms of the GNU Af- -// fero General Public License as published by the -// Free Software Foundation, either version 3 of -// the License, or (at your option) any later ver- -// sion. -// -// Pollex is distributed in the hope that it will -// be useful, but WITHOUT ANY WARRANTY; without -// even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Affero General Public License for more details. -// -// You should have received a copy of the GNU Af- -// fero General Public License along with Pollex. -// If not, see <https://www.gnu.org/licenses/>. - -use core::fmt::Display; - -/// A condition code. -/// -/// Most Arm32 instructions embed a condition code. -/// -/// Any 4-bit values is always a valid condition code *except* `0b1111`, which sometimes denotes a different instruction altogether -/// In most cases, it is invalid, however.. -#[derive(Clone, Copy, Eq, Ord, PartialEq, PartialOrd)] -#[repr(u8)] -pub enum Condition { - Equal = 0b0000, - NotEqual = 0b0001, - HigherOrSame = 0b0010, - Lower = 0b0011, - Minus = 0b0100, - Plus = 0b0101, - Overflow = 0b0110, - NoOverflow = 0b0111, - Higher = 0b1000, - LowerOrSame = 0b1001, - GreaterThanOrEqual = 0b1010, - LessThan = 0b1011, - GreaterThan = 0b1100, - LessThanOrEqual = 0b1101, - Always = 0b1110, - //Never = 0b1111, -} - -impl Display for Condition { - fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { - use Condition::*; - - match *self { - Equal => write!(f, "EQ"), - NotEqual => write!(f, "NE"), - HigherOrSame => write!(f, "HS"), - Lower => write!(f, "LO"), - Minus => write!(f, "MI"), - Plus => write!(f, "PL"), - Overflow => write!(f, "VS"), - NoOverflow => write!(f, "VC"), - Higher => write!(f, "HI"), - LowerOrSame => write!(f, "LS"), - GreaterThanOrEqual => write!(f, "GE"), - LessThan => write!(f, "LT"), - GreaterThan => write!(f, "GT"), - LessThanOrEqual => write!(f, "LE"), - Always => write!(f, "AL"), - //Never => write!(f, "NV"), - } - } -} |