Copyright | (c) Inokentiy Babushkin, 2016 |
---|---|
License | BSD3 |
Maintainer | Inokentiy Babushkin <inokentiy.babushkin@googlemail.com> |
Stability | experimental |
Safe Haskell | Safe |
Language | Haskell2010 |
This module contains ARM specific datatypes and their respective Storable instances. Most of the types are used internally and can be looked up here. Some of them are currently unused, as the headers only define them as symbolic constants whose type is never used explicitly, which poses a problem for a memory-safe port to the Haskell language, this is about to get fixed in a future version.
Apart from that, because the module is generated using C2HS, some of the documentation is misplaced or rendered incorrectly, so if in doubt, read the source file.
- data ArmShifter
- data ArmConditionCode
- data ArmSysreg
- = ArmSysregInvalid
- | ArmSysregSpsrC
- | ArmSysregSpsrX
- | ArmSysregSpsrS
- | ArmSysregSpsrF
- | ArmSysregCpsrC
- | ArmSysregCpsrX
- | ArmSysregCpsrS
- | ArmSysregCpsrF
- | ArmSysregApsr
- | ArmSysregApsrG
- | ArmSysregApsrNzcvq
- | ArmSysregApsrNzcvqg
- | ArmSysregIapsr
- | ArmSysregIapsrG
- | ArmSysregIapsrNzcvqg
- | ArmSysregIapsrNzcvq
- | ArmSysregEapsr
- | ArmSysregEapsrG
- | ArmSysregEapsrNzcvqg
- | ArmSysregEapsrNzcvq
- | ArmSysregXpsr
- | ArmSysregXpsrG
- | ArmSysregXpsrNzcvqg
- | ArmSysregXpsrNzcvq
- | ArmSysregIpsr
- | ArmSysregEpsr
- | ArmSysregIepsr
- | ArmSysregMsp
- | ArmSysregPsp
- | ArmSysregPrimask
- | ArmSysregBasepri
- | ArmSysregBasepriMax
- | ArmSysregFaultmask
- | ArmSysregControl
- | ArmSysregR8Usr
- | ArmSysregR9Usr
- | ArmSysregR10Usr
- | ArmSysregR11Usr
- | ArmSysregR12Usr
- | ArmSysregSpUsr
- | ArmSysregLrUsr
- | ArmSysregR8Fiq
- | ArmSysregR9Fiq
- | ArmSysregR10Fiq
- | ArmSysregR11Fiq
- | ArmSysregR12Fiq
- | ArmSysregSpFiq
- | ArmSysregLrFiq
- | ArmSysregLrIrq
- | ArmSysregSpIrq
- | ArmSysregLrSvc
- | ArmSysregSpSvc
- | ArmSysregLrAbt
- | ArmSysregSpAbt
- | ArmSysregLrUnd
- | ArmSysregSpUnd
- | ArmSysregLrMon
- | ArmSysregSpMon
- | ArmSysregElrHyp
- | ArmSysregSpHyp
- | ArmSysregSpsrFiq
- | ArmSysregSpsrIrq
- | ArmSysregSpsrSvc
- | ArmSysregSpsrAbt
- | ArmSysregSpsrUnd
- | ArmSysregSpsrMon
- | ArmSysregSpsrHyp
- data ArmMemBarrier
- data ArmOpType
- data ArmSetendType
- data ArmCpsmodeType
- data ArmCpsflagType
- data ArmVectordataType
- = ArmVectordataInvalid
- | ArmVectordataI8
- | ArmVectordataI16
- | ArmVectordataI32
- | ArmVectordataI64
- | ArmVectordataS8
- | ArmVectordataS16
- | ArmVectordataS32
- | ArmVectordataS64
- | ArmVectordataU8
- | ArmVectordataU16
- | ArmVectordataU32
- | ArmVectordataU64
- | ArmVectordataP8
- | ArmVectordataF32
- | ArmVectordataF64
- | ArmVectordataF16f64
- | ArmVectordataF64f16
- | ArmVectordataF32f16
- | ArmVectordataF16f32
- | ArmVectordataF64f32
- | ArmVectordataF32f64
- | ArmVectordataS32f32
- | ArmVectordataU32f32
- | ArmVectordataF32s32
- | ArmVectordataF32u32
- | ArmVectordataF64s16
- | ArmVectordataF32s16
- | ArmVectordataF64s32
- | ArmVectordataS16f64
- | ArmVectordataS16f32
- | ArmVectordataS32f64
- | ArmVectordataU16f64
- | ArmVectordataU16f32
- | ArmVectordataU32f64
- | ArmVectordataF64u16
- | ArmVectordataF32u16
- | ArmVectordataF64u32
- data ArmReg
- = ArmRegInvalid
- | ArmRegApsr
- | ArmRegApsrNzcv
- | ArmRegCpsr
- | ArmRegFpexc
- | ArmRegFpinst
- | ArmRegFpscr
- | ArmRegFpscrNzcv
- | ArmRegFpsid
- | ArmRegItstate
- | ArmRegLr
- | ArmRegR14
- | ArmRegPc
- | ArmRegR15
- | ArmRegSp
- | ArmRegR13
- | ArmRegSpsr
- | ArmRegD0
- | ArmRegD1
- | ArmRegD2
- | ArmRegD3
- | ArmRegD4
- | ArmRegD5
- | ArmRegD6
- | ArmRegD7
- | ArmRegD8
- | ArmRegD9
- | ArmRegD10
- | ArmRegD11
- | ArmRegD12
- | ArmRegD13
- | ArmRegD14
- | ArmRegD15
- | ArmRegD16
- | ArmRegD17
- | ArmRegD18
- | ArmRegD19
- | ArmRegD20
- | ArmRegD21
- | ArmRegD22
- | ArmRegD23
- | ArmRegD24
- | ArmRegD25
- | ArmRegD26
- | ArmRegD27
- | ArmRegD28
- | ArmRegD29
- | ArmRegD30
- | ArmRegD31
- | ArmRegFpinst2
- | ArmRegMvfr0
- | ArmRegMvfr1
- | ArmRegMvfr2
- | ArmRegQ0
- | ArmRegQ1
- | ArmRegQ2
- | ArmRegQ3
- | ArmRegQ4
- | ArmRegQ5
- | ArmRegQ6
- | ArmRegQ7
- | ArmRegQ8
- | ArmRegQ9
- | ArmRegQ10
- | ArmRegQ11
- | ArmRegQ12
- | ArmRegQ13
- | ArmRegQ14
- | ArmRegQ15
- | ArmRegR0
- | ArmRegR1
- | ArmRegR2
- | ArmRegR3
- | ArmRegR4
- | ArmRegR5
- | ArmRegR6
- | ArmRegR7
- | ArmRegR8
- | ArmRegR9
- | ArmRegSb
- | ArmRegR10
- | ArmRegSl
- | ArmRegR11
- | ArmRegFp
- | ArmRegR12
- | ArmRegIp
- | ArmRegS0
- | ArmRegS1
- | ArmRegS2
- | ArmRegS3
- | ArmRegS4
- | ArmRegS5
- | ArmRegS6
- | ArmRegS7
- | ArmRegS8
- | ArmRegS9
- | ArmRegS10
- | ArmRegS11
- | ArmRegS12
- | ArmRegS13
- | ArmRegS14
- | ArmRegS15
- | ArmRegS16
- | ArmRegS17
- | ArmRegS18
- | ArmRegS19
- | ArmRegS20
- | ArmRegS21
- | ArmRegS22
- | ArmRegS23
- | ArmRegS24
- | ArmRegS25
- | ArmRegS26
- | ArmRegS27
- | ArmRegS28
- | ArmRegS29
- | ArmRegS30
- | ArmRegS31
- | ArmRegEnding
- data ArmOpMemStruct = ArmOpMemStruct {}
- data CsArmOpValue
- data CsArmOp = CsArmOp {
- vectorIndex :: Int32
- shift :: (ArmShifter, Word32)
- value :: CsArmOpValue
- subtracted :: Bool
- access :: Word8
- neon_lane :: Int8
- data CsArm = CsArm {}
- data ArmInsn
- = ArmInsInvalid
- | ArmInsAdc
- | ArmInsAdd
- | ArmInsAdr
- | ArmInsAesd
- | ArmInsAese
- | ArmInsAesimc
- | ArmInsAesmc
- | ArmInsAnd
- | ArmInsBfc
- | ArmInsBfi
- | ArmInsBic
- | ArmInsBkpt
- | ArmInsBl
- | ArmInsBlx
- | ArmInsBx
- | ArmInsBxj
- | ArmInsB
- | ArmInsCdp
- | ArmInsCdp2
- | ArmInsClrex
- | ArmInsClz
- | ArmInsCmn
- | ArmInsCmp
- | ArmInsCps
- | ArmInsCrc32b
- | ArmInsCrc32cb
- | ArmInsCrc32ch
- | ArmInsCrc32cw
- | ArmInsCrc32h
- | ArmInsCrc32w
- | ArmInsDbg
- | ArmInsDmb
- | ArmInsDsb
- | ArmInsEor
- | ArmInsEret
- | ArmInsVmov
- | ArmInsFldmdbx
- | ArmInsFldmiax
- | ArmInsVmrs
- | ArmInsFstmdbx
- | ArmInsFstmiax
- | ArmInsHint
- | ArmInsHlt
- | ArmInsHvc
- | ArmInsIsb
- | ArmInsLda
- | ArmInsLdab
- | ArmInsLdaex
- | ArmInsLdaexb
- | ArmInsLdaexd
- | ArmInsLdaexh
- | ArmInsLdah
- | ArmInsLdc2l
- | ArmInsLdc2
- | ArmInsLdcl
- | ArmInsLdc
- | ArmInsLdmda
- | ArmInsLdmdb
- | ArmInsLdm
- | ArmInsLdmib
- | ArmInsLdrbt
- | ArmInsLdrb
- | ArmInsLdrd
- | ArmInsLdrex
- | ArmInsLdrexb
- | ArmInsLdrexd
- | ArmInsLdrexh
- | ArmInsLdrh
- | ArmInsLdrht
- | ArmInsLdrsb
- | ArmInsLdrsbt
- | ArmInsLdrsh
- | ArmInsLdrsht
- | ArmInsLdrt
- | ArmInsLdr
- | ArmInsMcr
- | ArmInsMcr2
- | ArmInsMcrr
- | ArmInsMcrr2
- | ArmInsMla
- | ArmInsMls
- | ArmInsMov
- | ArmInsMovt
- | ArmInsMovw
- | ArmInsMrc
- | ArmInsMrc2
- | ArmInsMrrc
- | ArmInsMrrc2
- | ArmInsMrs
- | ArmInsMsr
- | ArmInsMul
- | ArmInsMvn
- | ArmInsOrr
- | ArmInsPkhbt
- | ArmInsPkhtb
- | ArmInsPldw
- | ArmInsPld
- | ArmInsPli
- | ArmInsQadd
- | ArmInsQadd16
- | ArmInsQadd8
- | ArmInsQasx
- | ArmInsQdadd
- | ArmInsQdsub
- | ArmInsQsax
- | ArmInsQsub
- | ArmInsQsub16
- | ArmInsQsub8
- | ArmInsRbit
- | ArmInsRev
- | ArmInsRev16
- | ArmInsRevsh
- | ArmInsRfeda
- | ArmInsRfedb
- | ArmInsRfeia
- | ArmInsRfeib
- | ArmInsRsb
- | ArmInsRsc
- | ArmInsSadd16
- | ArmInsSadd8
- | ArmInsSasx
- | ArmInsSbc
- | ArmInsSbfx
- | ArmInsSdiv
- | ArmInsSel
- | ArmInsSetend
- | ArmInsSha1c
- | ArmInsSha1h
- | ArmInsSha1m
- | ArmInsSha1p
- | ArmInsSha1su0
- | ArmInsSha1su1
- | ArmInsSha256h
- | ArmInsSha256h2
- | ArmInsSha256su0
- | ArmInsSha256su1
- | ArmInsShadd16
- | ArmInsShadd8
- | ArmInsShasx
- | ArmInsShsax
- | ArmInsShsub16
- | ArmInsShsub8
- | ArmInsSmc
- | ArmInsSmlabb
- | ArmInsSmlabt
- | ArmInsSmlad
- | ArmInsSmladx
- | ArmInsSmlal
- | ArmInsSmlalbb
- | ArmInsSmlalbt
- | ArmInsSmlald
- | ArmInsSmlaldx
- | ArmInsSmlaltb
- | ArmInsSmlaltt
- | ArmInsSmlatb
- | ArmInsSmlatt
- | ArmInsSmlawb
- | ArmInsSmlawt
- | ArmInsSmlsd
- | ArmInsSmlsdx
- | ArmInsSmlsld
- | ArmInsSmlsldx
- | ArmInsSmmla
- | ArmInsSmmlar
- | ArmInsSmmls
- | ArmInsSmmlsr
- | ArmInsSmmul
- | ArmInsSmmulr
- | ArmInsSmuad
- | ArmInsSmuadx
- | ArmInsSmulbb
- | ArmInsSmulbt
- | ArmInsSmull
- | ArmInsSmultb
- | ArmInsSmultt
- | ArmInsSmulwb
- | ArmInsSmulwt
- | ArmInsSmusd
- | ArmInsSmusdx
- | ArmInsSrsda
- | ArmInsSrsdb
- | ArmInsSrsia
- | ArmInsSrsib
- | ArmInsSsat
- | ArmInsSsat16
- | ArmInsSsax
- | ArmInsSsub16
- | ArmInsSsub8
- | ArmInsStc2l
- | ArmInsStc2
- | ArmInsStcl
- | ArmInsStc
- | ArmInsStl
- | ArmInsStlb
- | ArmInsStlex
- | ArmInsStlexb
- | ArmInsStlexd
- | ArmInsStlexh
- | ArmInsStlh
- | ArmInsStmda
- | ArmInsStmdb
- | ArmInsStm
- | ArmInsStmib
- | ArmInsStrbt
- | ArmInsStrb
- | ArmInsStrd
- | ArmInsStrex
- | ArmInsStrexb
- | ArmInsStrexd
- | ArmInsStrexh
- | ArmInsStrh
- | ArmInsStrht
- | ArmInsStrt
- | ArmInsStr
- | ArmInsSub
- | ArmInsSvc
- | ArmInsSwp
- | ArmInsSwpb
- | ArmInsSxtab
- | ArmInsSxtab16
- | ArmInsSxtah
- | ArmInsSxtb
- | ArmInsSxtb16
- | ArmInsSxth
- | ArmInsTeq
- | ArmInsTrap
- | ArmInsTst
- | ArmInsUadd16
- | ArmInsUadd8
- | ArmInsUasx
- | ArmInsUbfx
- | ArmInsUdf
- | ArmInsUdiv
- | ArmInsUhadd16
- | ArmInsUhadd8
- | ArmInsUhasx
- | ArmInsUhsax
- | ArmInsUhsub16
- | ArmInsUhsub8
- | ArmInsUmaal
- | ArmInsUmlal
- | ArmInsUmull
- | ArmInsUqadd16
- | ArmInsUqadd8
- | ArmInsUqasx
- | ArmInsUqsax
- | ArmInsUqsub16
- | ArmInsUqsub8
- | ArmInsUsad8
- | ArmInsUsada8
- | ArmInsUsat
- | ArmInsUsat16
- | ArmInsUsax
- | ArmInsUsub16
- | ArmInsUsub8
- | ArmInsUxtab
- | ArmInsUxtab16
- | ArmInsUxtah
- | ArmInsUxtb
- | ArmInsUxtb16
- | ArmInsUxth
- | ArmInsVabal
- | ArmInsVaba
- | ArmInsVabdl
- | ArmInsVabd
- | ArmInsVabs
- | ArmInsVacge
- | ArmInsVacgt
- | ArmInsVadd
- | ArmInsVaddhn
- | ArmInsVaddl
- | ArmInsVaddw
- | ArmInsVand
- | ArmInsVbic
- | ArmInsVbif
- | ArmInsVbit
- | ArmInsVbsl
- | ArmInsVceq
- | ArmInsVcge
- | ArmInsVcgt
- | ArmInsVcle
- | ArmInsVcls
- | ArmInsVclt
- | ArmInsVclz
- | ArmInsVcmp
- | ArmInsVcmpe
- | ArmInsVcnt
- | ArmInsVcvta
- | ArmInsVcvtb
- | ArmInsVcvt
- | ArmInsVcvtm
- | ArmInsVcvtn
- | ArmInsVcvtp
- | ArmInsVcvtt
- | ArmInsVdiv
- | ArmInsVdup
- | ArmInsVeor
- | ArmInsVext
- | ArmInsVfma
- | ArmInsVfms
- | ArmInsVfnma
- | ArmInsVfnms
- | ArmInsVhadd
- | ArmInsVhsub
- | ArmInsVld1
- | ArmInsVld2
- | ArmInsVld3
- | ArmInsVld4
- | ArmInsVldmdb
- | ArmInsVldmia
- | ArmInsVldr
- | ArmInsVmaxnm
- | ArmInsVmax
- | ArmInsVminnm
- | ArmInsVmin
- | ArmInsVmla
- | ArmInsVmlal
- | ArmInsVmls
- | ArmInsVmlsl
- | ArmInsVmovl
- | ArmInsVmovn
- | ArmInsVmsr
- | ArmInsVmul
- | ArmInsVmull
- | ArmInsVmvn
- | ArmInsVneg
- | ArmInsVnmla
- | ArmInsVnmls
- | ArmInsVnmul
- | ArmInsVorn
- | ArmInsVorr
- | ArmInsVpadal
- | ArmInsVpaddl
- | ArmInsVpadd
- | ArmInsVpmax
- | ArmInsVpmin
- | ArmInsVqabs
- | ArmInsVqadd
- | ArmInsVqdmlal
- | ArmInsVqdmlsl
- | ArmInsVqdmulh
- | ArmInsVqdmull
- | ArmInsVqmovun
- | ArmInsVqmovn
- | ArmInsVqneg
- | ArmInsVqrdmulh
- | ArmInsVqrshl
- | ArmInsVqrshrn
- | ArmInsVqrshrun
- | ArmInsVqshl
- | ArmInsVqshlu
- | ArmInsVqshrn
- | ArmInsVqshrun
- | ArmInsVqsub
- | ArmInsVraddhn
- | ArmInsVrecpe
- | ArmInsVrecps
- | ArmInsVrev16
- | ArmInsVrev32
- | ArmInsVrev64
- | ArmInsVrhadd
- | ArmInsVrinta
- | ArmInsVrintm
- | ArmInsVrintn
- | ArmInsVrintp
- | ArmInsVrintr
- | ArmInsVrintx
- | ArmInsVrintz
- | ArmInsVrshl
- | ArmInsVrshrn
- | ArmInsVrshr
- | ArmInsVrsqrte
- | ArmInsVrsqrts
- | ArmInsVrsra
- | ArmInsVrsubhn
- | ArmInsVseleq
- | ArmInsVselge
- | ArmInsVselgt
- | ArmInsVselvs
- | ArmInsVshll
- | ArmInsVshl
- | ArmInsVshrn
- | ArmInsVshr
- | ArmInsVsli
- | ArmInsVsqrt
- | ArmInsVsra
- | ArmInsVsri
- | ArmInsVst1
- | ArmInsVst2
- | ArmInsVst3
- | ArmInsVst4
- | ArmInsVstmdb
- | ArmInsVstmia
- | ArmInsVstr
- | ArmInsVsub
- | ArmInsVsubhn
- | ArmInsVsubl
- | ArmInsVsubw
- | ArmInsVswp
- | ArmInsVtbl
- | ArmInsVtbx
- | ArmInsVcvtr
- | ArmInsVtrn
- | ArmInsVtst
- | ArmInsVuzp
- | ArmInsVzip
- | ArmInsAddw
- | ArmInsAsr
- | ArmInsDcps1
- | ArmInsDcps2
- | ArmInsDcps3
- | ArmInsIt
- | ArmInsLsl
- | ArmInsLsr
- | ArmInsOrn
- | ArmInsRor
- | ArmInsRrx
- | ArmInsSubw
- | ArmInsTbb
- | ArmInsTbh
- | ArmInsCbnz
- | ArmInsCbz
- | ArmInsPop
- | ArmInsPush
- | ArmInsNop
- | ArmInsYield
- | ArmInsWfe
- | ArmInsWfi
- | ArmInsSev
- | ArmInsSevl
- | ArmInsVpush
- | ArmInsVpop
- | ArmInsEnding
- data ArmInsnGroup
- = ArmGrpInvalid
- | ArmGrpJump
- | ArmGrpCall
- | ArmGrpInt
- | ArmGrpPrivilege
- | ArmGrpCrypto
- | ArmGrpDatabarrier
- | ArmGrpDivide
- | ArmGrpFparmv8
- | ArmGrpMultpro
- | ArmGrpNeon
- | ArmGrpT2extractpack
- | ArmGrpThumb2dsp
- | ArmGrpTrustzone
- | ArmGrpV4t
- | ArmGrpV5t
- | ArmGrpV5te
- | ArmGrpV6
- | ArmGrpV6t2
- | ArmGrpV7
- | ArmGrpV8
- | ArmGrpVfp2
- | ArmGrpVfp3
- | ArmGrpVfp4
- | ArmGrpArm
- | ArmGrpMclass
- | ArmGrpNotmclass
- | ArmGrpThumb
- | ArmGrpThumb1only
- | ArmGrpThumb2
- | ArmGrpPrev8
- | ArmGrpFpvmlx
- | ArmGrpMulops
- | ArmGrpCrc
- | ArmGrpDpvfp
- | ArmGrpV6m
- | ArmGrpVirtualization
- | ArmGrpEnding
Documentation
data ArmShifter Source #
ARM shift type
data ArmConditionCode Source #
ARM condition code
system registers
data ArmMemBarrier Source #
memory barrier operands (map directly to the 4-bit encoding of the option field for Memory Barrier operations, when given as an integer)
operand type for instruction's operands
data ArmSetendType Source #
operand type for SETEND instruction
Bounded ArmSetendType Source # | |
Enum ArmSetendType Source # | operand type for SETEND instruction |
Eq ArmSetendType Source # | |
Show ArmSetendType Source # | |
data ArmCpsmodeType Source #
data ArmCpsflagType Source #
Bounded ArmCpsflagType Source # | |
Enum ArmCpsflagType Source # | ARM registers |
Eq ArmCpsflagType Source # | |
Show ArmCpsflagType Source # | |
data ArmVectordataType Source #
data type for elements of vector instructions
data ArmOpMemStruct Source #
memory access operands
associated with ArmOpMem
operand type
data CsArmOpValue Source #
possible operand types (corresponding to the tagged union in the C header)
Reg Word32 | register value for |
Sysreg Word32 | register value for |
Imm Int32 | immediate value for |
Cimm Int32 | immediate value for |
Pimm Int32 | immediate value for |
Fp Double | floating point value for |
Mem ArmOpMemStruct | base,index,scale,disp value for
|
Setend ArmSetendType | SETEND instruction's operand type |
Undefined | invalid operand value, for |
instruction operands
CsArmOp | |
|
instruction datatype
CsArm | |
|
ARM instructions
data ArmInsnGroup Source #
ARM instruction groups