Copyright | (c) roki 2019 |
---|---|
License | MIT |
Maintainer | falgon53@yahoo.co.jp |
Stability | experimental |
Portability | POSIX |
Safe Haskell | Safe |
Language | Haskell2010 |
Types and classes of the x86_64 registers
Synopsis
- class Show a => IsRegister a where
- data AccumulatorReg
- data BaseReg
- data CounterReg
- data DataReg
- data SrcIndexReg
- data DstIndexReg
- data BasePtrReg
- data StackPtrReg
- data ExtendedReg
- data Register
- rax :: Register
- eax :: Register
- ax :: Register
- ah :: Register
- al :: Register
- rbx :: Register
- ebx :: Register
- bx :: Register
- bh :: Register
- bl :: Register
- rcx :: Register
- ecx :: Register
- cx :: Register
- ch :: Register
- cl :: Register
- rdx :: Register
- edx :: Register
- dx :: Register
- dh :: Register
- dl :: Register
- rsi :: Register
- esi :: Register
- si :: Register
- sil :: Register
- rdi :: Register
- edi :: Register
- di :: Register
- dil :: Register
- rbp :: Register
- ebp :: Register
- bp :: Register
- bpl :: Register
- rsp :: Register
- esp :: Register
- sp :: Register
- spl :: Register
- rn :: Int -> Register
- rnd :: Int -> Register
- rnw :: Int -> Register
- rnb :: Int -> Register
- argRegs :: [[Register]]
- popRegs :: Int -> [Register]
Register class
class Show a => IsRegister a where Source #
The register type class
Instances
IsRegister Register Source # | |
IsRegister ExtendedReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register byteWidth :: ExtendedReg -> Natural Source # | |
IsRegister StackPtrReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register byteWidth :: StackPtrReg -> Natural Source # | |
IsRegister BasePtrReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register byteWidth :: BasePtrReg -> Natural Source # | |
IsRegister DstIndexReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register byteWidth :: DstIndexReg -> Natural Source # | |
IsRegister SrcIndexReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register byteWidth :: SrcIndexReg -> Natural Source # | |
IsRegister DataReg Source # | |
IsRegister CounterReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register byteWidth :: CounterReg -> Natural Source # | |
IsRegister BaseReg Source # | |
IsRegister AccumulatorReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register byteWidth :: AccumulatorReg -> Natural Source # |
Registers data types
data AccumulatorReg Source #
The accumulator register.
RAX | Full 64 bits of register |
EAX | Lower 32 bits of register |
AX | Lower 16 bits of register |
AH | Lower 8 bits of register |
AL | Upper 8 bits of |
Instances
Eq AccumulatorReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register (==) :: AccumulatorReg -> AccumulatorReg -> Bool # (/=) :: AccumulatorReg -> AccumulatorReg -> Bool # | |
Ord AccumulatorReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register compare :: AccumulatorReg -> AccumulatorReg -> Ordering # (<) :: AccumulatorReg -> AccumulatorReg -> Bool # (<=) :: AccumulatorReg -> AccumulatorReg -> Bool # (>) :: AccumulatorReg -> AccumulatorReg -> Bool # (>=) :: AccumulatorReg -> AccumulatorReg -> Bool # max :: AccumulatorReg -> AccumulatorReg -> AccumulatorReg # min :: AccumulatorReg -> AccumulatorReg -> AccumulatorReg # | |
Show AccumulatorReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register showsPrec :: Int -> AccumulatorReg -> ShowS # show :: AccumulatorReg -> String # showList :: [AccumulatorReg] -> ShowS # | |
IsRegister AccumulatorReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register byteWidth :: AccumulatorReg -> Natural Source # |
The Base register.
RBX | Full 64 bits of register |
EBX | Lower 32 bits of register |
BX | Lower 16 bits of register |
BH | Lower 8 bit register |
BL | Upper 8 bit register of |
data CounterReg Source #
The Counter register.
RCX | Full 64 bits of register |
ECX | Lower 32 bits of register |
CX | Lower 16 bits of register |
CH | Lower 8 bit register |
CL | Upper 8 bit register of |
Instances
Eq CounterReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register (==) :: CounterReg -> CounterReg -> Bool # (/=) :: CounterReg -> CounterReg -> Bool # | |
Ord CounterReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register compare :: CounterReg -> CounterReg -> Ordering # (<) :: CounterReg -> CounterReg -> Bool # (<=) :: CounterReg -> CounterReg -> Bool # (>) :: CounterReg -> CounterReg -> Bool # (>=) :: CounterReg -> CounterReg -> Bool # max :: CounterReg -> CounterReg -> CounterReg # min :: CounterReg -> CounterReg -> CounterReg # | |
Show CounterReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register showsPrec :: Int -> CounterReg -> ShowS # show :: CounterReg -> String # showList :: [CounterReg] -> ShowS # | |
IsRegister CounterReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register byteWidth :: CounterReg -> Natural Source # |
The Data register.
RDX | Full 64 bits of register |
EDX | Lower 32 bits of register |
DX | Lower 16 bits of register |
DH | Lower 8 bit register |
DL | Upper 8 bit register of |
data SrcIndexReg Source #
The Source Index register.
RSI | Full 64 bits of register |
ESI | Lower 32 bits of register |
SI | Lower 16 bits of register |
SIL | Lower 8 bits of register |
Instances
Eq SrcIndexReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register (==) :: SrcIndexReg -> SrcIndexReg -> Bool # (/=) :: SrcIndexReg -> SrcIndexReg -> Bool # | |
Ord SrcIndexReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register compare :: SrcIndexReg -> SrcIndexReg -> Ordering # (<) :: SrcIndexReg -> SrcIndexReg -> Bool # (<=) :: SrcIndexReg -> SrcIndexReg -> Bool # (>) :: SrcIndexReg -> SrcIndexReg -> Bool # (>=) :: SrcIndexReg -> SrcIndexReg -> Bool # max :: SrcIndexReg -> SrcIndexReg -> SrcIndexReg # min :: SrcIndexReg -> SrcIndexReg -> SrcIndexReg # | |
Show SrcIndexReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register showsPrec :: Int -> SrcIndexReg -> ShowS # show :: SrcIndexReg -> String # showList :: [SrcIndexReg] -> ShowS # | |
IsRegister SrcIndexReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register byteWidth :: SrcIndexReg -> Natural Source # |
data DstIndexReg Source #
The Destination Index register.
RDI | Full 64 bits of register |
EDI | Lower 32 bits of register |
DI | Lower 16 bits of register |
DIL | Lower 8 bits of register |
Instances
Eq DstIndexReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register (==) :: DstIndexReg -> DstIndexReg -> Bool # (/=) :: DstIndexReg -> DstIndexReg -> Bool # | |
Ord DstIndexReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register compare :: DstIndexReg -> DstIndexReg -> Ordering # (<) :: DstIndexReg -> DstIndexReg -> Bool # (<=) :: DstIndexReg -> DstIndexReg -> Bool # (>) :: DstIndexReg -> DstIndexReg -> Bool # (>=) :: DstIndexReg -> DstIndexReg -> Bool # max :: DstIndexReg -> DstIndexReg -> DstIndexReg # min :: DstIndexReg -> DstIndexReg -> DstIndexReg # | |
Show DstIndexReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register showsPrec :: Int -> DstIndexReg -> ShowS # show :: DstIndexReg -> String # showList :: [DstIndexReg] -> ShowS # | |
IsRegister DstIndexReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register byteWidth :: DstIndexReg -> Natural Source # |
data BasePtrReg Source #
The Base Pointer register.
RBP | Full 64 bits of register |
EBP | Lower 32 bits of register |
BP | Lower 16 bits of register |
BPL | Lower 8 bits of register |
Instances
Eq BasePtrReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register (==) :: BasePtrReg -> BasePtrReg -> Bool # (/=) :: BasePtrReg -> BasePtrReg -> Bool # | |
Ord BasePtrReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register compare :: BasePtrReg -> BasePtrReg -> Ordering # (<) :: BasePtrReg -> BasePtrReg -> Bool # (<=) :: BasePtrReg -> BasePtrReg -> Bool # (>) :: BasePtrReg -> BasePtrReg -> Bool # (>=) :: BasePtrReg -> BasePtrReg -> Bool # max :: BasePtrReg -> BasePtrReg -> BasePtrReg # min :: BasePtrReg -> BasePtrReg -> BasePtrReg # | |
Show BasePtrReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register showsPrec :: Int -> BasePtrReg -> ShowS # show :: BasePtrReg -> String # showList :: [BasePtrReg] -> ShowS # | |
IsRegister BasePtrReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register byteWidth :: BasePtrReg -> Natural Source # |
data StackPtrReg Source #
The Stack Pointer register.
RSP | Full 64 bits of register |
ESP | Lower 32 bits of register |
SP | Lower 16 bits of register |
SPL | Lower 8 bits of register |
Instances
Eq StackPtrReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register (==) :: StackPtrReg -> StackPtrReg -> Bool # (/=) :: StackPtrReg -> StackPtrReg -> Bool # | |
Ord StackPtrReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register compare :: StackPtrReg -> StackPtrReg -> Ordering # (<) :: StackPtrReg -> StackPtrReg -> Bool # (<=) :: StackPtrReg -> StackPtrReg -> Bool # (>) :: StackPtrReg -> StackPtrReg -> Bool # (>=) :: StackPtrReg -> StackPtrReg -> Bool # max :: StackPtrReg -> StackPtrReg -> StackPtrReg # min :: StackPtrReg -> StackPtrReg -> StackPtrReg # | |
Show StackPtrReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register showsPrec :: Int -> StackPtrReg -> ShowS # show :: StackPtrReg -> String # showList :: [StackPtrReg] -> ShowS # | |
IsRegister StackPtrReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register byteWidth :: StackPtrReg -> Natural Source # |
data ExtendedReg Source #
The extended general-purpose register (r8-r15).
Rn Int | Full 64 bits of register |
RnD Int | Lower 32 bits of register |
RnW Int | Lower 16 bits of register |
RnB Int | Lower 8 bits of register |
Instances
Bounded ExtendedReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register minBound :: ExtendedReg # maxBound :: ExtendedReg # | |
Eq ExtendedReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register (==) :: ExtendedReg -> ExtendedReg -> Bool # (/=) :: ExtendedReg -> ExtendedReg -> Bool # | |
Ord ExtendedReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register compare :: ExtendedReg -> ExtendedReg -> Ordering # (<) :: ExtendedReg -> ExtendedReg -> Bool # (<=) :: ExtendedReg -> ExtendedReg -> Bool # (>) :: ExtendedReg -> ExtendedReg -> Bool # (>=) :: ExtendedReg -> ExtendedReg -> Bool # max :: ExtendedReg -> ExtendedReg -> ExtendedReg # min :: ExtendedReg -> ExtendedReg -> ExtendedReg # | |
Show ExtendedReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register showsPrec :: Int -> ExtendedReg -> ShowS # show :: ExtendedReg -> String # showList :: [ExtendedReg] -> ShowS # | |
IsRegister ExtendedReg Source # | |
Defined in Htcc.Asm.Intrinsic.Register byteWidth :: ExtendedReg -> Natural Source # |
The registers.
Accumulator AccumulatorReg | The accumulator |
Base BaseReg | The base |
Counter CounterReg | The conuter |
Data DataReg | The data |
SrcIndex SrcIndexReg | The source index |
DstIndex DstIndexReg | The destination index |
BasePtr BasePtrReg | The base pointer index |
StackPtr StackPtrReg | The stack pointer index |
Extended ExtendedReg | The extended general-purpose |