aboutsummaryrefslogtreecommitdiff
path: root/src/armv8
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2025-10-19 22:32:27 +0000
committeriximeow <me@iximeow.net>2025-10-19 23:29:05 +0000
commitfd00bf73f7722654473e8fdafa704852df176d2c (patch)
treee26aa360125a307def6515ba27ecddaa1e826d9d /src/armv8
parent153b5b3383d016a8a1440b2b932815efed25f847 (diff)
avoid subtle changes to A64 Opcode enum discriminant choices
Diffstat (limited to 'src/armv8')
-rw-r--r--src/armv8/a64.rs13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/armv8/a64.rs b/src/armv8/a64.rs
index 8775d77..140e616 100644
--- a/src/armv8/a64.rs
+++ b/src/armv8/a64.rs
@@ -1147,6 +1147,7 @@ impl SysOps {
#[derive(Copy, Clone, Debug, PartialEq)]
#[repr(u16)]
#[allow(missing_docs)]
+#[non_exhaustive]
pub enum Opcode {
Invalid,
UDF,
@@ -1241,7 +1242,6 @@ pub enum Opcode {
B,
BR,
Bcc(u8),
- BCcc(u8),
BL,
BLR,
SVC,
@@ -1265,8 +1265,6 @@ pub enum Opcode {
SB,
#[deprecated(since = "0.4.0", note = "i spelled `ssbb` incorrectly.")]
SSSB,
- PSSBB,
- SSBB,
HINT,
CLREX,
CSEL,
@@ -1741,6 +1739,15 @@ pub enum Opcode {
SUBP,
SUBPS,
+ // one would imagine these to be sorted higher, maybe grouped
+ // with `Bcc` and ill-named `sssb`? unfortunately i made this
+ // `repr(u16)` long ago and you can't set a discriminant on
+ // non-unit enum variants, so moving this up just makes
+ // everything a mess.
+ BCcc(u8),
+ PSSBB,
+ SSBB,
+
// instructions present with FEAT_PAuth
PACIASP,
PACIAZ,