Enum arch_ops::clever::CleverOpcode
source · [−]pub enum CleverOpcode {
Show 236 variants
Und0,
Add {
lock: bool,
flags: bool,
},
Sub {
lock: bool,
flags: bool,
},
And {
lock: bool,
flags: bool,
},
Or {
lock: bool,
flags: bool,
},
Xor {
lock: bool,
flags: bool,
},
Mul {
ss: u16,
flags: bool,
},
Div {
ss: u16,
wide: bool,
flags: bool,
},
Mov,
Lea,
MovRD {
r: CleverRegister,
},
MovRS {
r: CleverRegister,
},
LeaRD {
r: CleverRegister,
},
Nop10,
Nop11,
Nop12,
Push,
Pop,
PushR {
r: CleverRegister,
},
PopR {
r: CleverRegister,
},
Stogpr,
Stoar,
Rstogpr,
Rstoar,
Pushgpr,
Pushar,
Popgpr,
Popar,
Movsx,
Bswap,
Movsif {
flags: bool,
},
Movxf {
flags: bool,
},
Movfsi {
flags: bool,
},
Movfx {
flags: bool,
},
Cvtf {
flags: bool,
},
Bcpy {
ss: u16,
},
Bsto {
ss: u16,
},
Bsca {
ss: u16,
},
Bcmp {
ss: u16,
},
Btst {
ss: u16,
},
Lsh {
l: bool,
f: bool,
},
Rsh {
l: bool,
f: bool,
},
Arsh {
l: bool,
f: bool,
},
Lshc {
l: bool,
f: bool,
},
Rshc {
l: bool,
f: bool,
},
Lrot {
l: bool,
f: bool,
},
Rrot {
l: bool,
f: bool,
},
LshR {
r: CleverRegister,
},
RshR {
r: CleverRegister,
},
ArshR {
r: CleverRegister,
},
LshcR {
r: CleverRegister,
},
RshcR {
r: CleverRegister,
},
LrotR {
r: CleverRegister,
},
RrotR {
r: CleverRegister,
},
Imul {
ss: u16,
flags: bool,
},
AddRD {
r: CleverRegister,
},
SubRD {
r: CleverRegister,
},
AndRD {
r: CleverRegister,
},
OrRD {
r: CleverRegister,
},
XorRD {
r: CleverRegister,
},
BNot {
l: bool,
f: bool,
},
Neg {
l: bool,
f: bool,
},
Idiv {
ss: u16,
wide: bool,
flags: bool,
},
AddRS {
r: CleverRegister,
},
SubRS {
r: CleverRegister,
},
AndRS {
r: CleverRegister,
},
OrRS {
r: CleverRegister,
},
XorRS {
r: CleverRegister,
},
BNotR {
r: CleverRegister,
},
NegR {
r: CleverRegister,
},
Cmp {},
Test {},
CmpR {
r: CleverRegister,
},
TestR {
r: CleverRegister,
},
Round {
f: bool,
},
Ceil {
f: bool,
},
Floor {
f: bool,
},
FAbs {
f: bool,
},
FNeg {
f: bool,
},
FInv {
f: bool,
},
FAdd {
f: bool,
},
FSub {
f: bool,
},
FMul {
f: bool,
},
FDiv {
f: bool,
},
FRem {
f: bool,
},
FFma {
f: bool,
},
FCmpz {},
FCmp {},
Exp {},
Ln {},
Lg {},
Sin {},
Cos {},
Tan {},
Asin {},
Acos {},
Atan {},
Exp2 {},
Log10 {},
Lnp1 {},
Expm1 {},
Sqrt {},
FRaiseExcept {},
FTriggerExcept {},
Xchg {},
Cmpxchg {},
Wcmpxchg {},
Fence {},
Vmov {},
CBP0A {
w: i8,
},
CBC0A {
w: i8,
},
CBV0A {
w: i8,
},
CBZ0A {
w: i8,
},
CBL0A {
w: i8,
},
CBLE0A {
w: i8,
},
CBBE0A {
w: i8,
},
CBM0A {
w: i8,
},
CBPS0A {
w: i8,
},
CBA0A {
w: i8,
},
CBG0A {
w: i8,
},
CBGE0A {
w: i8,
},
CBNZ0A {
w: i8,
},
CBNV0A {
w: i8,
},
CBNC0A {
w: i8,
},
CBNP0A {
w: i8,
},
CBP0R {
w: i8,
},
CBC0R {
w: i8,
},
CBV0R {
w: i8,
},
CBZ0R {
w: i8,
},
CBL0R {
w: i8,
},
CBLE0R {
w: i8,
},
CBBE0R {
w: i8,
},
CBM0R {
w: i8,
},
CBPS0R {
w: i8,
},
CBA0R {
w: i8,
},
CBG0R {
w: i8,
},
CBGE0R {
w: i8,
},
CBNZ0R {
w: i8,
},
CBNV0R {
w: i8,
},
CBNC0R {
w: i8,
},
CBNP0R {
w: i8,
},
CBP1A {
w: i8,
},
CBC1A {
w: i8,
},
CBV1A {
w: i8,
},
CBZ1A {
w: i8,
},
CBL1A {
w: i8,
},
CBLE1A {
w: i8,
},
CBBE1A {
w: i8,
},
CBM1A {
w: i8,
},
CBPS1A {
w: i8,
},
CBA1A {
w: i8,
},
CBG1A {
w: i8,
},
CBGE1A {
w: i8,
},
CBNZ1A {
w: i8,
},
CBNV1A {
w: i8,
},
CBNC1A {
w: i8,
},
CBNP1A {
w: i8,
},
CBP1R {
w: i8,
},
CBC1R {
w: i8,
},
CBV1R {
w: i8,
},
CBZ1R {
w: i8,
},
CBL1R {
w: i8,
},
CBLE1R {
w: i8,
},
CBBE1R {
w: i8,
},
CBM1R {
w: i8,
},
CBPS1R {
w: i8,
},
CBA1R {
w: i8,
},
CBG1R {
w: i8,
},
CBGE1R {
w: i8,
},
CBNZ1R {
w: i8,
},
CBNV1R {
w: i8,
},
CBNC1R {
w: i8,
},
CBNP1R {
w: i8,
},
CBP2A {
w: i8,
},
CBC2A {
w: i8,
},
CBV2A {
w: i8,
},
CBZ2A {
w: i8,
},
CBL2A {
w: i8,
},
CBLE2A {
w: i8,
},
CBBE2A {
w: i8,
},
CBM2A {
w: i8,
},
CBPS2A {
w: i8,
},
CBA2A {
w: i8,
},
CBG2A {
w: i8,
},
CBGE2A {
w: i8,
},
CBNZ2A {
w: i8,
},
CBNV2A {
w: i8,
},
CBNC2A {
w: i8,
},
CBNP2A {
w: i8,
},
CBP2R {
w: i8,
},
CBC2R {
w: i8,
},
CBV2R {
w: i8,
},
CBZ2R {
w: i8,
},
CBL2R {
w: i8,
},
CBLE2R {
w: i8,
},
CBBE2R {
w: i8,
},
CBM2R {
w: i8,
},
CBPS2R {
w: i8,
},
CBA2R {
w: i8,
},
CBG2R {
w: i8,
},
CBGE2R {
w: i8,
},
CBNZ2R {
w: i8,
},
CBNV2R {
w: i8,
},
CBNC2R {
w: i8,
},
CBNP2R {
w: i8,
},
JmpA {
ss: u16,
},
CallA {
ss: u16,
},
FcallA {
ss: u16,
},
Ret {},
Scall {},
Int {
i: u16,
},
IjmpA {
r: CleverRegister,
},
IcallA {
r: CleverRegister,
},
IfcallA {},
JmpR {
ss: u16,
},
CallR {
ss: u16,
},
FcallR {
ss: u16,
},
IjmpR {
r: CleverRegister,
},
IcallR {
r: CleverRegister,
},
IfcallR {},
Halt {},
Pcfl {},
FlAll {},
Dflush {},
Iflush {},
In {
ss: u16,
},
Out {
ss: u16,
},
StoRegF {},
RstRegF {},
Scret {},
Iret {},
Hcall {},
Hret {},
Hresume {},
VMCreate {},
VMDestroy {},
}Variants
Und0
Add
Sub
And
Or
Xor
Mul
Div
Mov
Lea
MovRD
Fields
MovRS
Fields
LeaRD
Fields
Nop10
Nop11
Nop12
Push
Pop
PushR
Fields
PopR
Fields
Stogpr
Stoar
Rstogpr
Rstoar
Pushgpr
Pushar
Popgpr
Popar
Movsx
Bswap
Movsif
Fields
flags: boolMovxf
Fields
flags: boolMovfsi
Fields
flags: boolMovfx
Fields
flags: boolCvtf
Fields
flags: boolBcpy
Fields
ss: u16Bsto
Fields
ss: u16Bsca
Fields
ss: u16Bcmp
Fields
ss: u16Btst
Fields
ss: u16Lsh
Rsh
Arsh
Lshc
Rshc
Lrot
Rrot
LshR
Fields
RshR
Fields
ArshR
Fields
LshcR
Fields
RshcR
Fields
LrotR
Fields
RrotR
Fields
Imul
AddRD
Fields
SubRD
Fields
AndRD
Fields
OrRD
Fields
XorRD
Fields
BNot
Neg
Idiv
AddRS
Fields
SubRS
Fields
AndRS
Fields
OrRS
Fields
XorRS
Fields
BNotR
Fields
NegR
Fields
Cmp
Fields
Test
Fields
CmpR
Fields
TestR
Fields
Round
Fields
f: boolCeil
Fields
f: boolFloor
Fields
f: boolFAbs
Fields
f: boolFNeg
Fields
f: boolFInv
Fields
f: boolFAdd
Fields
f: boolFSub
Fields
f: boolFMul
Fields
f: boolFDiv
Fields
f: boolFRem
Fields
f: boolFFma
Fields
f: boolFCmpz
Fields
FCmp
Fields
Exp
Fields
Ln
Fields
Lg
Fields
Sin
Fields
Cos
Fields
Tan
Fields
Asin
Fields
Acos
Fields
Atan
Fields
Exp2
Fields
Log10
Fields
Lnp1
Fields
Expm1
Fields
Sqrt
Fields
FRaiseExcept
Fields
FTriggerExcept
Fields
Xchg
Fields
Cmpxchg
Fields
Wcmpxchg
Fields
Fence
Fields
Vmov
Fields
CBP0A
Fields
w: i8CBC0A
Fields
w: i8CBV0A
Fields
w: i8CBZ0A
Fields
w: i8CBL0A
Fields
w: i8CBLE0A
Fields
w: i8CBBE0A
Fields
w: i8CBM0A
Fields
w: i8CBPS0A
Fields
w: i8CBA0A
Fields
w: i8CBG0A
Fields
w: i8CBGE0A
Fields
w: i8CBNZ0A
Fields
w: i8CBNV0A
Fields
w: i8CBNC0A
Fields
w: i8CBNP0A
Fields
w: i8CBP0R
Fields
w: i8CBC0R
Fields
w: i8CBV0R
Fields
w: i8CBZ0R
Fields
w: i8CBL0R
Fields
w: i8CBLE0R
Fields
w: i8CBBE0R
Fields
w: i8CBM0R
Fields
w: i8CBPS0R
Fields
w: i8CBA0R
Fields
w: i8CBG0R
Fields
w: i8CBGE0R
Fields
w: i8CBNZ0R
Fields
w: i8CBNV0R
Fields
w: i8CBNC0R
Fields
w: i8CBNP0R
Fields
w: i8CBP1A
Fields
w: i8CBC1A
Fields
w: i8CBV1A
Fields
w: i8CBZ1A
Fields
w: i8CBL1A
Fields
w: i8CBLE1A
Fields
w: i8CBBE1A
Fields
w: i8CBM1A
Fields
w: i8CBPS1A
Fields
w: i8CBA1A
Fields
w: i8CBG1A
Fields
w: i8CBGE1A
Fields
w: i8CBNZ1A
Fields
w: i8CBNV1A
Fields
w: i8CBNC1A
Fields
w: i8CBNP1A
Fields
w: i8CBP1R
Fields
w: i8CBC1R
Fields
w: i8CBV1R
Fields
w: i8CBZ1R
Fields
w: i8CBL1R
Fields
w: i8CBLE1R
Fields
w: i8CBBE1R
Fields
w: i8CBM1R
Fields
w: i8CBPS1R
Fields
w: i8CBA1R
Fields
w: i8CBG1R
Fields
w: i8CBGE1R
Fields
w: i8CBNZ1R
Fields
w: i8CBNV1R
Fields
w: i8CBNC1R
Fields
w: i8CBNP1R
Fields
w: i8CBP2A
Fields
w: i8CBC2A
Fields
w: i8CBV2A
Fields
w: i8CBZ2A
Fields
w: i8CBL2A
Fields
w: i8CBLE2A
Fields
w: i8CBBE2A
Fields
w: i8CBM2A
Fields
w: i8CBPS2A
Fields
w: i8CBA2A
Fields
w: i8CBG2A
Fields
w: i8CBGE2A
Fields
w: i8CBNZ2A
Fields
w: i8CBNV2A
Fields
w: i8CBNC2A
Fields
w: i8CBNP2A
Fields
w: i8CBP2R
Fields
w: i8CBC2R
Fields
w: i8CBV2R
Fields
w: i8CBZ2R
Fields
w: i8CBL2R
Fields
w: i8CBLE2R
Fields
w: i8CBBE2R
Fields
w: i8CBM2R
Fields
w: i8CBPS2R
Fields
w: i8CBA2R
Fields
w: i8CBG2R
Fields
w: i8CBGE2R
Fields
w: i8CBNZ2R
Fields
w: i8CBNV2R
Fields
w: i8CBNC2R
Fields
w: i8CBNP2R
Fields
w: i8JmpA
Fields
ss: u16CallA
Fields
ss: u16FcallA
Fields
ss: u16Ret
Fields
Scall
Fields
Int
Fields
i: u16IjmpA
Fields
IcallA
Fields
IfcallA
Fields
JmpR
Fields
ss: u16CallR
Fields
ss: u16FcallR
Fields
ss: u16IjmpR
Fields
IcallR
Fields
IfcallR
Fields
Halt
Fields
Pcfl
Fields
FlAll
Fields
Dflush
Fields
Iflush
Fields
In
Fields
ss: u16Out
Fields
ss: u16StoRegF
Fields
RstRegF
Fields
Scret
Fields
Iret
Fields
Hcall
Fields
Hret
Fields
Hresume
Fields
VMCreate
Fields
VMDestroy
Fields
Implementations
sourceimpl CleverOpcode
impl CleverOpcode
pub fn from_opcode(opc: u16) -> Option<CleverOpcode>
pub fn name(&self) -> &'static str
pub fn opcode(&self) -> u16
pub fn operands(&self) -> CleverOperandKind
sourceimpl CleverOpcode
impl CleverOpcode
pub fn is_branch(&self) -> bool
pub fn is_cbranch(&self) -> bool
pub fn branch_pcrel(&self) -> Option<bool>
pub fn branch_condition(&self) -> Option<ConditionCode>
pub fn branch_weight(&self) -> Option<i8>
pub fn branch_width(&self) -> Option<u16>
pub fn cbranch(cc: ConditionCode, width: u16, pcrel: bool, weight: i8) -> Self
Trait Implementations
sourceimpl Clone for CleverOpcode
impl Clone for CleverOpcode
sourcefn clone(&self) -> CleverOpcode
fn clone(&self) -> CleverOpcode
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl Debug for CleverOpcode
impl Debug for CleverOpcode
sourceimpl Hash for CleverOpcode
impl Hash for CleverOpcode
sourceimpl PartialEq<CleverOpcode> for CleverOpcode
impl PartialEq<CleverOpcode> for CleverOpcode
sourcefn eq(&self, other: &CleverOpcode) -> bool
fn eq(&self, other: &CleverOpcode) -> bool
This method tests for self and other values to be equal, and is used
by ==. Read more
sourcefn ne(&self, other: &CleverOpcode) -> bool
fn ne(&self, other: &CleverOpcode) -> bool
This method tests for !=.
impl Copy for CleverOpcode
impl Eq for CleverOpcode
impl StructuralEq for CleverOpcode
impl StructuralPartialEq for CleverOpcode
Auto Trait Implementations
impl RefUnwindSafe for CleverOpcode
impl Send for CleverOpcode
impl Sync for CleverOpcode
impl Unpin for CleverOpcode
impl UnwindSafe for CleverOpcode
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
🔬 This is a nightly-only experimental API. (
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more