| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Wrench.Isa.M68k
Synopsis
- data M68kIsa w l
- = Move { }
- | MoveA { }
- | Not { }
- | Neg { }
- | Clr { }
- | And { }
- | Or { }
- | Xor { }
- | Add { }
- | Sub { }
- | Mul { }
- | Div { }
- | Cmp { }
- | Asl { }
- | Asr { }
- | Lsl { }
- | Lsr { }
- | Jmp {
- ref :: l
- | Bcc {
- ref :: l
- | Bcs {
- ref :: l
- | Beq {
- ref :: l
- | Bne {
- ref :: l
- | Blt {
- ref :: l
- | Bgt {
- ref :: l
- | Ble {
- ref :: l
- | Bge {
- ref :: l
- | Bmi {
- ref :: l
- | Bpl {
- ref :: l
- | Bvc {
- ref :: l
- | Bvs {
- ref :: l
- | Jsr {
- ref :: l
- | Rts
- | Link { }
- | Unlk { }
- | Halt
- data Argument w l
- data Mode
- data M68kSt w = M68kSt {}
- data IndexRegister
- data DataReg
- dataRegisters :: [DataReg]
- data AddrReg
Documentation
The M68kIsa type represents the instruction set architecture for the M68k machine.
Each constructor corresponds to a specific instruction.
Constructors
| Move | |
| MoveA | |
| Not | |
| Neg | |
| Clr | |
| And | |
| Or | |
| Xor | |
| Add | |
| Sub | |
| Mul | |
| Div | |
| Cmp | |
| Asl | |
| Asr | |
| Lsl | |
| Lsr | |
| Jmp | |
Fields
| |
| Bcc | |
Fields
| |
| Bcs | |
Fields
| |
| Beq | |
Fields
| |
| Bne | |
Fields
| |
| Blt | |
Fields
| |
| Bgt | |
Fields
| |
| Ble | |
Fields
| |
| Bge | |
Fields
| |
| Bmi | |
Fields
| |
| Bpl | |
Fields
| |
| Bvc | |
Fields
| |
| Bvs | |
Fields
| |
| Jsr | |
Fields
| |
| Rts | |
| Link | |
| Unlk | |
| Halt | |
Instances
| IsWord w => DerefMnemonic (M68kIsa w) w Source # | |
Defined in Wrench.Isa.M68k | |
| IsWord w => Machine (M68kSt w) (M68kIsa w w) w Source # | |
| Show l => Show (M68kIsa w l) Source # | |
| Eq l => Eq (M68kIsa w l) Source # | |
| ByteSizeT w => ByteSize (M68kIsa w l) Source # | |
| CommentStart (M68kIsa w l) Source # | |
Defined in Wrench.Isa.M68k Methods | |
| IsWord w => MnemonicParser (M68kIsa w (Ref w)) Source # | |
Note that for (A0)+ and −(A0), the actual increment or decrement value is dependent on the operand size: a byte access adjusts the address register by 1, a word by 2, and a long by 4.
Constructors
| DirectDataReg DataReg | |
| DirectAddrReg AddrReg | |
| IndirectAddrReg Int AddrReg (Maybe IndexRegister) | Address with a 16-bit signed offset, e.g. 16(A0) TODO: Register indirect with index register & 8-bit signed offset e.g. 8(A0,D0) or 8(A0,A1) |
| IndirectAddrRegPreDecrement AddrReg | Address with pre-decrement, e.g. −(A0) |
| IndirectAddrRegPostIncrement AddrReg | Address with post-increment, e.g. (A0)+ |
| Immediate l |
Constructors
| M68kSt | |
Instances
| Show w => Show (M68kSt w) Source # | |||||||||
| IsWord w => InitState (M68kSt w) Source # | |||||||||
| IsWord w => Inspectable (M68kSt w) Source # | |||||||||
Defined in Wrench.Isa.M68k Associated Types
| |||||||||
| IsWord w => Machine (M68kSt w) (M68kIsa w w) w Source # | |||||||||
| type IsaOf (M68kSt w) Source # | |||||||||
Defined in Wrench.Isa.M68k | |||||||||
| type MemOf (M68kSt w) Source # | |||||||||
Defined in Wrench.Isa.M68k | |||||||||
| type WordOf (M68kSt w) Source # | |||||||||
Defined in Wrench.Isa.M68k | |||||||||
data IndexRegister Source #
Instances
| Show IndexRegister Source # | |
Defined in Wrench.Isa.M68k Methods showsPrec :: Int -> IndexRegister -> ShowS # show :: IndexRegister -> String # showList :: [IndexRegister] -> ShowS # | |
| Eq IndexRegister Source # | |
Defined in Wrench.Isa.M68k Methods (==) :: IndexRegister -> IndexRegister -> Bool # (/=) :: IndexRegister -> IndexRegister -> Bool # | |
Instances
dataRegisters :: [DataReg] Source #
Instances
| Generic AddrReg Source # | |||||
Defined in Wrench.Isa.M68k Associated Types
| |||||
| Read AddrReg Source # | |||||
| Show AddrReg Source # | |||||
| Eq AddrReg Source # | |||||
| Hashable AddrReg Source # | |||||
Defined in Wrench.Isa.M68k | |||||
| Default w => Default (HashMap AddrReg w) Source # | |||||
Defined in Wrench.Isa.M68k | |||||
| type Rep AddrReg Source # | |||||
Defined in Wrench.Isa.M68k type Rep AddrReg = D1 ('MetaData "AddrReg" "Wrench.Isa.M68k" "wrench-0.0.6.3-GOHhJzRU80S94JGLGysv3F" 'False) (((C1 ('MetaCons "A0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "A1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "A2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "A3" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "A4" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "A5" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "A6" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "A7" 'PrefixI 'False) (U1 :: Type -> Type)))) | |||||