CodeGen.X86

Byte sequences

type Bytes

class HasBytes a

Sizes (in bits)

data Size

class HasSize a

class IsSize s

Registers

64 bit registers

rax

rcx

rdx

rbx

rsp

rbp

rsi

rdi

r8

r9

r10

r11

r12

r13

r14

r15

32 bit registers

eax

ecx

edx

ebx

esp

ebp

esi

edi

r8d

r9d

r10d

r11d

r12d

r13d

r14d

r15d

16 bit registers

ax

cx

dx

bx

sp

bp

si

di

r8w

r9w

r10w

r11w

r12w

r13w

r14w

r15w

8 bit low registers

al

cl

dl

bl

spl

bpl

sil

dil

r8b

r9b

r10b

r11b

r12b

r13b

r14b

r15b

8 bit high registers

ah

ch

dh

bh

SSE registers

xmm0

xmm1

xmm2

xmm3

xmm4

xmm5

xmm6

xmm7

Addresses

addr

addr8

addr16

addr32

addr64

ipRel

ipRel8

Operands

data Access

data Operand

resizeOperand

ipRelValue

Conditions

data Condition

Instructions

type Code

data CodeM a

Pseudo instructions

db

align

data Label

label

Control

j

jmp

jmpq

call

ret

Flags

cmc

clc

stc

cli

sti

cld

std

pushf

popf

cmp

test

Arithmetic

inc

dec

not_

neg

add

adc

sub

sbb

and_

or_

xor_

rol

ror

rcl

rcr

shl

shr

sar

lea

Other

nop

xchg

mov

cmov

pop

push

SSE

movd

movq

movdqa

paddb

paddw

paddd

paddq

psubb

psubw

psubd

psubq

pxor

psllw

pslld

psllq

pslldq

psrlw

psrld

psrlq

psrldq

psraw

psrad

Compound instructions

unless

doWhile

if_

leaData

traceReg

Compilation

compile

preBuild

Calling convention

saveNonVolatile

arg1

arg2

arg3

arg4

result

Calling C and Haskell from Assembly

class Callable a

class CallableHs a

callFun

hsPtr

data CString

Misc

runTests