apple-0.2.0.0: Apple array language compiler
Safe HaskellSafe-Inferred
LanguageHaskell2010

Asm.Aarch64

Documentation

data AArch64 reg freg a Source #

Constructors

Label 

Fields

B 

Fields

Blr 

Fields

C 

Fields

Bl 

Fields

Bc 

Fields

Ret 

Fields

RetL 

Fields

FMovXX 

Fields

FMovDR 

Fields

MovRR 

Fields

MovRC 

Fields

MovZ 

Fields

MovRCf 

Fields

LdrRL 

Fields

MovK 

Fields

Ldr 

Fields

LdrB 

Fields

Str 

Fields

StrB 

Fields

LdrD 

Fields

StrD 

Fields

SubRR 

Fields

AddRR 

Fields

AddRRS 

Fields

ZeroR 

Fields

Mvn 

Fields

AndRR 

Fields

OrRR 

Fields

Eor 

Fields

MulRR 

Fields

Madd 

Fields

Msub 

Fields

Sdiv 

Fields

AddRC 

Fields

SubRC 

Fields

Lsl 

Fields

Asr 

Fields

CmpRC 

Fields

CmpRR 

Fields

Neg 

Fields

Fmul 

Fields

Fadd 

Fields

Fsub 

Fields

Fdiv 

Fields

FcmpZ 

Fields

Fcmp 

Fields

Fneg 

Fields

Scvtf 

Fields

Fcvtms 

Fields

Fcvtas 

Fields

Stp 

Fields

Ldp 

Fields

StpD 

Fields

LdpD 

Fields

Fmadd 

Fields

Fmsub 

Fields

Fsqrt 

Fields

Frintm 

Fields

MrsR 

Fields

Fmax 

Fields

Fmin 

Fields

Fabs 

Fields

Csel 

Fields

Tbnz 

Fields

Tbz 

Fields

Cbnz 

Fields

Fcsel 

Fields

Cset 

Fields

TstI 

Fields

EorI 

Fields

Instances

Instances details
(E reg, E freg) => Arch AArch64 reg freg Source # 
Instance details

Defined in Asm.Ar

Methods

cf :: [BB AArch64 reg freg () ()] -> [BB AArch64 reg freg () ControlAnn] Source #

mI :: AArch64 reg freg a -> Maybe (reg, reg) Source #

mf :: AArch64 reg freg a -> Maybe (freg, freg) Source #

bb :: [AArch64 reg freg a] -> [BB AArch64 reg freg a ()] Source #

expand :: BB AArch64 reg freg () Liveness -> [AArch64 reg freg Liveness] Source #

udd :: AArch64 reg freg a -> UD Source #

Copointed (AArch64 reg freg) Source # 
Instance details

Defined in Asm.Aarch64

Methods

copoint :: AArch64 reg freg a -> a Source #

Functor (AArch64 reg freg) Source # 
Instance details

Defined in Asm.Aarch64

Methods

fmap :: (a -> b) -> AArch64 reg freg a -> AArch64 reg freg b #

(<$) :: a -> AArch64 reg freg b -> AArch64 reg freg a #

(NFData r, NFData d, NFData a) => NFData (AArch64 r d a) Source # 
Instance details

Defined in Asm.Aarch64

Methods

rnf :: AArch64 r d a -> () #

Generic (AArch64 reg freg a) Source # 
Instance details

Defined in Asm.Aarch64

Associated Types

type Rep (AArch64 reg freg a) 
Instance details

Defined in Asm.Aarch64

type Rep (AArch64 reg freg a) = D1 ('MetaData "AArch64" "Asm.Aarch64" "apple-0.2.0.0-inplace" 'False) ((((((C1 ('MetaCons "Label" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "label") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Label)) :+: C1 ('MetaCons "B" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "label") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Label))) :+: (C1 ('MetaCons "Blr" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :+: C1 ('MetaCons "C" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "label") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Label)))) :+: ((C1 ('MetaCons "Bl" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "cfunc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CFunc)) :+: C1 ('MetaCons "Bc" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "cond") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cond) :*: S1 ('MetaSel ('Just "label") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Label)))) :+: (C1 ('MetaCons "Ret" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "RetL" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "label") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Label))))) :+: (((C1 ('MetaCons "FMovXX" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: C1 ('MetaCons "FMovDR" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)))) :+: (C1 ('MetaCons "MovRR" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))) :+: C1 ('MetaCons "MovRC" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "cSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16))))) :+: ((C1 ('MetaCons "MovZ" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "cSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16) :*: S1 ('MetaSel ('Just "lsl") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))) :+: C1 ('MetaCons "MovRCf" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "cfunc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CFunc)))) :+: (C1 ('MetaCons "LdrRL" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "lSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))) :+: (C1 ('MetaCons "MovK" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "cSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16) :*: S1 ('MetaSel ('Just "lsl") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))) :+: C1 ('MetaCons "Ldr" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "aSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg))))))))) :+: ((((C1 ('MetaCons "LdrB" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "aSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg)))) :+: C1 ('MetaCons "Str" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "aDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg))))) :+: (C1 ('MetaCons "StrB" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "aDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg)))) :+: C1 ('MetaCons "LdrD" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "aSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg)))))) :+: ((C1 ('MetaCons "StrD" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "aDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg)))) :+: C1 ('MetaCons "SubRR" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)))) :+: (C1 ('MetaCons "AddRR" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))) :+: (C1 ('MetaCons "AddRRS" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: (S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "sC") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word8)))) :+: C1 ('MetaCons "ZeroR" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)))))) :+: (((C1 ('MetaCons "Mvn" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))) :+: C1 ('MetaCons "AndRR" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)))) :+: (C1 ('MetaCons "OrRR" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))) :+: C1 ('MetaCons "Eor" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))))) :+: ((C1 ('MetaCons "MulRR" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))) :+: C1 ('MetaCons "Madd" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: (S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc3") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))))) :+: (C1 ('MetaCons "Msub" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: (S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc3") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)))) :+: (C1 ('MetaCons "Sdiv" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))) :+: C1 ('MetaCons "AddRC" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rC") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16))))))))) :+: (((((C1 ('MetaCons "SubRC" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rC") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16))) :+: C1 ('MetaCons "Lsl" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "sC") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word8)))) :+: (C1 ('MetaCons "Asr" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "sC") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word8))) :+: C1 ('MetaCons "CmpRC" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "cSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16))))) :+: ((C1 ('MetaCons "CmpRR" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))) :+: C1 ('MetaCons "Neg" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)))) :+: (C1 ('MetaCons "Fmul" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: (C1 ('MetaCons "Fadd" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: C1 ('MetaCons "Fsub" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))))))) :+: (((C1 ('MetaCons "Fdiv" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: C1 ('MetaCons "FcmpZ" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: (C1 ('MetaCons "Fcmp" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: C1 ('MetaCons "Fneg" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))))) :+: ((C1 ('MetaCons "Scvtf" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))) :+: C1 ('MetaCons "Fcvtms" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "dSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)))) :+: (C1 ('MetaCons "Fcvtas" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "dSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: (C1 ('MetaCons "Stp" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "aDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg)))) :+: C1 ('MetaCons "Ldp" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rDest2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "aSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg))))))))) :+: ((((C1 ('MetaCons "StpD" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "aDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg)))) :+: C1 ('MetaCons "LdpD" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dDest2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "aSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg))))) :+: (C1 ('MetaCons "Fmadd" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: (S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc3") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)))) :+: C1 ('MetaCons "Fmsub" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: (S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc3") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)))))) :+: ((C1 ('MetaCons "Fsqrt" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: C1 ('MetaCons "Frintm" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)))) :+: (C1 ('MetaCons "MrsR" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :+: (C1 ('MetaCons "Fmax" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: C1 ('MetaCons "Fmin" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))))))) :+: (((C1 ('MetaCons "Fabs" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: C1 ('MetaCons "Csel" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: (S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "cond") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cond))))) :+: (C1 ('MetaCons "Tbnz" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "bit") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word8) :*: S1 ('MetaSel ('Just "label") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Label))) :+: C1 ('MetaCons "Tbz" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "bit") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word8) :*: S1 ('MetaSel ('Just "label") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Label))))) :+: ((C1 ('MetaCons "Cbnz" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "label") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Label))) :+: C1 ('MetaCons "Fcsel" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: (S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "cond") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cond))))) :+: (C1 ('MetaCons "Cset" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "cond") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cond))) :+: (C1 ('MetaCons "TstI" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "imm") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BM))) :+: C1 ('MetaCons "EorI" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rDesg") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "imm") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BM))))))))))

Methods

from :: AArch64 reg freg a -> Rep (AArch64 reg freg a) x #

to :: Rep (AArch64 reg freg a) x -> AArch64 reg freg a #

(Pretty reg, Pretty freg) => Show (AArch64 reg freg a) Source # 
Instance details

Defined in Asm.Aarch64

Methods

showsPrec :: Int -> AArch64 reg freg a -> ShowS #

show :: AArch64 reg freg a -> String #

showList :: [AArch64 reg freg a] -> ShowS #

(Pretty reg, Pretty freg) => Pretty (AArch64 reg freg a) Source # 
Instance details

Defined in Asm.Aarch64

Methods

pretty :: AArch64 reg freg a -> Doc ann #

prettyList :: [AArch64 reg freg a] -> Doc ann #

type Rep (AArch64 reg freg a) Source # 
Instance details

Defined in Asm.Aarch64

type Rep (AArch64 reg freg a) = D1 ('MetaData "AArch64" "Asm.Aarch64" "apple-0.2.0.0-inplace" 'False) ((((((C1 ('MetaCons "Label" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "label") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Label)) :+: C1 ('MetaCons "B" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "label") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Label))) :+: (C1 ('MetaCons "Blr" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :+: C1 ('MetaCons "C" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "label") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Label)))) :+: ((C1 ('MetaCons "Bl" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "cfunc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CFunc)) :+: C1 ('MetaCons "Bc" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "cond") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cond) :*: S1 ('MetaSel ('Just "label") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Label)))) :+: (C1 ('MetaCons "Ret" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "RetL" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "label") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Label))))) :+: (((C1 ('MetaCons "FMovXX" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: C1 ('MetaCons "FMovDR" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)))) :+: (C1 ('MetaCons "MovRR" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))) :+: C1 ('MetaCons "MovRC" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "cSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16))))) :+: ((C1 ('MetaCons "MovZ" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "cSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16) :*: S1 ('MetaSel ('Just "lsl") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))) :+: C1 ('MetaCons "MovRCf" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "cfunc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CFunc)))) :+: (C1 ('MetaCons "LdrRL" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "lSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))) :+: (C1 ('MetaCons "MovK" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "cSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16) :*: S1 ('MetaSel ('Just "lsl") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))) :+: C1 ('MetaCons "Ldr" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "aSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg))))))))) :+: ((((C1 ('MetaCons "LdrB" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "aSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg)))) :+: C1 ('MetaCons "Str" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "aDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg))))) :+: (C1 ('MetaCons "StrB" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "aDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg)))) :+: C1 ('MetaCons "LdrD" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "aSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg)))))) :+: ((C1 ('MetaCons "StrD" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "aDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg)))) :+: C1 ('MetaCons "SubRR" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)))) :+: (C1 ('MetaCons "AddRR" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))) :+: (C1 ('MetaCons "AddRRS" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: (S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "sC") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word8)))) :+: C1 ('MetaCons "ZeroR" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)))))) :+: (((C1 ('MetaCons "Mvn" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))) :+: C1 ('MetaCons "AndRR" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)))) :+: (C1 ('MetaCons "OrRR" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))) :+: C1 ('MetaCons "Eor" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))))) :+: ((C1 ('MetaCons "MulRR" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))) :+: C1 ('MetaCons "Madd" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: (S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc3") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))))) :+: (C1 ('MetaCons "Msub" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: (S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc3") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)))) :+: (C1 ('MetaCons "Sdiv" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))) :+: C1 ('MetaCons "AddRC" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rC") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16))))))))) :+: (((((C1 ('MetaCons "SubRC" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rC") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16))) :+: C1 ('MetaCons "Lsl" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "sC") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word8)))) :+: (C1 ('MetaCons "Asr" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "sC") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word8))) :+: C1 ('MetaCons "CmpRC" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "cSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16))))) :+: ((C1 ('MetaCons "CmpRR" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))) :+: C1 ('MetaCons "Neg" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)))) :+: (C1 ('MetaCons "Fmul" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: (C1 ('MetaCons "Fadd" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: C1 ('MetaCons "Fsub" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))))))) :+: (((C1 ('MetaCons "Fdiv" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: C1 ('MetaCons "FcmpZ" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: (C1 ('MetaCons "Fcmp" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: C1 ('MetaCons "Fneg" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))))) :+: ((C1 ('MetaCons "Scvtf" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg))) :+: C1 ('MetaCons "Fcvtms" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "dSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)))) :+: (C1 ('MetaCons "Fcvtas" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "dSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: (C1 ('MetaCons "Stp" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "aDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg)))) :+: C1 ('MetaCons "Ldp" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rDest2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "aSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg))))))))) :+: ((((C1 ('MetaCons "StpD" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "aDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg)))) :+: C1 ('MetaCons "LdpD" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dDest2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "aSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Addr reg))))) :+: (C1 ('MetaCons "Fmadd" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: (S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc3") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)))) :+: C1 ('MetaCons "Fmsub" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: (S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc3") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)))))) :+: ((C1 ('MetaCons "Fsqrt" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: C1 ('MetaCons "Frintm" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)))) :+: (C1 ('MetaCons "MrsR" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :+: (C1 ('MetaCons "Fmax" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: C1 ('MetaCons "Fmin" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))))))) :+: (((C1 ('MetaCons "Fabs" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "dSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg))) :+: C1 ('MetaCons "Csel" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: (S1 ('MetaSel ('Just "rSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "cond") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cond))))) :+: (C1 ('MetaCons "Tbnz" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "bit") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word8) :*: S1 ('MetaSel ('Just "label") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Label))) :+: C1 ('MetaCons "Tbz" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "bit") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word8) :*: S1 ('MetaSel ('Just "label") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Label))))) :+: ((C1 ('MetaCons "Cbnz" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "label") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Label))) :+: C1 ('MetaCons "Fcsel" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg)) :*: (S1 ('MetaSel ('Just "dSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: (S1 ('MetaSel ('Just "dSrc2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 freg) :*: S1 ('MetaSel ('Just "cond") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cond))))) :+: (C1 ('MetaCons "Cset" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rDest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "cond") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cond))) :+: (C1 ('MetaCons "TstI" 'PrefixI 'True) (S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel ('Just "rSrc1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "imm") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BM))) :+: C1 ('MetaCons "EorI" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ann") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "rSrc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg)) :*: (S1 ('MetaSel ('Just "rDesg") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 reg) :*: S1 ('MetaSel ('Just "imm") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BM))))))))))

data Addr reg Source #

Constructors

R reg 
RP reg Word16 
BI reg reg Shift 

Instances

Instances details
Functor Addr Source # 
Instance details

Defined in Asm.Aarch64

Methods

fmap :: (a -> b) -> Addr a -> Addr b #

(<$) :: a -> Addr b -> Addr a #

NFData a => NFData (Addr a) Source # 
Instance details

Defined in Asm.Aarch64

Methods

rnf :: Addr a -> () #

Generic (Addr reg) Source # 
Instance details

Defined in Asm.Aarch64

Methods

from :: Addr reg -> Rep (Addr reg) x #

to :: Rep (Addr reg) x -> Addr reg #

Pretty reg => Pretty (Addr reg) Source # 
Instance details

Defined in Asm.Aarch64

Methods

pretty :: Addr reg -> Doc ann #

prettyList :: [Addr reg] -> Doc ann #

type Rep (Addr reg) Source # 
Instance details

Defined in Asm.Aarch64

data Cond Source #

Constructors

Eq 
Neq 
Geq 
Lt 
Gt 
Leq 

Instances

Instances details
NFData Cond Source # 
Instance details

Defined in Asm.Aarch64

Methods

rnf :: Cond -> () #

Pretty Cond Source # 
Instance details

Defined in Asm.Aarch64

Methods

pretty :: Cond -> Doc ann #

prettyList :: [Cond] -> Doc ann #

data Shift Source #

Constructors

Zero 
Three 

Instances

Instances details
NFData Shift Source # 
Instance details

Defined in Asm.Aarch64

Methods

rnf :: Shift -> () #

Pretty Shift Source # 
Instance details

Defined in Asm.Aarch64

Methods

pretty :: Shift -> Doc ann #

prettyList :: [Shift] -> Doc ann #

data BM Source #

Constructors

BM 

Fields

Instances

Instances details
NFData BM Source # 
Instance details

Defined in Asm.Aarch64

Methods

rnf :: BM -> () #

Eq BM Source # 
Instance details

Defined in Asm.Aarch64

Methods

(==) :: BM -> BM -> Bool #

(/=) :: BM -> BM -> Bool #

Pretty BM Source # 
Instance details

Defined in Asm.Aarch64

Methods

pretty :: BM -> Doc ann #

prettyList :: [BM] -> Doc ann #

data AbsReg Source #

Constructors

IReg !Int 
CArg0 
CArg1 
CArg2 
CArg3 
CArg4 
CArg5 
CArg6 
CArg7 
LR 
FP 
ASP 

Instances

Instances details
E AbsReg Source # 
Instance details

Defined in Class.E

Methods

toInt :: AbsReg -> Int Source #

Pretty AbsReg Source # 
Instance details

Defined in Asm.Aarch64

Methods

pretty :: AbsReg -> Doc ann #

prettyList :: [AbsReg] -> Doc ann #

data FAbsReg Source #

Constructors

FReg !Int 
FArg0 
FArg1 
FArg2 
FArg3 
FArg4 
FArg5 
FArg6 
FArg7 

Instances

Instances details
E FAbsReg Source # 
Instance details

Defined in Class.E

Methods

toInt :: FAbsReg -> Int Source #

Pretty FAbsReg Source # 
Instance details

Defined in Asm.Aarch64

Methods

pretty :: FAbsReg -> Doc ann #

prettyList :: [FAbsReg] -> Doc ann #

data AReg Source #

Constructors

X0 
X1 
X2 
X3 
X4 
X5 
X6 
X7 
X8 
X9 
X10 
X11 
X12 
X13 
X14 
X15 
X16 
X17 
X18 
X19 
X20 
X21 
X22 
X23 
X24 
X25 
X26 
X27 
X28 
X29 
X30 
SP 

Instances

Instances details
E AReg Source # 
Instance details

Defined in Class.E

Methods

toInt :: AReg -> Int Source #

NFData AReg Source # 
Instance details

Defined in Asm.Aarch64

Methods

rnf :: AReg -> () #

Enum AReg Source # 
Instance details

Defined in Asm.Aarch64

Methods

succ :: AReg -> AReg #

pred :: AReg -> AReg #

toEnum :: Int -> AReg #

fromEnum :: AReg -> Int #

enumFrom :: AReg -> [AReg] #

enumFromThen :: AReg -> AReg -> [AReg] #

enumFromTo :: AReg -> AReg -> [AReg] #

enumFromThenTo :: AReg -> AReg -> AReg -> [AReg] #

Generic AReg Source # 
Instance details

Defined in Asm.Aarch64

Associated Types

type Rep AReg 
Instance details

Defined in Asm.Aarch64

type Rep AReg = D1 ('MetaData "AReg" "Asm.Aarch64" "apple-0.2.0.0-inplace" 'False) (((((C1 ('MetaCons "X0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "X2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X3" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "X4" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X5" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "X6" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X7" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "X8" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X9" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "X10" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X11" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "X12" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X13" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "X14" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X15" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: ((((C1 ('MetaCons "X16" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X17" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "X18" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X19" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "X20" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X21" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "X22" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X23" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "X24" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X25" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "X26" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X27" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "X28" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X29" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "X30" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SP" 'PrefixI 'False) (U1 :: Type -> Type))))))

Methods

from :: AReg -> Rep AReg x #

to :: Rep AReg x -> AReg #

Show AReg Source # 
Instance details

Defined in Asm.Aarch64

Methods

showsPrec :: Int -> AReg -> ShowS #

show :: AReg -> String #

showList :: [AReg] -> ShowS #

Eq AReg Source # 
Instance details

Defined in Asm.Aarch64

Methods

(==) :: AReg -> AReg -> Bool #

(/=) :: AReg -> AReg -> Bool #

Ord AReg Source # 
Instance details

Defined in Asm.Aarch64

Methods

compare :: AReg -> AReg -> Ordering #

(<) :: AReg -> AReg -> Bool #

(<=) :: AReg -> AReg -> Bool #

(>) :: AReg -> AReg -> Bool #

(>=) :: AReg -> AReg -> Bool #

max :: AReg -> AReg -> AReg #

min :: AReg -> AReg -> AReg #

Pretty AReg Source # 
Instance details

Defined in Asm.Aarch64

Methods

pretty :: AReg -> Doc ann #

prettyList :: [AReg] -> Doc ann #

type Rep AReg Source # 
Instance details

Defined in Asm.Aarch64

type Rep AReg = D1 ('MetaData "AReg" "Asm.Aarch64" "apple-0.2.0.0-inplace" 'False) (((((C1 ('MetaCons "X0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "X2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X3" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "X4" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X5" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "X6" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X7" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "X8" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X9" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "X10" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X11" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "X12" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X13" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "X14" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X15" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: ((((C1 ('MetaCons "X16" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X17" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "X18" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X19" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "X20" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X21" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "X22" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X23" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "X24" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X25" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "X26" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X27" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "X28" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X29" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "X30" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SP" 'PrefixI 'False) (U1 :: Type -> Type))))))

data FAReg Source #

Constructors

D0 
D1 
D2 
D3 
D4 
D5 
D6 
D7 
D8 
D9 
D10 
D11 
D12 
D13 
D14 
D15 
D16 
D17 
D18 
D19 
D20 
D21 
D22 
D23 
D24 
D25 
D26 
D27 
D28 
D29 
D30 
D31 

Instances

Instances details
E FAReg Source # 
Instance details

Defined in Class.E

Methods

toInt :: FAReg -> Int Source #

NFData FAReg Source # 
Instance details

Defined in Asm.Aarch64

Methods

rnf :: FAReg -> () #

Enum FAReg Source # 
Instance details

Defined in Asm.Aarch64

Generic FAReg Source # 
Instance details

Defined in Asm.Aarch64

Associated Types

type Rep FAReg 
Instance details

Defined in Asm.Aarch64

type Rep FAReg = D1 ('MetaData "FAReg" "Asm.Aarch64" "apple-0.2.0.0-inplace" 'False) (((((C1 ('MetaCons "D0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D3" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "D4" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D5" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D6" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D7" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "D8" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D9" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D10" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D11" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "D12" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D13" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D14" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D15" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: ((((C1 ('MetaCons "D16" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D17" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D18" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D19" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "D20" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D21" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D22" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D23" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "D24" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D25" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D26" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D27" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "D28" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D29" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D30" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D31" 'PrefixI 'False) (U1 :: Type -> Type))))))

Methods

from :: FAReg -> Rep FAReg x #

to :: Rep FAReg x -> FAReg #

Show FAReg Source # 
Instance details

Defined in Asm.Aarch64

Methods

showsPrec :: Int -> FAReg -> ShowS #

show :: FAReg -> String #

showList :: [FAReg] -> ShowS #

Eq FAReg Source # 
Instance details

Defined in Asm.Aarch64

Methods

(==) :: FAReg -> FAReg -> Bool #

(/=) :: FAReg -> FAReg -> Bool #

Ord FAReg Source # 
Instance details

Defined in Asm.Aarch64

Methods

compare :: FAReg -> FAReg -> Ordering #

(<) :: FAReg -> FAReg -> Bool #

(<=) :: FAReg -> FAReg -> Bool #

(>) :: FAReg -> FAReg -> Bool #

(>=) :: FAReg -> FAReg -> Bool #

max :: FAReg -> FAReg -> FAReg #

min :: FAReg -> FAReg -> FAReg #

Pretty FAReg Source # 
Instance details

Defined in Asm.Aarch64

Methods

pretty :: FAReg -> Doc ann #

prettyList :: [FAReg] -> Doc ann #

type Rep FAReg Source # 
Instance details

Defined in Asm.Aarch64

type Rep FAReg = D1 ('MetaData "FAReg" "Asm.Aarch64" "apple-0.2.0.0-inplace" 'False) (((((C1 ('MetaCons "D0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D3" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "D4" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D5" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D6" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D7" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "D8" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D9" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D10" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D11" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "D12" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D13" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D14" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D15" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: ((((C1 ('MetaCons "D16" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D17" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D18" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D19" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "D20" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D21" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D22" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D23" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "D24" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D25" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D26" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D27" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "D28" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D29" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D30" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D31" 'PrefixI 'False) (U1 :: Type -> Type))))))

prettyDebug :: (Pretty freg, Pretty reg, Pretty o) => [AArch64 reg freg o] -> Doc ann Source #

mapR :: (areg -> reg) -> AArch64 areg afreg a -> AArch64 reg afreg a Source #

mapFR :: (afreg -> freg) -> AArch64 areg afreg a -> AArch64 areg freg a Source #

pus :: [AReg] -> [AArch64 AReg freg ()] Source #

pos :: [AReg] -> [AArch64 AReg freg ()] Source #

puds :: [freg] -> [AArch64 AReg freg ()] Source #

pods :: [freg] -> [AArch64 AReg freg ()] Source #

pSym :: Pretty a => a -> Doc ann Source #