use crate::memory::*;
use crate::prelude::*;
#[must_use]
#[expect(clippy::arbitrary_source_item_ordering)]
#[derive(Debug, Clone, Copy)]
pub(crate) enum X64Inst {
IMulR2(X64Reg, X64Reg),
IDivR(X64Reg),
Cqo,
DecMd(Address),
DecR(X64Reg),
IncMd(Address),
IncR(X64Reg),
Clear(X64Reg),
RR(RegSize, Group1, X64Reg, X64Reg),
RM(RegSize, Group1, X64Reg, X64Operand),
MR(RegSize, Group1, X64Operand, X64Reg),
TestRR(RegSize, X64Reg),
MId(RegSize, Group1, X64Operand, i32),
ShiftR(ShiftDirection, X64Reg, Shift),
Unary(RegSize, UnaryKind, X64Reg),
ArithSd(ArithSdKind, X64Reg, X64Reg),
SqrtSd(X64Reg, X64Reg),
UComISd(X64Reg, X64Reg),
CvtSi2Sd(X64Reg, X64Reg),
CvtTSd2Si(X64Reg, X64Reg),
LeaRM(X64Reg, Address),
CMovCc(X64Cc, X64Reg, X64Reg),
MovMIb(X64Operand, u8),
MovMId(X64Operand, u32),
MovRI(X64Reg, u64),
MovRO(RegSize, X64Reg, X64Operand),
MovOR(RegSize, X64Operand, X64Reg),
MovSdO(X64Reg, X64Operand),
MovOSd(X64Operand, X64Reg),
MovSxDRMd(X64Reg, Address),
Call(LabelId),
CallApi(Api),
CallApiCheck(Api),
Pop(X64Reg),
Push(X64Reg),
LblX(LabelId),
JCc(X64Cc, LabelId),
Jmp(LabelId),
SetCc(X64Reg, X64Cc),
RetX,
DF(bool),
BitTest(BitTestKind, X64Reg, u8),
Repeat(RegSize, RepeatKind, StrInstKind),
}