 | harpy-0.2: Runtime code generation for x86 machine code | Contents | Index |
|
| Harpy.X86Assembler | | Portability | non-portable | | Stability | provisional | | Maintainer | {magr,klee}@cs.tu-berlin.de |
|
|
|
|
|
| Description |
| A type class based layer on top of X86CodeGen
which determines the addressing modes from the types of the
operands.
|
|
|
| Documentation |
|
| newtype Reg8 |
| Constructors | | Instances | | Seta Reg8 | | Setae Reg8 | | Setb Reg8 | | Setbe Reg8 | | Setc Reg8 | | Sete Reg8 | | Setg Reg8 | | Setge Reg8 | | Setl Reg8 | | Setle Reg8 | | Setna Reg8 | | Setnae Reg8 | | Setnb Reg8 | | Setnbe Reg8 | | Setnc Reg8 | | Setne Reg8 | | Setng Reg8 | | Setnge Reg8 | | Setnl Reg8 | | Setnle Reg8 | | Setno Reg8 | | Setnp Reg8 | | Setns Reg8 | | Setnz Reg8 | | Seto Reg8 | | Setp Reg8 | | Setpe Reg8 | | Setpo Reg8 | | Sets Reg8 | | Setz Reg8 | | Adc Reg8 Reg8 | | Add Reg8 Reg8 | | And Reg8 Reg8 | | Cmp Reg8 Reg8 | | Mov Addr Reg8 | | Mov Ind Reg8 | | Mov Reg8 Addr | | Mov Reg8 Ind | | Mov Reg8 Reg8 | | Mov Reg8 (Disp, Reg32) | | Mov Reg8 (Disp, Reg32, Scale) | | Mov Reg8 (Reg32, Reg32, Scale) | | Mov Reg8 (Disp, Reg32, Reg32, Scale) | | Mov (Disp, Reg32) Reg8 | | Mov (Disp, Reg32, Scale) Reg8 | | Mov (Reg32, Reg32, Scale) Reg8 | | Mov (Disp, Reg32, Reg32, Scale) Reg8 | | Movsxb Reg32 Reg8 | | Movzxb Reg32 Reg8 | | Or Reg8 Reg8 | | Rcl Addr Reg8 | | Rcl Ind Reg8 | | Rcl Reg32 Reg8 | | Rcl (Disp, Reg32) Reg8 | | Rcr Addr Reg8 | | Rcr Ind Reg8 | | Rcr Reg32 Reg8 | | Rcr (Disp, Reg32) Reg8 | | Rol Addr Reg8 | | Rol Ind Reg8 | | Rol Reg32 Reg8 | | Rol (Disp, Reg32) Reg8 | | Ror Addr Reg8 | | Ror Ind Reg8 | | Ror Reg32 Reg8 | | Ror (Disp, Reg32) Reg8 | | Sal Addr Reg8 | | Sal Ind Reg8 | | Sal Reg32 Reg8 | | Sal (Disp, Reg32) Reg8 | | Sar Addr Reg8 | | Sar Ind Reg8 | | Sar Reg32 Reg8 | | Sar (Disp, Reg32) Reg8 | | Sbb Reg8 Reg8 | | Shl Addr Reg8 | | Shl Ind Reg8 | | Shl Reg32 Reg8 | | Shl (Disp, Reg32) Reg8 | | Shr Addr Reg8 | | Shr Ind Reg8 | | Shr Reg32 Reg8 | | Shr (Disp, Reg32) Reg8 | | Sub Reg8 Reg8 | | Xadd Addr Reg8 | | Xadd Ind Reg8 | | Xadd Reg8 Reg8 | | Xadd (Disp, Reg32) Reg8 | | Xchg Addr Reg8 | | Xchg Ind Reg8 | | Xchg Reg8 Reg8 | | Xchg (Disp, Reg32) Reg8 | | Xor Reg8 Reg8 | | Shld Reg32 Reg32 Reg8 | | Shrd Reg32 Reg32 Reg8 |
|
|
|
| al :: Reg8 |
|
| cl :: Reg8 |
|
| dl :: Reg8 |
|
| bl :: Reg8 |
|
| ah :: Reg8 |
|
| ch :: Reg8 |
|
| dh :: Reg8 |
|
| bh :: Reg8 |
|
| newtype Reg16 |
| Constructors | | Instances | | Mov Addr Reg16 | | Mov Ind Reg16 | | Mov Reg16 Addr | | Mov Reg16 Ind | | Mov Reg16 Reg16 | | Mov Reg16 (Disp, Reg32) | | Mov Reg16 (Disp, Reg32, Scale) | | Mov Reg16 (Reg32, Reg32, Scale) | | Mov Reg16 (Disp, Reg32, Reg32, Scale) | | Mov (Disp, Reg32) Reg16 | | Mov (Disp, Reg32, Scale) Reg16 | | Mov (Reg32, Reg32, Scale) Reg16 | | Mov (Disp, Reg32, Reg32, Scale) Reg16 | | Movsxw Reg32 Reg16 | | Movzxw Reg32 Reg16 |
|
|
|
| ax :: Reg16 |
|
| cx :: Reg16 |
|
| dx :: Reg16 |
|
| bx :: Reg16 |
|
| sp :: Reg16 |
|
| bp :: Reg16 |
|
| si :: Reg16 |
|
| di :: Reg16 |
|
| newtype Reg32 |
| Constructors | | Instances | | Call Reg32 | | Call (Disp, Reg32) | | Dec Reg32 | | Dec (Disp, Reg32) | | Div Reg32 | | Div (Disp, Reg32) | | Eq Reg32 | | Idiv Reg32 | | Idiv (Disp, Reg32) | | Inc Reg32 | | Inc (Disp, Reg32) | | Jmp Reg32 | | Jmp (Disp, Reg32) | | Mul Reg32 | | Mul (Disp, Reg32) | | Neg Reg32 | | Neg (Disp, Reg32) | | Not Reg32 | | Not (Disp, Reg32) | | Pop Reg32 | | Pop (Disp, Reg32) | | Push Reg32 | | Push (Disp, Reg32) | | Push (Disp, Reg32, Scale) | | Push (Reg32, Reg32, Scale) | | Push (Disp, Reg32, Reg32, Scale) | | Seta (Disp, Reg32) | | Setae (Disp, Reg32) | | Setb (Disp, Reg32) | | Setbe (Disp, Reg32) | | Setc (Disp, Reg32) | | Sete (Disp, Reg32) | | Setg (Disp, Reg32) | | Setge (Disp, Reg32) | | Setl (Disp, Reg32) | | Setle (Disp, Reg32) | | Setna (Disp, Reg32) | | Setnae (Disp, Reg32) | | Setnb (Disp, Reg32) | | Setnbe (Disp, Reg32) | | Setnc (Disp, Reg32) | | Setne (Disp, Reg32) | | Setng (Disp, Reg32) | | Setnge (Disp, Reg32) | | Setnl (Disp, Reg32) | | Setnle (Disp, Reg32) | | Setno (Disp, Reg32) | | Setnp (Disp, Reg32) | | Setns (Disp, Reg32) | | Setnz (Disp, Reg32) | | Seto (Disp, Reg32) | | Setp (Disp, Reg32) | | Setpe (Disp, Reg32) | | Setpo (Disp, Reg32) | | Sets (Disp, Reg32) | | Setz (Disp, Reg32) | | Show Reg32 | | Adc Addr Reg32 | | Adc Ind Reg32 | | Adc Reg32 Addr | | Adc Reg32 Ind | | Adc Reg32 Reg32 | | Adc Reg32 Word32 | | Adc Reg32 (Disp, Reg32) | | Adc (Disp, Reg32) Reg32 | | Adc (Disp, Reg32) Word32 | | Adc (Disp, Reg32) Word8 | | Add Addr Reg32 | | Add Ind Reg32 | | Add Reg32 Addr | | Add Reg32 Ind | | Add Reg32 Reg32 | | Add Reg32 Word32 | | Add Reg32 (Disp, Reg32) | | Add (Disp, Reg32) Reg32 | | Add (Disp, Reg32) Word32 | | Add (Disp, Reg32) Word8 | | And Addr Reg32 | | And Ind Reg32 | | And Reg32 Addr | | And Reg32 Ind | | And Reg32 Reg32 | | And Reg32 Word32 | | And Reg32 (Disp, Reg32) | | And (Disp, Reg32) Reg32 | | And (Disp, Reg32) Word32 | | And (Disp, Reg32) Word8 | | Cmova Reg32 Addr | | Cmova Reg32 Ind | | Cmova Reg32 Reg32 | | Cmova Reg32 (Disp, Reg32) | | Cmovae Reg32 Addr | | Cmovae Reg32 Ind | | Cmovae Reg32 Reg32 | | Cmovae Reg32 (Disp, Reg32) | | Cmovb Reg32 Addr | | Cmovb Reg32 Ind | | Cmovb Reg32 Reg32 | | Cmovb Reg32 (Disp, Reg32) | | Cmovbe Reg32 Addr | | Cmovbe Reg32 Ind | | Cmovbe Reg32 Reg32 | | Cmovbe Reg32 (Disp, Reg32) | | Cmovc Reg32 Addr | | Cmovc Reg32 Ind | | Cmovc Reg32 Reg32 | | Cmovc Reg32 (Disp, Reg32) | | Cmove Reg32 Addr | | Cmove Reg32 Ind | | Cmove Reg32 Reg32 | | Cmove Reg32 (Disp, Reg32) | | Cmovg Reg32 Addr | | Cmovg Reg32 Ind | | Cmovg Reg32 Reg32 | | Cmovg Reg32 (Disp, Reg32) | | Cmovge Reg32 Addr | | Cmovge Reg32 Ind | | Cmovge Reg32 Reg32 | | Cmovge Reg32 (Disp, Reg32) | | Cmovl Reg32 Addr | | Cmovl Reg32 Ind | | Cmovl Reg32 Reg32 | | Cmovl Reg32 (Disp, Reg32) | | Cmovle Reg32 Addr | | Cmovle Reg32 Ind | | Cmovle Reg32 Reg32 | | Cmovle Reg32 (Disp, Reg32) | | Cmovna Reg32 Addr | | Cmovna Reg32 Ind | | Cmovna Reg32 Reg32 | | Cmovna Reg32 (Disp, Reg32) | | Cmovnae Reg32 Addr | | Cmovnae Reg32 Ind | | Cmovnae Reg32 Reg32 | | Cmovnae Reg32 (Disp, Reg32) | | Cmovnb Reg32 Addr | | Cmovnb Reg32 Ind | | Cmovnb Reg32 Reg32 | | Cmovnb Reg32 (Disp, Reg32) | | Cmovnbe Reg32 Addr | | Cmovnbe Reg32 Ind | | Cmovnbe Reg32 Reg32 | | Cmovnbe Reg32 (Disp, Reg32) | | Cmovnc Reg32 Addr | | Cmovnc Reg32 Ind | | Cmovnc Reg32 Reg32 | | Cmovnc Reg32 (Disp, Reg32) | | Cmovne Reg32 Addr | | Cmovne Reg32 Ind | | Cmovne Reg32 Reg32 | | Cmovne Reg32 (Disp, Reg32) | | Cmovng Reg32 Addr | | Cmovng Reg32 Ind | | Cmovng Reg32 Reg32 | | Cmovng Reg32 (Disp, Reg32) | | Cmovnge Reg32 Addr | | Cmovnge Reg32 Ind | | Cmovnge Reg32 Reg32 | | Cmovnge Reg32 (Disp, Reg32) | | Cmovnl Reg32 Addr | | Cmovnl Reg32 Ind | | Cmovnl Reg32 Reg32 | | Cmovnl Reg32 (Disp, Reg32) | | Cmovnle Reg32 Addr | | Cmovnle Reg32 Ind | | Cmovnle Reg32 Reg32 | | Cmovnle Reg32 (Disp, Reg32) | | Cmovno Reg32 Addr | | Cmovno Reg32 Ind | | Cmovno Reg32 Reg32 | | Cmovno Reg32 (Disp, Reg32) | | Cmovnp Reg32 Addr | | Cmovnp Reg32 Ind | | Cmovnp Reg32 Reg32 | | Cmovnp Reg32 (Disp, Reg32) | | Cmovns Reg32 Addr | | Cmovns Reg32 Ind | | Cmovns Reg32 Reg32 | | Cmovns Reg32 (Disp, Reg32) | | Cmovnz Reg32 Addr | | Cmovnz Reg32 Ind | | Cmovnz Reg32 Reg32 | | Cmovnz Reg32 (Disp, Reg32) | | Cmovo Reg32 Addr | | Cmovo Reg32 Ind | | Cmovo Reg32 Reg32 | | Cmovo Reg32 (Disp, Reg32) | | Cmovp Reg32 Addr | | Cmovp Reg32 Ind | | Cmovp Reg32 Reg32 | | Cmovp Reg32 (Disp, Reg32) | | Cmovpe Reg32 Addr | | Cmovpe Reg32 Ind | | Cmovpe Reg32 Reg32 | | Cmovpe Reg32 (Disp, Reg32) | | Cmovpo Reg32 Addr | | Cmovpo Reg32 Ind | | Cmovpo Reg32 Reg32 | | Cmovpo Reg32 (Disp, Reg32) | | Cmovs Reg32 Addr | | Cmovs Reg32 Ind | | Cmovs Reg32 Reg32 | | Cmovs Reg32 (Disp, Reg32) | | Cmovz Reg32 Addr | | Cmovz Reg32 Ind | | Cmovz Reg32 Reg32 | | Cmovz Reg32 (Disp, Reg32) | | Cmp Addr Reg32 | | Cmp Ind Reg32 | | Cmp Reg32 Addr | | Cmp Reg32 Ind | | Cmp Reg32 Label | | Cmp Reg32 Reg32 | | Cmp Reg32 Word32 | | Cmp Reg32 (Disp, Reg32) | | Cmp (Disp, Reg32) Label | | Cmp (Disp, Reg32) Reg32 | | Cmp (Disp, Reg32) Word32 | | Cmp (Disp, Reg32) Word8 | | Cmpxchg Addr Reg32 | | Cmpxchg Ind Reg32 | | Cmpxchg Reg32 Reg32 | | Cmpxchg (Disp, Reg32) Reg32 | | Lea Reg32 Addr | | Lea Reg32 Ind | | Lea Reg32 (Disp, Reg32) | | Lea Reg32 (Disp, Reg32, Scale) | | Lea Reg32 (Reg32, Reg32, Scale) | | Lea Reg32 (Disp, Reg32, Reg32, Scale) | | Mov Addr Reg32 | | Mov Ind Reg32 | | Mov Reg16 (Disp, Reg32) | | Mov Reg16 (Disp, Reg32, Scale) | | Mov Reg16 (Reg32, Reg32, Scale) | | Mov Reg16 (Disp, Reg32, Reg32, Scale) | | Mov Reg32 Addr | | Mov Reg32 Ind | | Mov Reg32 Label | | Mov Reg32 Reg32 | | Mov Reg32 Word32 | | Mov Reg32 (Disp, Reg32) | | Mov Reg32 (Disp, Reg32, Scale) | | Mov Reg32 (Reg32, Reg32, Scale) | | Mov Reg32 (Disp, Reg32, Reg32, Scale) | | Mov Reg8 (Disp, Reg32) | | Mov Reg8 (Disp, Reg32, Scale) | | Mov Reg8 (Reg32, Reg32, Scale) | | Mov Reg8 (Disp, Reg32, Reg32, Scale) | | Mov (Disp, Reg32) Label | | Mov (Disp, Reg32) Reg16 | | Mov (Disp, Reg32) Reg32 | | Mov (Disp, Reg32) Reg8 | | Mov (Disp, Reg32) Word16 | | Mov (Disp, Reg32) Word32 | | Mov (Disp, Reg32) Word8 | | Mov (Disp, Reg32, Scale) Label | | Mov (Disp, Reg32, Scale) Reg16 | | Mov (Disp, Reg32, Scale) Reg32 | | Mov (Disp, Reg32, Scale) Reg8 | | Mov (Disp, Reg32, Scale) Word16 | | Mov (Disp, Reg32, Scale) Word32 | | Mov (Disp, Reg32, Scale) Word8 | | Mov (Reg32, Reg32, Scale) Label | | Mov (Reg32, Reg32, Scale) Reg16 | | Mov (Reg32, Reg32, Scale) Reg32 | | Mov (Reg32, Reg32, Scale) Reg8 | | Mov (Reg32, Reg32, Scale) Word16 | | Mov (Reg32, Reg32, Scale) Word32 | | Mov (Reg32, Reg32, Scale) Word8 | | Mov (Disp, Reg32, Reg32, Scale) Label | | Mov (Disp, Reg32, Reg32, Scale) Reg16 | | Mov (Disp, Reg32, Reg32, Scale) Reg32 | | Mov (Disp, Reg32, Reg32, Scale) Reg8 | | Mov (Disp, Reg32, Reg32, Scale) Word16 | | Mov (Disp, Reg32, Reg32, Scale) Word32 | | Mov (Disp, Reg32, Reg32, Scale) Word8 | | Movsxb Reg32 Addr | | Movsxb Reg32 Ind | | Movsxb Reg32 Reg8 | | Movsxb Reg32 (Disp, Reg32) | | Movsxb Reg32 (Disp, Reg32, Scale) | | Movsxb Reg32 (Reg32, Reg32, Scale) | | Movsxb Reg32 (Disp, Reg32, Reg32, Scale) | | Movsxw Reg32 Addr | | Movsxw Reg32 Ind | | Movsxw Reg32 Reg16 | | Movsxw Reg32 (Disp, Reg32) | | Movsxw Reg32 (Disp, Reg32, Scale) | | Movsxw Reg32 (Reg32, Reg32, Scale) | | Movsxw Reg32 (Disp, Reg32, Reg32, Scale) | | Movzxb Reg32 Addr | | Movzxb Reg32 Ind | | Movzxb Reg32 Reg8 | | Movzxb Reg32 (Disp, Reg32) | | Movzxb Reg32 (Disp, Reg32, Scale) | | Movzxb Reg32 (Reg32, Reg32, Scale) | | Movzxb Reg32 (Disp, Reg32, Reg32, Scale) | | Movzxw Reg32 Addr | | Movzxw Reg32 Ind | | Movzxw Reg32 Reg16 | | Movzxw Reg32 (Disp, Reg32) | | Movzxw Reg32 (Disp, Reg32, Scale) | | Movzxw Reg32 (Reg32, Reg32, Scale) | | Movzxw Reg32 (Disp, Reg32, Reg32, Scale) | | Or Addr Reg32 | | Or Ind Reg32 | | Or Reg32 Addr | | Or Reg32 Ind | | Or Reg32 Reg32 | | Or Reg32 Word32 | | Or Reg32 (Disp, Reg32) | | Or (Disp, Reg32) Reg32 | | Or (Disp, Reg32) Word32 | | Or (Disp, Reg32) Word8 | | Rcl Reg32 Reg8 | | Rcl Reg32 Word8 | | Rcl (Disp, Reg32) Reg8 | | Rcl (Disp, Reg32) Word8 | | Rcr Reg32 Reg8 | | Rcr Reg32 Word8 | | Rcr (Disp, Reg32) Reg8 | | Rcr (Disp, Reg32) Word8 | | Rol Reg32 Reg8 | | Rol Reg32 Word8 | | Rol (Disp, Reg32) Reg8 | | Rol (Disp, Reg32) Word8 | | Ror Reg32 Reg8 | | Ror Reg32 Word8 | | Ror (Disp, Reg32) Reg8 | | Ror (Disp, Reg32) Word8 | | Sal Reg32 Reg8 | | Sal Reg32 Word8 | | Sal (Disp, Reg32) Reg8 | | Sal (Disp, Reg32) Word8 | | Sar Reg32 Reg8 | | Sar Reg32 Word8 | | Sar (Disp, Reg32) Reg8 | | Sar (Disp, Reg32) Word8 | | Sbb Addr Reg32 | | Sbb Ind Reg32 | | Sbb Reg32 Addr | | Sbb Reg32 Ind | | Sbb Reg32 Reg32 | | Sbb Reg32 Word32 | | Sbb Reg32 (Disp, Reg32) | | Sbb (Disp, Reg32) Reg32 | | Sbb (Disp, Reg32) Word32 | | Sbb (Disp, Reg32) Word8 | | Shl Reg32 Reg8 | | Shl Reg32 Word8 | | Shl (Disp, Reg32) Reg8 | | Shl (Disp, Reg32) Word8 | | Shr Reg32 Reg8 | | Shr Reg32 Word8 | | Shr (Disp, Reg32) Reg8 | | Shr (Disp, Reg32) Word8 | | Sub Addr Reg32 | | Sub Ind Reg32 | | Sub Reg32 Addr | | Sub Reg32 Ind | | Sub Reg32 Reg32 | | Sub Reg32 Word32 | | Sub Reg32 (Disp, Reg32) | | Sub (Disp, Reg32) Reg32 | | Sub (Disp, Reg32) Word32 | | Sub (Disp, Reg32) Word8 | | Test Addr Reg32 | | Test Ind Reg32 | | Test Reg32 Reg32 | | Test Reg32 Word32 | | Test (Disp, Reg32) Reg32 | | Test (Disp, Reg32) Word32 | | Xadd Addr Reg32 | | Xadd Ind Reg32 | | Xadd Reg32 Reg32 | | Xadd (Disp, Reg32) Reg32 | | Xadd (Disp, Reg32) Reg8 | | Xchg Addr Reg32 | | Xchg Ind Reg32 | | Xchg Reg32 Reg32 | | Xchg (Disp, Reg32) Reg32 | | Xchg (Disp, Reg32) Reg8 | | Xor Addr Reg32 | | Xor Ind Reg32 | | Xor Reg32 Addr | | Xor Reg32 Ind | | Xor Reg32 Reg32 | | Xor Reg32 Word32 | | Xor Reg32 (Disp, Reg32) | | Xor (Disp, Reg32) Reg32 | | Xor (Disp, Reg32) Word32 | | Xor (Disp, Reg32) Word8 | | Imul InPlace Reg32 Addr | | Imul InPlace Reg32 Ind | | Imul InPlace Reg32 Reg32 | | Imul InPlace Reg32 (Disp, Reg32) | | Imul Reg32 Addr Word32 | | Imul Reg32 Ind Word32 | | Imul Reg32 Reg32 Word32 | | Imul Reg32 (Disp, Reg32) Word32 | | Shld Reg32 Reg32 Reg8 | | Shld Reg32 Reg32 Word8 | | Shrd Reg32 Reg32 Reg8 | | Shrd Reg32 Reg32 Word8 |
|
|
|
| eax :: Reg32 |
|
| ecx :: Reg32 |
|
| edx :: Reg32 |
|
| ebx :: Reg32 |
|
| esp :: Reg32 |
|
| ebp :: Reg32 |
|
| esi :: Reg32 |
|
| edi :: Reg32 |
|
| newtype Addr |
| Constructors | | Instances | |
|
|
| newtype Ind |
| Constructors | | Instances | |
|
|
| newtype Disp |
| Constructors | | Instances | | Call (Disp, Reg32) | | Dec (Disp, Reg32) | | Div (Disp, Reg32) | | Idiv (Disp, Reg32) | | Inc (Disp, Reg32) | | Jmp (Disp, Reg32) | | Mul (Disp, Reg32) | | Neg (Disp, Reg32) | | Not (Disp, Reg32) | | Pop (Disp, Reg32) | | Push (Disp, Reg32) | | Push (Disp, Reg32, Scale) | | Push (Disp, Reg32, Reg32, Scale) | | Seta (Disp, Reg32) | | Setae (Disp, Reg32) | | Setb (Disp, Reg32) | | Setbe (Disp, Reg32) | | Setc (Disp, Reg32) | | Sete (Disp, Reg32) | | Setg (Disp, Reg32) | | Setge (Disp, Reg32) | | Setl (Disp, Reg32) | | Setle (Disp, Reg32) | | Setna (Disp, Reg32) | | Setnae (Disp, Reg32) | | Setnb (Disp, Reg32) | | Setnbe (Disp, Reg32) | | Setnc (Disp, Reg32) | | Setne (Disp, Reg32) | | Setng (Disp, Reg32) | | Setnge (Disp, Reg32) | | Setnl (Disp, Reg32) | | Setnle (Disp, Reg32) | | Setno (Disp, Reg32) | | Setnp (Disp, Reg32) | | Setns (Disp, Reg32) | | Setnz (Disp, Reg32) | | Seto (Disp, Reg32) | | Setp (Disp, Reg32) | | Setpe (Disp, Reg32) | | Setpo (Disp, Reg32) | | Sets (Disp, Reg32) | | Setz (Disp, Reg32) | | Adc Reg32 (Disp, Reg32) | | Adc (Disp, Reg32) Reg32 | | Adc (Disp, Reg32) Word32 | | Adc (Disp, Reg32) Word8 | | Add Reg32 (Disp, Reg32) | | Add (Disp, Reg32) Reg32 | | Add (Disp, Reg32) Word32 | | Add (Disp, Reg32) Word8 | | And Reg32 (Disp, Reg32) | | And (Disp, Reg32) Reg32 | | And (Disp, Reg32) Word32 | | And (Disp, Reg32) Word8 | | Cmova Reg32 (Disp, Reg32) | | Cmovae Reg32 (Disp, Reg32) | | Cmovb Reg32 (Disp, Reg32) | | Cmovbe Reg32 (Disp, Reg32) | | Cmovc Reg32 (Disp, Reg32) | | Cmove Reg32 (Disp, Reg32) | | Cmovg Reg32 (Disp, Reg32) | | Cmovge Reg32 (Disp, Reg32) | | Cmovl Reg32 (Disp, Reg32) | | Cmovle Reg32 (Disp, Reg32) | | Cmovna Reg32 (Disp, Reg32) | | Cmovnae Reg32 (Disp, Reg32) | | Cmovnb Reg32 (Disp, Reg32) | | Cmovnbe Reg32 (Disp, Reg32) | | Cmovnc Reg32 (Disp, Reg32) | | Cmovne Reg32 (Disp, Reg32) | | Cmovng Reg32 (Disp, Reg32) | | Cmovnge Reg32 (Disp, Reg32) | | Cmovnl Reg32 (Disp, Reg32) | | Cmovnle Reg32 (Disp, Reg32) | | Cmovno Reg32 (Disp, Reg32) | | Cmovnp Reg32 (Disp, Reg32) | | Cmovns Reg32 (Disp, Reg32) | | Cmovnz Reg32 (Disp, Reg32) | | Cmovo Reg32 (Disp, Reg32) | | Cmovp Reg32 (Disp, Reg32) | | Cmovpe Reg32 (Disp, Reg32) | | Cmovpo Reg32 (Disp, Reg32) | | Cmovs Reg32 (Disp, Reg32) | | Cmovz Reg32 (Disp, Reg32) | | Cmp Reg32 (Disp, Reg32) | | Cmp (Disp, Reg32) Label | | Cmp (Disp, Reg32) Reg32 | | Cmp (Disp, Reg32) Word32 | | Cmp (Disp, Reg32) Word8 | | Cmpxchg (Disp, Reg32) Reg32 | | Lea Reg32 (Disp, Reg32) | | Lea Reg32 (Disp, Reg32, Scale) | | Lea Reg32 (Disp, Reg32, Reg32, Scale) | | Mov Reg16 (Disp, Reg32) | | Mov Reg16 (Disp, Reg32, Scale) | | Mov Reg16 (Disp, Reg32, Reg32, Scale) | | Mov Reg32 (Disp, Reg32) | | Mov Reg32 (Disp, Reg32, Scale) | | Mov Reg32 (Disp, Reg32, Reg32, Scale) | | Mov Reg8 (Disp, Reg32) | | Mov Reg8 (Disp, Reg32, Scale) | | Mov Reg8 (Disp, Reg32, Reg32, Scale) | | Mov (Disp, Reg32) Label | | Mov (Disp, Reg32) Reg16 | | Mov (Disp, Reg32) Reg32 | | Mov (Disp, Reg32) Reg8 | | Mov (Disp, Reg32) Word16 | | Mov (Disp, Reg32) Word32 | | Mov (Disp, Reg32) Word8 | | Mov (Disp, Reg32, Scale) Label | | Mov (Disp, Reg32, Scale) Reg16 | | Mov (Disp, Reg32, Scale) Reg32 | | Mov (Disp, Reg32, Scale) Reg8 | | Mov (Disp, Reg32, Scale) Word16 | | Mov (Disp, Reg32, Scale) Word32 | | Mov (Disp, Reg32, Scale) Word8 | | Mov (Disp, Reg32, Reg32, Scale) Label | | Mov (Disp, Reg32, Reg32, Scale) Reg16 | | Mov (Disp, Reg32, Reg32, Scale) Reg32 | | Mov (Disp, Reg32, Reg32, Scale) Reg8 | | Mov (Disp, Reg32, Reg32, Scale) Word16 | | Mov (Disp, Reg32, Reg32, Scale) Word32 | | Mov (Disp, Reg32, Reg32, Scale) Word8 | | Movsxb Reg32 (Disp, Reg32) | | Movsxb Reg32 (Disp, Reg32, Scale) | | Movsxb Reg32 (Disp, Reg32, Reg32, Scale) | | Movsxw Reg32 (Disp, Reg32) | | Movsxw Reg32 (Disp, Reg32, Scale) | | Movsxw Reg32 (Disp, Reg32, Reg32, Scale) | | Movzxb Reg32 (Disp, Reg32) | | Movzxb Reg32 (Disp, Reg32, Scale) | | Movzxb Reg32 (Disp, Reg32, Reg32, Scale) | | Movzxw Reg32 (Disp, Reg32) | | Movzxw Reg32 (Disp, Reg32, Scale) | | Movzxw Reg32 (Disp, Reg32, Reg32, Scale) | | Or Reg32 (Disp, Reg32) | | Or (Disp, Reg32) Reg32 | | Or (Disp, Reg32) Word32 | | Or (Disp, Reg32) Word8 | | Rcl (Disp, Reg32) Reg8 | | Rcl (Disp, Reg32) Word8 | | Rcr (Disp, Reg32) Reg8 | | Rcr (Disp, Reg32) Word8 | | Rol (Disp, Reg32) Reg8 | | Rol (Disp, Reg32) Word8 | | Ror (Disp, Reg32) Reg8 | | Ror (Disp, Reg32) Word8 | | Sal (Disp, Reg32) Reg8 | | Sal (Disp, Reg32) Word8 | | Sar (Disp, Reg32) Reg8 | | Sar (Disp, Reg32) Word8 | | Sbb Reg32 (Disp, Reg32) | | Sbb (Disp, Reg32) Reg32 | | Sbb (Disp, Reg32) Word32 | | Sbb (Disp, Reg32) Word8 | | Shl (Disp, Reg32) Reg8 | | Shl (Disp, Reg32) Word8 | | Shr (Disp, Reg32) Reg8 | | Shr (Disp, Reg32) Word8 | | Sub Reg32 (Disp, Reg32) | | Sub (Disp, Reg32) Reg32 | | Sub (Disp, Reg32) Word32 | | Sub (Disp, Reg32) Word8 | | Test (Disp, Reg32) Reg32 | | Test (Disp, Reg32) Word32 | | Xadd (Disp, Reg32) Reg32 | | Xadd (Disp, Reg32) Reg8 | | Xchg (Disp, Reg32) Reg32 | | Xchg (Disp, Reg32) Reg8 | | Xor Reg32 (Disp, Reg32) | | Xor (Disp, Reg32) Reg32 | | Xor (Disp, Reg32) Word32 | | Xor (Disp, Reg32) Word8 | | Imul InPlace Reg32 (Disp, Reg32) | | Imul Reg32 (Disp, Reg32) Word32 |
|
|
|
| data Scale |
| Constructors | | Instances | | Push (Disp, Reg32, Scale) | | Push (Reg32, Reg32, Scale) | | Push (Disp, Reg32, Reg32, Scale) | | Lea Reg32 (Disp, Reg32, Scale) | | Lea Reg32 (Reg32, Reg32, Scale) | | Lea Reg32 (Disp, Reg32, Reg32, Scale) | | Mov Reg16 (Disp, Reg32, Scale) | | Mov Reg16 (Reg32, Reg32, Scale) | | Mov Reg16 (Disp, Reg32, Reg32, Scale) | | Mov Reg32 (Disp, Reg32, Scale) | | Mov Reg32 (Reg32, Reg32, Scale) | | Mov Reg32 (Disp, Reg32, Reg32, Scale) | | Mov Reg8 (Disp, Reg32, Scale) | | Mov Reg8 (Reg32, Reg32, Scale) | | Mov Reg8 (Disp, Reg32, Reg32, Scale) | | Mov (Disp, Reg32, Scale) Label | | Mov (Disp, Reg32, Scale) Reg16 | | Mov (Disp, Reg32, Scale) Reg32 | | Mov (Disp, Reg32, Scale) Reg8 | | Mov (Disp, Reg32, Scale) Word16 | | Mov (Disp, Reg32, Scale) Word32 | | Mov (Disp, Reg32, Scale) Word8 | | Mov (Reg32, Reg32, Scale) Label | | Mov (Reg32, Reg32, Scale) Reg16 | | Mov (Reg32, Reg32, Scale) Reg32 | | Mov (Reg32, Reg32, Scale) Reg8 | | Mov (Reg32, Reg32, Scale) Word16 | | Mov (Reg32, Reg32, Scale) Word32 | | Mov (Reg32, Reg32, Scale) Word8 | | Mov (Disp, Reg32, Reg32, Scale) Label | | Mov (Disp, Reg32, Reg32, Scale) Reg16 | | Mov (Disp, Reg32, Reg32, Scale) Reg32 | | Mov (Disp, Reg32, Reg32, Scale) Reg8 | | Mov (Disp, Reg32, Reg32, Scale) Word16 | | Mov (Disp, Reg32, Reg32, Scale) Word32 | | Mov (Disp, Reg32, Reg32, Scale) Word8 | | Movsxb Reg32 (Disp, Reg32, Scale) | | Movsxb Reg32 (Reg32, Reg32, Scale) | | Movsxb Reg32 (Disp, Reg32, Reg32, Scale) | | Movsxw Reg32 (Disp, Reg32, Scale) | | Movsxw Reg32 (Reg32, Reg32, Scale) | | Movsxw Reg32 (Disp, Reg32, Reg32, Scale) | | Movzxb Reg32 (Disp, Reg32, Scale) | | Movzxb Reg32 (Reg32, Reg32, Scale) | | Movzxb Reg32 (Disp, Reg32, Reg32, Scale) | | Movzxw Reg32 (Disp, Reg32, Scale) | | Movzxw Reg32 (Reg32, Reg32, Scale) | | Movzxw Reg32 (Disp, Reg32, Reg32, Scale) |
|
|
|
| scaleToShift :: Scale -> Word8 |
|
| class Cmpxchg a b where |
| | Methods | | cmpxchg :: a -> b -> CodeGen e s () |
| | Instances | |
|
|
| class Xchg a b where |
| | Methods | | | Instances | |
|
|
| class Xadd a b where |
| | Methods | | | Instances | |
|
|
| class Inc a where |
| | Methods | | | Instances | |
|
|
| class Dec a where |
| | Methods | | | Instances | |
|
|
| class Not a where |
| | Methods | | | Instances | |
|
|
| class Neg a where |
| | Methods | | | Instances | |
|
|
| class Add a b where |
| | Methods | | | Instances | |
|
|
| class Or a b where |
| | Methods | | | Instances | |
|
|
| class Adc a b where |
| | Methods | | | Instances | |
|
|
| class Sbb a b where |
| | Methods | | | Instances | |
|
|
| class And a b where |
| | Methods | | | Instances | |
|
|
| class Sub a b where |
| | Methods | | | Instances | |
|
|
| class Xor a b where |
| | Methods | | | Instances | |
|
|
| class Cmp a b where |
| | Methods | | | Instances | |
|
|
| class Test a b where |
| | Methods | | | Instances | |
|
|
| class Rol a b where |
| | Methods | | | Instances | |
|
|
| class Ror a b where |
| | Methods | | | Instances | |
|
|
| class Rcl a b where |
| | Methods | | | Instances | |
|
|
| class Rcr a b where |
| | Methods | | | Instances | |
|
|
| class Shl a b where |
| | Methods | | | Instances | |
|
|
| class Shr a b where |
| | Methods | | | Instances | |
|
|
| class Sar a b where |
| | Methods | | | Instances | |
|
|
| class Sal a b where |
| | Methods | | | Instances | |
|
|
| class Shrd a b c where |
| | Methods | | shrd :: a -> b -> c -> CodeGen e s () |
| | Instances | |
|
|
| class Shld a b c where |
| | Methods | | shld :: a -> b -> c -> CodeGen e s () |
| | Instances | |
|
|
| class Mul a where |
| | Methods | | | Instances | |
|
|
| data InPlace |
| Constructors | | Instances | |
|
|
| class Imul a b c where |
| | Methods | | imul :: a -> b -> c -> CodeGen e s () |
| | Instances | |
|
|
| class Div a where |
| | Methods | | | Instances | |
|
|
| class Idiv a where |
| | Methods | | | Instances | |
|
|
| class Mov a b where |
| | Methods | | | Instances | | Mov Addr Label | | Mov Addr Reg16 | | Mov Addr Reg32 | | Mov Addr Reg8 | | Mov Addr Word16 | | Mov Addr Word32 | | Mov Addr Word8 | | Mov Ind Label | | Mov Ind Reg16 | | Mov Ind Reg32 | | Mov Ind Reg8 | | Mov Ind Word16 | | Mov Ind Word32 | | Mov Ind Word8 | | Mov Reg16 Addr | | Mov Reg16 Ind | | Mov Reg16 Reg16 | | Mov Reg16 (Disp, Reg32) | | Mov Reg16 (Disp, Reg32, Scale) | | Mov Reg16 (Reg32, Reg32, Scale) | | Mov Reg16 (Disp, Reg32, Reg32, Scale) | | Mov Reg32 Addr | | Mov Reg32 Ind | | Mov Reg32 Label | | Mov Reg32 Reg32 | | Mov Reg32 Word32 | | Mov Reg32 (Disp, Reg32) | | Mov Reg32 (Disp, Reg32, Scale) | | Mov Reg32 (Reg32, Reg32, Scale) | | Mov Reg32 (Disp, Reg32, Reg32, Scale) | | Mov Reg8 Addr | | Mov Reg8 Ind | | Mov Reg8 Reg8 | | Mov Reg8 (Disp, Reg32) | | Mov Reg8 (Disp, Reg32, Scale) | | Mov Reg8 (Reg32, Reg32, Scale) | | Mov Reg8 (Disp, Reg32, Reg32, Scale) | | Mov (Disp, Reg32) Label | | Mov (Disp, Reg32) Reg16 | | Mov (Disp, Reg32) Reg32 | | Mov (Disp, Reg32) Reg8 | | Mov (Disp, Reg32) Word16 | | Mov (Disp, Reg32) Word32 | | Mov (Disp, Reg32) Word8 | | Mov (Disp, Reg32, Scale) Label | | Mov (Disp, Reg32, Scale) Reg16 | | Mov (Disp, Reg32, Scale) Reg32 | | Mov (Disp, Reg32, Scale) Reg8 | | Mov (Disp, Reg32, Scale) Word16 | | Mov (Disp, Reg32, Scale) Word32 | | Mov (Disp, Reg32, Scale) Word8 | | Mov (Reg32, Reg32, Scale) Label | | Mov (Reg32, Reg32, Scale) Reg16 | | Mov (Reg32, Reg32, Scale) Reg32 | | Mov (Reg32, Reg32, Scale) Reg8 | | Mov (Reg32, Reg32, Scale) Word16 | | Mov (Reg32, Reg32, Scale) Word32 | | Mov (Reg32, Reg32, Scale) Word8 | | Mov (Disp, Reg32, Reg32, Scale) Label | | Mov (Disp, Reg32, Reg32, Scale) Reg16 | | Mov (Disp, Reg32, Reg32, Scale) Reg32 | | Mov (Disp, Reg32, Reg32, Scale) Reg8 | | Mov (Disp, Reg32, Reg32, Scale) Word16 | | Mov (Disp, Reg32, Reg32, Scale) Word32 | | Mov (Disp, Reg32, Reg32, Scale) Word8 |
|
|
|
| class Movsxb a b where |
| | Methods | | | Instances | |
|
|
| class Movsxw a b where |
| | Methods | | | Instances | |
|
|
| class Movzxb a b where |
| | Methods | | | Instances | |
|
|
| class Movzxw a b where |
| | Methods | | | Instances | |
|
|
| class Lea a b where |
| | Methods | | | Instances | |
|
|
| class Push a where |
| | Methods | | | Instances | |
|
|
| class Pop a where |
| | Methods | | | Instances | |
|
|
| loop :: Word8 -> CodeGen e s () |
|
| loope :: Word8 -> CodeGen e s () |
|
| loopne :: Word8 -> CodeGen e s () |
|
| class Jmp a where |
| | Methods | | | Instances | |
|
|
| class Ja a where |
| | Methods | | | Instances | |
|
|
| class Jae a where |
| | Methods | | | Instances | |
|
|
| class Jb a where |
| | Methods | | | Instances | |
|
|
| class Jbe a where |
| | Methods | | | Instances | |
|
|
| class Jc a where |
| | Methods | | | Instances | |
|
|
| class Je a where |
| | Methods | | | Instances | |
|
|
| class Jna a where |
| | Methods | | | Instances | |
|
|
| class Jnae a where |
| | Methods | | | Instances | |
|
|
| class Jnb a where |
| | Methods | | | Instances | |
|
|
| class Jnbe a where |
| | Methods | | | Instances | |
|
|
| class Jnc a where |
| | Methods | | | Instances | |
|
|
| class Jne a where |
| | Methods | | | Instances | |
|
|
| class Jnp a where |
| | Methods | | | Instances | |
|
|
| class Jnz a where |
| | Methods | | | Instances | |
|
|
| class Jp a where |
| | Methods | | | Instances | |
|
|
| class Jpe a where |
| | Methods | | | Instances | |
|
|
| class Jpo a where |
| | Methods | | | Instances | |
|
|
| class Jz a where |
| | Methods | | | Instances | |
|
|
| class Jg a where |
| | Methods | | | Instances | |
|
|
| class Jge a where |
| | Methods | | | Instances | |
|
|
| class Jl a where |
| | Methods | | | Instances | |
|
|
| class Jle a where |
| | Methods | | | Instances | |
|
|
| class Jng a where |
| | Methods | | | Instances | |
|
|
| class Jnge a where |
| | Methods | | | Instances | |
|
|
| class Jnl a where |
| | Methods | | | Instances | |
|
|
| class Jnle a where |
| | Methods | | | Instances | |
|
|
| class Jno a where |
| | Methods | | | Instances | |
|
|
| class Jns a where |
| | Methods | | | Instances | |
|
|
| class Jo a where |
| | Methods | | | Instances | |
|
|
| class Js a where |
| | Methods | | | Instances | |
|
|
| jecxz :: Word8 -> CodeGen e s () |
|
| class Seta a where |
| | Methods | | | Instances | |
|
|
| class Setae a where |
| | Methods | | | Instances | |
|
|
| class Setb a where |
| | Methods | | | Instances | |
|
|
| class Setbe a where |
| | Methods | | | Instances | |
|
|
| class Setc a where |
| | Methods | | | Instances | |
|
|
| class Sete a where |
| | Methods | | | Instances | |
|
|
| class Setna a where |
| | Methods | | | Instances | |
|
|
| class Setnae a where |
| | Methods | | | Instances | |
|
|
| class Setnb a where |
| | Methods | | | Instances | |
|
|
| class Setnbe a where |
| | Methods | | | Instances | |
|
|
| class Setnc a where |
| | Methods | | | Instances | |
|
|
| class Setne a where |
| | Methods | | | Instances | |
|
|
| class Setnp a where |
| | Methods | | | Instances | |
|
|
| class Setnz a where |
| | Methods | | | Instances | |
|
|
| class Setp a where |
| | Methods | | | Instances | |
|
|
| class Setpe a where |
| | Methods | | | Instances | |
|
|
| class Setpo a where |
| | Methods | | | Instances | |
|
|
| class Setg a where |
| | Methods | | | Instances | |
|
|
| class Setge a where |
| | Methods | | | Instances | |
|
|
| class Setl a where |
| | Methods | | | Instances | |
|
|
| class Setle a where |
| | Methods | | | Instances | |
|
|
| class Setng a where |
| | Methods | | | Instances | |
|
|
| class Setnge a where |
| | Methods | | | Instances | |
|
|
| class Setnl a where |
| | Methods | | | Instances | |
|
|
| class Setnle a where |
| | Methods | | | Instances | |
|
|
| class Setno a where |
| | Methods | | | Instances | |
|
|
| class Setns a where |
| | Methods | | | Instances | |
|
|
| class Seto a where |
| | Methods | | | Instances | |
|
|
| class Sets a where |
| | Methods | | | Instances | |
|
|
| class Setz a where |
| | Methods | | | Instances | |
|
|
| class Call a where |
| | Methods | | | Instances | |
|
|
| ret :: CodeGen e s () |
|
| retN :: Word16 -> CodeGen e s () |
|
| enter :: Word16 -> CodeGen e s () |
|
| class Cmova a b where |
| | Methods | | | Instances | |
|
|
| class Cmovae a b where |
| | Methods | | | Instances | |
|
|
| class Cmovb a b where |
| | Methods | | | Instances | |
|
|
| class Cmovbe a b where |
| | Methods | | | Instances | |
|
|
| class Cmovc a b where |
| | Methods | | | Instances | |
|
|
| class Cmove a b where |
| | Methods | | | Instances | |
|
|
| class Cmovna a b where |
| | Methods | | | Instances | |
|
|
| class Cmovnae a b where |
| | Methods | | cmovnae :: a -> b -> CodeGen e s () |
| | Instances | |
|
|
| class Cmovnb a b where |
| | Methods | | | Instances | |
|
|
| class Cmovnbe a b where |
| | Methods | | cmovnbe :: a -> b -> CodeGen e s () |
| | Instances | |
|
|
| class Cmovnc a b where |
| | Methods | | | Instances | |
|
|
| class Cmovne a b where |
| | Methods | | | Instances | |
|
|
| class Cmovnp a b where |
| | Methods | | | Instances | |
|
|
| class Cmovnz a b where |
| | Methods | | | Instances | |
|
|
| class Cmovp a b where |
| | Methods | | | Instances | |
|
|
| class Cmovpe a b where |
| | Methods | | | Instances | |
|
|
| class Cmovpo a b where |
| | Methods | | | Instances | |
|
|
| class Cmovz a b where |
| | Methods | | | Instances | |
|
|
| class Cmovg a b where |
| | Methods | | | Instances | |
|
|
| class Cmovge a b where |
| | Methods | | | Instances | |
|
|
| class Cmovl a b where |
| | Methods | | | Instances | |
|
|
| class Cmovle a b where |
| | Methods | | | Instances | |
|
|
| class Cmovng a b where |
| | Methods | | | Instances | |
|
|
| class Cmovnge a b where |
| | Methods | | cmovnge :: a -> b -> CodeGen e s () |
| | Instances | |
|
|
| class Cmovnl a b where |
| | Methods | | | Instances | |
|
|
| class Cmovnle a b where |
| | Methods | | cmovnle :: a -> b -> CodeGen e s () |
| | Instances | |
|
|
| class Cmovno a b where |
| | Methods | | | Instances | |
|
|
| class Cmovns a b where |
| | Methods | | | Instances | |
|
|
| class Cmovo a b where |
| | Methods | | | Instances | |
|
|
| class Cmovs a b where |
| | Methods | | | Instances | |
|
|
| leave :: CodeGen e s () |
|
| sahf :: CodeGen e s () |
|
| Produced by Haddock version 0.8 |