summaryrefslogtreecommitdiff
path: root/src/arm32/condition
diff options
context:
space:
mode:
Diffstat (limited to 'src/arm32/condition')
-rw-r--r--src/arm32/condition/mod.rs74
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"),
- }
- }
-}