C# Class CodeGeneration.CGenState

Afficher le fichier Open project: phisiart/C-Compiler Class Usage Examples

Méthodes publiques

Свойство Type Description
label_idx System.Int32
reg_strs String>.Dictionary

Méthodes publiques

Méthode Description
ADDL ( Int32 er, System.Reg ee, String comment = "" ) : void
ADDL ( System.Reg er, System.Reg ee, String comment = "" ) : void
ADDL ( String er, String ee, String comment = "" ) : void

ADDL: add long

ALIGN ( Int32 align ) : void
ANDB ( Int32 er, System.Reg ee ) : void
ANDB ( String er, String ee ) : void
ANDL ( Int32 er, System.Reg ee ) : void
ANDL ( System.Reg er, System.Reg ee ) : void
ANDL ( String er, String ee ) : void

ANDL er, ee ee = er & ee

BYTE ( Int32 value ) : void
CALL ( String addr ) : void
CGenConvertFloatToLong ( ) : void
CGenConvertLongToFloat ( ) : void
CGenExpandStackBy ( Int32 nbytes ) : void
CGenExpandStackBy4Bytes ( String comment = "" ) : void
CGenExpandStackBy8Bytes ( String comment = "" ) : void
CGenExpandStackTo ( Int32 size, String comment = "" ) : void
CGenExpandStackWithAlignment ( Int32 nbytes, Int32 align ) : void
CGenForceStackSizeTo ( Int32 nbytes ) : void
CGenFuncStart ( String name ) : void
CGenLabel ( Int32 label ) : void
CGenLabel ( String label ) : void
CGenLongConst ( Int32 val ) : String
CGenLongLongConst ( Int32 lo, Int32 hi ) : String
CGenMemCpy ( ) : void

Fast Memory Copy using assembly. Make sure that 1) %esi = source address 2) %edi = destination address 3) %ecx = number of bytes

CGenMemCpyReversed ( ) : void

Fast Memory Copy using assembly. Make sure that 1) %esi = source address 2) %edi = destination address 3) %ecx = number of bytes

CGenPopDouble ( Int32 saved_size ) : void
CGenPopFloat ( Int32 saved_size ) : void
CGenPopLong ( Int32 saved_size, System.Reg dst ) : void
CGenPushDouble ( ) : Int32
CGenPushDoubleP ( ) : Int32
CGenPushFloat ( ) : Int32
CGenPushFloatP ( ) : Int32
CGenPushLong ( Int32 imm ) : Int32
CGenPushLong ( System.Reg src ) : Int32
CGenShrinkStackBy ( Int32 nbytes ) : void
CGenShrinkStackBy4Bytes ( String comment = "" ) : void
CGenShrinkStackBy8Bytes ( String comment = "" ) : void
CGenState ( ) : System
CGenString ( String str ) : String
CLD ( ) : void
CLTD ( ) : void

CLTD: used before division. clear %edx.

CMPL ( Int32 imm, System.Reg ee ) : void
CMPL ( System.Reg er, System.Reg ee ) : void
CMPL ( String er, String ee ) : void

CMPL: compare based on subtraction. Note that the order is reversed, i.e. ee comp er.

COMM ( String name, Int32 size, Int32 align ) : void
COMMENT ( String comment ) : void
CaseLabel ( Int32 value ) : Int32
DATA ( ) : void
DIVL ( System.Reg er ) : void
DIVL ( String addr ) : void

IDIVL: unsigned division. %eax = %edx:%eax / {addr}.

FADD ( Int32 op1, Int32 op2 ) : void

FADD: calculate %st(op1) + %st(op2) and rewrite %st(op2).

FADDP ( ) : void

FADDP: pop operands from %st(0) and %st(1), push addition result back to %st(0).

FCHS ( ) : void

FCHS: %st(0) = -%st(0)

FDIVP ( ) : void

FDIVP: pop operands from %st(0) and %st(1), push %st(0) / %st(1) back to %st(0).

FLD1 ( ) : void

FLD1: push 1.0 to FPU stack.

FLDL ( Int32 imm, System.Reg from ) : void
FLDL ( String addr ) : void

FLDL: load double to FPU stack.

FLDS ( Int32 imm, System.Reg src ) : void
FLDS ( String src ) : void

FLDS: load float to FPU stack.

FLDZ ( ) : void

FLD0: push 0.0 to FPU stack.

FMULP ( ) : void

FMULP: pop operands from %st(0) and %st(1), push multiplication result back to %st(0).

FSTL ( Int32 imm, System.Reg to ) : void
FSTL ( String addr ) : void

FSTL: store double from FPU stack.

FSTP ( System.Reg dst ) : void
FSTP ( String dst ) : void

FSTP: copy %st(0) to dst, then pop %st(0).

FSTPL ( Int32 imm, System.Reg to ) : void
FSTPL ( String addr ) : void

FSTPL: pop from FPU and store *double*.

FSTPS ( Int32 imm, System.Reg to ) : void
FSTPS ( String addr ) : void

FSTPS: pop float from FPU stack, and store to {addr}.

FSTS ( Int32 imm, System.Reg to ) : void
FSTS ( String addr ) : void

FSTS: store float from FPU stack.

FSUB ( Int32 op1, Int32 op2 ) : void

FADD: calculate %st(op1) + %st(op2) and rewrite %st(op2).

FSUBP ( ) : void

FSUBP: pop operands from %st(0) and %st(1), push %st(0) / %st(1) back to %st(0).

FUCOMIP ( ) : void

FUCOMIP: unordered comparison: %st(0) vs %st(1).

GLOBL ( String name ) : void
GotoLabel ( String label ) : Int32
IDIVL ( System.Reg er ) : void
IDIVL ( String addr ) : void

IDIVL: signed division. %eax = %edx:%eax / {addr}.

IMUL ( System.Reg er ) : void
IMUL ( String addr ) : void

IMUL: signed multiplication. %edx:%eax = %eax * {addr}.

InFunction ( IReadOnlyList goto_labels ) : void
InLoop ( Int32 continue_label, Int32 break_label ) : void
InSwitch ( Int32 break_label, Int32 default_label, Int32>.Dictionary value_to_label ) : void
JMP ( Int32 label ) : void
JNZ ( Int32 label ) : void
JZ ( Int32 label ) : void
LEA ( Int32 offset, System.Reg src, System.Reg dst ) : void
LEA ( String addr, System.Reg dst ) : void
LEA ( String addr, String dst ) : void
LEAVE ( ) : void
LOCAL ( String name ) : void
LONG ( Int32 value ) : void
MOVB ( System.Reg from, Int32 imm, System.Reg to ) : void
MOVB ( System.Reg from, System.Reg to ) : void
MOVB ( String src, String dst ) : void

MOVB: move a byte

MOVL ( Int32 imm, System.Reg dst ) : void
MOVL ( Int32 offset, System.Reg src, System.Reg dst ) : void
MOVL ( Int32 imm, String dst ) : void
MOVL ( System.Reg src, Int32 offset, System.Reg dst ) : void
MOVL ( System.Reg src, System.Reg dst ) : void
MOVL ( String src, System.Reg dst ) : void
MOVL ( String src, String dst ) : void

MOVL: move a 4-byte long

MOVSBL ( Int32 offset, System.Reg src, System.Reg dst ) : void
MOVSBL ( System.Reg src, System.Reg dst ) : void
MOVSBL ( String src, System.Reg dst ) : void
MOVSBL ( String src, String dst ) : void

MOVSBL: move a byte and sign-extend to a 4-byte long

MOVSWL ( Int32 offset, System.Reg from, System.Reg to ) : void
MOVSWL ( System.Reg src, System.Reg dst ) : void
MOVSWL ( String from, System.Reg to ) : void
MOVSWL ( String from, String to ) : void

MOVSWL: move a 2-byte word and sign-extend to a 4-byte long

MOVW ( System.Reg from, Int32 imm, System.Reg to ) : void
MOVW ( String from, String to ) : void

MOVW: move a 2-byte word

MOVZBL ( Int32 offset, System.Reg src, System.Reg dst ) : void
MOVZBL ( System.Reg src, System.Reg dst ) : void
MOVZBL ( String src, System.Reg dst ) : void
MOVZBL ( String src, String dst ) : void

MOVZBL: move a byte and zero-extend to a 4-byte long

MOVZWL ( Int32 offset, System.Reg from, System.Reg to ) : void
MOVZWL ( System.Reg src, System.Reg dst ) : void
MOVZWL ( String from, System.Reg to ) : void
MOVZWL ( String from, String to ) : void

MOVZWL: move a 2-byte word and zero-extend to a 4-byte long

MUL ( System.Reg er ) : void
MUL ( String addr ) : void

MUL: unsigned multiplication. %edx:%eax = %eax * {addr}.

NEG ( System.Reg dst ) : void
NEG ( String addr ) : void

NEG addr: addr = -addr

NEWLINE ( ) : void
NOT ( System.Reg dst ) : void
NOT ( String addr ) : void

NOT: bitwise not

ORL ( System.Reg er, System.Reg ee, String comment = "" ) : void
ORL ( String er, String ee, String comment = "" ) : void

ORL er, ee ee = ee | er

OutFunction ( ) : void
OutLabels ( ) : void
RET ( ) : void
RegToString ( System.Reg reg ) : String
RequestLabel ( ) : Int32
SALL ( System.Reg er, System.Reg ee ) : void
SALL ( String er, String ee ) : void

SALL er, ee ee = ee << er Note that there is only one Kind of lshift.

SARL ( System.Reg er, System.Reg ee ) : void
SARL ( String er, String ee ) : void

SARL er, ee (arithmetic shift) ee = ee >> er (append sign bit)

SETA ( System.Reg dst ) : void
SETA ( String dst ) : void

SETA: set if above (unsigned).

SETB ( System.Reg dst ) : void
SETB ( String dst ) : void

SETB: set if below (unsigned).

SETE ( System.Reg dst ) : void
SETE ( String dst ) : void

SETE: set if equal to.

SETG ( System.Reg dst ) : void
SETG ( String dst ) : void

SETG: set if greater than (signed).

SETGE ( System.Reg dst ) : void
SETGE ( String dst ) : void

SETGE: set if greater or equal to (signed).

SETL ( System.Reg dst ) : void
SETL ( String dst ) : void

SETL: set if less than (signed).

SETLE ( System.Reg dst ) : void
SETLE ( String dst ) : void

SETLE: set if less than or equal to (signed).

SETNA ( System.Reg dst ) : void
SETNA ( String dst ) : void

SETNA: set if not above (unsigned).

SETNB ( System.Reg dst ) : void
SETNB ( String dst ) : void

SETNB: set if not below (unsigned).

SETNE ( System.Reg dst ) : void
SETNE ( String dst ) : void

SETNE: set if not equal to.

SHRL ( Int32 er, System.Reg ee ) : void
SHRL ( System.Reg er, System.Reg ee ) : void
SHRL ( String er, String ee ) : void

SHRL er, ee (logical shift) ee = ee >> er (append 0)

STD ( ) : void
SUBL ( Int32 er, System.Reg ee, String comment = "" ) : void
SUBL ( System.Reg er, System.Reg ee, String comment = "" ) : void
SUBL ( String er, String ee, String comment = "" ) : void

SUBL: subtract long

TESTL ( System.Reg er, System.Reg ee ) : void
TESTL ( String er, String ee ) : void

TESTL: used like testl %eax, %eax: compare %eax with zero.

TEXT ( ) : void
ToString ( ) : String
VALUE ( Int32 value ) : void
XORL ( System.Reg er, System.Reg ee ) : void
XORL ( String er, String ee ) : void

XORL er, ee ee = ee ^ er

ZERO ( Int32 size ) : void

Private Methods

Méthode Description
FILDL ( Int32 offset, System.Reg dst ) : void
FILDL ( String dst ) : void
FISTL ( Int32 offset, System.Reg dst ) : void
FISTL ( String dst ) : void
POPL ( System.Reg dst ) : void
POPL ( String dst ) : void

POPL: pop long from stack.

POPL changes the size of the stack, which should be tracked carefully. So, POPL is set private. Consider using CGenPopLong

PUSHL ( Int32 imm ) : void
PUSHL ( System.Reg src ) : void
PUSHL ( String src ) : void

PUSHL: push long into stack.

PUSHL changes the size of the stack, which should be tracked carefully. So, PUSHL is set private. Consider using CGenPushLong

SUBL ( Int32 er, String ee, String comment = "" ) : void

Method Details

ADDL() public méthode

public ADDL ( Int32 er, System.Reg ee, String comment = "" ) : void
er System.Int32
ee System.Reg
comment String
Résultat void

ADDL() public méthode

public ADDL ( System.Reg er, System.Reg ee, String comment = "" ) : void
er System.Reg
ee System.Reg
comment String
Résultat void

ADDL() public méthode

ADDL: add long
public ADDL ( String er, String ee, String comment = "" ) : void
er String
ee String
comment String
Résultat void

ALIGN() public méthode

public ALIGN ( Int32 align ) : void
align System.Int32
Résultat void

ANDB() public méthode

public ANDB ( Int32 er, System.Reg ee ) : void
er System.Int32
ee System.Reg
Résultat void

ANDB() public méthode

public ANDB ( String er, String ee ) : void
er String
ee String
Résultat void

ANDL() public méthode

public ANDL ( Int32 er, System.Reg ee ) : void
er System.Int32
ee System.Reg
Résultat void

ANDL() public méthode

public ANDL ( System.Reg er, System.Reg ee ) : void
er System.Reg
ee System.Reg
Résultat void

ANDL() public méthode

ANDL er, ee ee = er & ee
public ANDL ( String er, String ee ) : void
er String
ee String
Résultat void

BYTE() public méthode

public BYTE ( Int32 value ) : void
value System.Int32
Résultat void

CALL() public méthode

public CALL ( String addr ) : void
addr String
Résultat void

CGenConvertFloatToLong() public méthode

public CGenConvertFloatToLong ( ) : void
Résultat void

CGenConvertLongToFloat() public méthode

public CGenConvertLongToFloat ( ) : void
Résultat void

CGenExpandStackBy() public méthode

public CGenExpandStackBy ( Int32 nbytes ) : void
nbytes System.Int32
Résultat void

CGenExpandStackBy4Bytes() public méthode

public CGenExpandStackBy4Bytes ( String comment = "" ) : void
comment String
Résultat void

CGenExpandStackBy8Bytes() public méthode

public CGenExpandStackBy8Bytes ( String comment = "" ) : void
comment String
Résultat void

CGenExpandStackTo() public méthode

public CGenExpandStackTo ( Int32 size, String comment = "" ) : void
size System.Int32
comment String
Résultat void

CGenExpandStackWithAlignment() public méthode

public CGenExpandStackWithAlignment ( Int32 nbytes, Int32 align ) : void
nbytes System.Int32
align System.Int32
Résultat void

CGenForceStackSizeTo() public méthode

public CGenForceStackSizeTo ( Int32 nbytes ) : void
nbytes System.Int32
Résultat void

CGenFuncStart() public méthode

public CGenFuncStart ( String name ) : void
name String
Résultat void

CGenLabel() public méthode

public CGenLabel ( Int32 label ) : void
label System.Int32
Résultat void

CGenLabel() public méthode

public CGenLabel ( String label ) : void
label String
Résultat void

CGenLongConst() public méthode

public CGenLongConst ( Int32 val ) : String
val System.Int32
Résultat String

CGenLongLongConst() public méthode

public CGenLongLongConst ( Int32 lo, Int32 hi ) : String
lo System.Int32
hi System.Int32
Résultat String

CGenMemCpy() public méthode

Fast Memory Copy using assembly. Make sure that 1) %esi = source address 2) %edi = destination address 3) %ecx = number of bytes
public CGenMemCpy ( ) : void
Résultat void

CGenMemCpyReversed() public méthode

Fast Memory Copy using assembly. Make sure that 1) %esi = source address 2) %edi = destination address 3) %ecx = number of bytes
public CGenMemCpyReversed ( ) : void
Résultat void

CGenPopDouble() public méthode

public CGenPopDouble ( Int32 saved_size ) : void
saved_size System.Int32
Résultat void

CGenPopFloat() public méthode

public CGenPopFloat ( Int32 saved_size ) : void
saved_size System.Int32
Résultat void

CGenPopLong() public méthode

public CGenPopLong ( Int32 saved_size, System.Reg dst ) : void
saved_size System.Int32
dst System.Reg
Résultat void

CGenPushDouble() public méthode

public CGenPushDouble ( ) : Int32
Résultat System.Int32

CGenPushDoubleP() public méthode

public CGenPushDoubleP ( ) : Int32
Résultat System.Int32

CGenPushFloat() public méthode

public CGenPushFloat ( ) : Int32
Résultat System.Int32

CGenPushFloatP() public méthode

public CGenPushFloatP ( ) : Int32
Résultat System.Int32

CGenPushLong() public méthode

public CGenPushLong ( Int32 imm ) : Int32
imm System.Int32
Résultat System.Int32

CGenPushLong() public méthode

public CGenPushLong ( System.Reg src ) : Int32
src System.Reg
Résultat System.Int32

CGenShrinkStackBy() public méthode

public CGenShrinkStackBy ( Int32 nbytes ) : void
nbytes System.Int32
Résultat void

CGenShrinkStackBy4Bytes() public méthode

public CGenShrinkStackBy4Bytes ( String comment = "" ) : void
comment String
Résultat void

CGenShrinkStackBy8Bytes() public méthode

public CGenShrinkStackBy8Bytes ( String comment = "" ) : void
comment String
Résultat void

CGenState() public méthode

public CGenState ( ) : System
Résultat System

CGenString() public méthode

public CGenString ( String str ) : String
str String
Résultat String

CLD() public méthode

public CLD ( ) : void
Résultat void

CLTD() public méthode

CLTD: used before division. clear %edx.
public CLTD ( ) : void
Résultat void

CMPL() public méthode

public CMPL ( Int32 imm, System.Reg ee ) : void
imm System.Int32
ee System.Reg
Résultat void

CMPL() public méthode

public CMPL ( System.Reg er, System.Reg ee ) : void
er System.Reg
ee System.Reg
Résultat void

CMPL() public méthode

CMPL: compare based on subtraction. Note that the order is reversed, i.e. ee comp er.
public CMPL ( String er, String ee ) : void
er String
ee String
Résultat void

COMM() public méthode

public COMM ( String name, Int32 size, Int32 align ) : void
name String
size System.Int32
align System.Int32
Résultat void

COMMENT() public méthode

public COMMENT ( String comment ) : void
comment String
Résultat void

CaseLabel() public méthode

public CaseLabel ( Int32 value ) : Int32
value System.Int32
Résultat System.Int32

DATA() public méthode

public DATA ( ) : void
Résultat void

DIVL() public méthode

public DIVL ( System.Reg er ) : void
er System.Reg
Résultat void

DIVL() public méthode

IDIVL: unsigned division. %eax = %edx:%eax / {addr}.
public DIVL ( String addr ) : void
addr String
Résultat void

FADD() public méthode

FADD: calculate %st(op1) + %st(op2) and rewrite %st(op2).
public FADD ( Int32 op1, Int32 op2 ) : void
op1 System.Int32
op2 System.Int32
Résultat void

FADDP() public méthode

FADDP: pop operands from %st(0) and %st(1), push addition result back to %st(0).
public FADDP ( ) : void
Résultat void

FCHS() public méthode

FCHS: %st(0) = -%st(0)
public FCHS ( ) : void
Résultat void

FDIVP() public méthode

FDIVP: pop operands from %st(0) and %st(1), push %st(0) / %st(1) back to %st(0).
public FDIVP ( ) : void
Résultat void

FLD1() public méthode

FLD1: push 1.0 to FPU stack.
public FLD1 ( ) : void
Résultat void

FLDL() public méthode

public FLDL ( Int32 imm, System.Reg from ) : void
imm System.Int32
from System.Reg
Résultat void

FLDL() public méthode

FLDL: load double to FPU stack.
public FLDL ( String addr ) : void
addr String Address.
Résultat void

FLDS() public méthode

public FLDS ( Int32 imm, System.Reg src ) : void
imm System.Int32
src System.Reg
Résultat void

FLDS() public méthode

FLDS: load float to FPU stack.
public FLDS ( String src ) : void
src String
Résultat void

FLDZ() public méthode

FLD0: push 0.0 to FPU stack.
public FLDZ ( ) : void
Résultat void

FMULP() public méthode

FMULP: pop operands from %st(0) and %st(1), push multiplication result back to %st(0).
public FMULP ( ) : void
Résultat void

FSTL() public méthode

public FSTL ( Int32 imm, System.Reg to ) : void
imm System.Int32
to System.Reg
Résultat void

FSTL() public méthode

FSTL: store double from FPU stack.
public FSTL ( String addr ) : void
addr String
Résultat void

FSTP() public méthode

public FSTP ( System.Reg dst ) : void
dst System.Reg
Résultat void

FSTP() public méthode

FSTP: copy %st(0) to dst, then pop %st(0).
public FSTP ( String dst ) : void
dst String
Résultat void

FSTPL() public méthode

public FSTPL ( Int32 imm, System.Reg to ) : void
imm System.Int32
to System.Reg
Résultat void

FSTPL() public méthode

FSTPL: pop from FPU and store *double*.
public FSTPL ( String addr ) : void
addr String
Résultat void

FSTPS() public méthode

public FSTPS ( Int32 imm, System.Reg to ) : void
imm System.Int32
to System.Reg
Résultat void

FSTPS() public méthode

FSTPS: pop float from FPU stack, and store to {addr}.
public FSTPS ( String addr ) : void
addr String
Résultat void

FSTS() public méthode

public FSTS ( Int32 imm, System.Reg to ) : void
imm System.Int32
to System.Reg
Résultat void

FSTS() public méthode

FSTS: store float from FPU stack.
public FSTS ( String addr ) : void
addr String
Résultat void

FSUB() public méthode

FADD: calculate %st(op1) + %st(op2) and rewrite %st(op2).
public FSUB ( Int32 op1, Int32 op2 ) : void
op1 System.Int32
op2 System.Int32
Résultat void

FSUBP() public méthode

FSUBP: pop operands from %st(0) and %st(1), push %st(0) / %st(1) back to %st(0).
public FSUBP ( ) : void
Résultat void

FUCOMIP() public méthode

FUCOMIP: unordered comparison: %st(0) vs %st(1).
public FUCOMIP ( ) : void
Résultat void

GLOBL() public méthode

public GLOBL ( String name ) : void
name String
Résultat void

GotoLabel() public méthode

public GotoLabel ( String label ) : Int32
label String
Résultat System.Int32

IDIVL() public méthode

public IDIVL ( System.Reg er ) : void
er System.Reg
Résultat void

IDIVL() public méthode

IDIVL: signed division. %eax = %edx:%eax / {addr}.
public IDIVL ( String addr ) : void
addr String
Résultat void

IMUL() public méthode

public IMUL ( System.Reg er ) : void
er System.Reg
Résultat void

IMUL() public méthode

IMUL: signed multiplication. %edx:%eax = %eax * {addr}.
public IMUL ( String addr ) : void
addr String
Résultat void

InFunction() public méthode

public InFunction ( IReadOnlyList goto_labels ) : void
goto_labels IReadOnlyList
Résultat void

InLoop() public méthode

public InLoop ( Int32 continue_label, Int32 break_label ) : void
continue_label System.Int32
break_label System.Int32
Résultat void

InSwitch() public méthode

public InSwitch ( Int32 break_label, Int32 default_label, Int32>.Dictionary value_to_label ) : void
break_label System.Int32
default_label System.Int32
value_to_label Int32>.Dictionary
Résultat void

JMP() public méthode

public JMP ( Int32 label ) : void
label System.Int32
Résultat void

JNZ() public méthode

public JNZ ( Int32 label ) : void
label System.Int32
Résultat void

JZ() public méthode

public JZ ( Int32 label ) : void
label System.Int32
Résultat void

LEA() public méthode

public LEA ( Int32 offset, System.Reg src, System.Reg dst ) : void
offset System.Int32
src System.Reg
dst System.Reg
Résultat void

LEA() public méthode

public LEA ( String addr, System.Reg dst ) : void
addr String
dst System.Reg
Résultat void

LEA() public méthode

public LEA ( String addr, String dst ) : void
addr String
dst String
Résultat void

LEAVE() public méthode

public LEAVE ( ) : void
Résultat void

LOCAL() public méthode

public LOCAL ( String name ) : void
name String
Résultat void

LONG() public méthode

public LONG ( Int32 value ) : void
value System.Int32
Résultat void

MOVB() public méthode

public MOVB ( System.Reg from, Int32 imm, System.Reg to ) : void
from System.Reg
imm System.Int32
to System.Reg
Résultat void

MOVB() public méthode

public MOVB ( System.Reg from, System.Reg to ) : void
from System.Reg
to System.Reg
Résultat void

MOVB() public méthode

MOVB: move a byte
public MOVB ( String src, String dst ) : void
src String
dst String
Résultat void

MOVL() public méthode

public MOVL ( Int32 imm, System.Reg dst ) : void
imm System.Int32
dst System.Reg
Résultat void

MOVL() public méthode

public MOVL ( Int32 offset, System.Reg src, System.Reg dst ) : void
offset System.Int32
src System.Reg
dst System.Reg
Résultat void

MOVL() public méthode

public MOVL ( Int32 imm, String dst ) : void
imm System.Int32
dst String
Résultat void

MOVL() public méthode

public MOVL ( System.Reg src, Int32 offset, System.Reg dst ) : void
src System.Reg
offset System.Int32
dst System.Reg
Résultat void

MOVL() public méthode

public MOVL ( System.Reg src, System.Reg dst ) : void
src System.Reg
dst System.Reg
Résultat void

MOVL() public méthode

public MOVL ( String src, System.Reg dst ) : void
src String
dst System.Reg
Résultat void

MOVL() public méthode

MOVL: move a 4-byte long
public MOVL ( String src, String dst ) : void
src String
dst String
Résultat void

MOVSBL() public méthode

public MOVSBL ( Int32 offset, System.Reg src, System.Reg dst ) : void
offset System.Int32
src System.Reg
dst System.Reg
Résultat void

MOVSBL() public méthode

public MOVSBL ( System.Reg src, System.Reg dst ) : void
src System.Reg
dst System.Reg
Résultat void

MOVSBL() public méthode

public MOVSBL ( String src, System.Reg dst ) : void
src String
dst System.Reg
Résultat void

MOVSBL() public méthode

MOVSBL: move a byte and sign-extend to a 4-byte long
public MOVSBL ( String src, String dst ) : void
src String
dst String
Résultat void

MOVSWL() public méthode

public MOVSWL ( Int32 offset, System.Reg from, System.Reg to ) : void
offset System.Int32
from System.Reg
to System.Reg
Résultat void

MOVSWL() public méthode

public MOVSWL ( System.Reg src, System.Reg dst ) : void
src System.Reg
dst System.Reg
Résultat void

MOVSWL() public méthode

public MOVSWL ( String from, System.Reg to ) : void
from String
to System.Reg
Résultat void

MOVSWL() public méthode

MOVSWL: move a 2-byte word and sign-extend to a 4-byte long
public MOVSWL ( String from, String to ) : void
from String
to String
Résultat void

MOVW() public méthode

public MOVW ( System.Reg from, Int32 imm, System.Reg to ) : void
from System.Reg
imm System.Int32
to System.Reg
Résultat void

MOVW() public méthode

MOVW: move a 2-byte word
public MOVW ( String from, String to ) : void
from String
to String
Résultat void

MOVZBL() public méthode

public MOVZBL ( Int32 offset, System.Reg src, System.Reg dst ) : void
offset System.Int32
src System.Reg
dst System.Reg
Résultat void

MOVZBL() public méthode

public MOVZBL ( System.Reg src, System.Reg dst ) : void
src System.Reg
dst System.Reg
Résultat void

MOVZBL() public méthode

public MOVZBL ( String src, System.Reg dst ) : void
src String
dst System.Reg
Résultat void

MOVZBL() public méthode

MOVZBL: move a byte and zero-extend to a 4-byte long
public MOVZBL ( String src, String dst ) : void
src String
dst String
Résultat void

MOVZWL() public méthode

public MOVZWL ( Int32 offset, System.Reg from, System.Reg to ) : void
offset System.Int32
from System.Reg
to System.Reg
Résultat void

MOVZWL() public méthode

public MOVZWL ( System.Reg src, System.Reg dst ) : void
src System.Reg
dst System.Reg
Résultat void

MOVZWL() public méthode

public MOVZWL ( String from, System.Reg to ) : void
from String
to System.Reg
Résultat void

MOVZWL() public méthode

MOVZWL: move a 2-byte word and zero-extend to a 4-byte long
public MOVZWL ( String from, String to ) : void
from String
to String
Résultat void

MUL() public méthode

public MUL ( System.Reg er ) : void
er System.Reg
Résultat void

MUL() public méthode

MUL: unsigned multiplication. %edx:%eax = %eax * {addr}.
public MUL ( String addr ) : void
addr String
Résultat void

NEG() public méthode

public NEG ( System.Reg dst ) : void
dst System.Reg
Résultat void

NEG() public méthode

NEG addr: addr = -addr
public NEG ( String addr ) : void
addr String
Résultat void

NEWLINE() public méthode

public NEWLINE ( ) : void
Résultat void

NOT() public méthode

public NOT ( System.Reg dst ) : void
dst System.Reg
Résultat void

NOT() public méthode

NOT: bitwise not
public NOT ( String addr ) : void
addr String
Résultat void

ORL() public méthode

public ORL ( System.Reg er, System.Reg ee, String comment = "" ) : void
er System.Reg
ee System.Reg
comment String
Résultat void

ORL() public méthode

ORL er, ee ee = ee | er
public ORL ( String er, String ee, String comment = "" ) : void
er String
ee String
comment String
Résultat void

OutFunction() public méthode

public OutFunction ( ) : void
Résultat void

OutLabels() public méthode

public OutLabels ( ) : void
Résultat void

RET() public méthode

public RET ( ) : void
Résultat void

RegToString() public static méthode

public static RegToString ( System.Reg reg ) : String
reg System.Reg
Résultat String

RequestLabel() public méthode

public RequestLabel ( ) : Int32
Résultat System.Int32

SALL() public méthode

public SALL ( System.Reg er, System.Reg ee ) : void
er System.Reg
ee System.Reg
Résultat void

SALL() public méthode

SALL er, ee ee = ee << er Note that there is only one Kind of lshift.
public SALL ( String er, String ee ) : void
er String
ee String
Résultat void

SARL() public méthode

public SARL ( System.Reg er, System.Reg ee ) : void
er System.Reg
ee System.Reg
Résultat void

SARL() public méthode

SARL er, ee (arithmetic shift) ee = ee >> er (append sign bit)
public SARL ( String er, String ee ) : void
er String
ee String
Résultat void

SETA() public méthode

public SETA ( System.Reg dst ) : void
dst System.Reg
Résultat void

SETA() public méthode

SETA: set if above (unsigned).
public SETA ( String dst ) : void
dst String
Résultat void

SETB() public méthode

public SETB ( System.Reg dst ) : void
dst System.Reg
Résultat void

SETB() public méthode

SETB: set if below (unsigned).
public SETB ( String dst ) : void
dst String
Résultat void

SETE() public méthode

public SETE ( System.Reg dst ) : void
dst System.Reg
Résultat void

SETE() public méthode

SETE: set if equal to.
public SETE ( String dst ) : void
dst String
Résultat void

SETG() public méthode

public SETG ( System.Reg dst ) : void
dst System.Reg
Résultat void

SETG() public méthode

SETG: set if greater than (signed).
public SETG ( String dst ) : void
dst String
Résultat void

SETGE() public méthode

public SETGE ( System.Reg dst ) : void
dst System.Reg
Résultat void

SETGE() public méthode

SETGE: set if greater or equal to (signed).
public SETGE ( String dst ) : void
dst String
Résultat void

SETL() public méthode

public SETL ( System.Reg dst ) : void
dst System.Reg
Résultat void

SETL() public méthode

SETL: set if less than (signed).
public SETL ( String dst ) : void
dst String
Résultat void

SETLE() public méthode

public SETLE ( System.Reg dst ) : void
dst System.Reg
Résultat void

SETLE() public méthode

SETLE: set if less than or equal to (signed).
public SETLE ( String dst ) : void
dst String
Résultat void

SETNA() public méthode

public SETNA ( System.Reg dst ) : void
dst System.Reg
Résultat void

SETNA() public méthode

SETNA: set if not above (unsigned).
public SETNA ( String dst ) : void
dst String
Résultat void

SETNB() public méthode

public SETNB ( System.Reg dst ) : void
dst System.Reg
Résultat void

SETNB() public méthode

SETNB: set if not below (unsigned).
public SETNB ( String dst ) : void
dst String
Résultat void

SETNE() public méthode

public SETNE ( System.Reg dst ) : void
dst System.Reg
Résultat void

SETNE() public méthode

SETNE: set if not equal to.
public SETNE ( String dst ) : void
dst String
Résultat void

SHRL() public méthode

public SHRL ( Int32 er, System.Reg ee ) : void
er System.Int32
ee System.Reg
Résultat void

SHRL() public méthode

public SHRL ( System.Reg er, System.Reg ee ) : void
er System.Reg
ee System.Reg
Résultat void

SHRL() public méthode

SHRL er, ee (logical shift) ee = ee >> er (append 0)
public SHRL ( String er, String ee ) : void
er String
ee String
Résultat void

STD() public méthode

public STD ( ) : void
Résultat void

SUBL() public méthode

public SUBL ( Int32 er, System.Reg ee, String comment = "" ) : void
er System.Int32
ee System.Reg
comment String
Résultat void

SUBL() public méthode

public SUBL ( System.Reg er, System.Reg ee, String comment = "" ) : void
er System.Reg
ee System.Reg
comment String
Résultat void

SUBL() public méthode

SUBL: subtract long
public SUBL ( String er, String ee, String comment = "" ) : void
er String
ee String
comment String
Résultat void

TESTL() public méthode

public TESTL ( System.Reg er, System.Reg ee ) : void
er System.Reg
ee System.Reg
Résultat void

TESTL() public méthode

TESTL: used like testl %eax, %eax: compare %eax with zero.
public TESTL ( String er, String ee ) : void
er String
ee String
Résultat void

TEXT() public méthode

public TEXT ( ) : void
Résultat void

ToString() public méthode

public ToString ( ) : String
Résultat String

VALUE() public méthode

public VALUE ( Int32 value ) : void
value System.Int32
Résultat void

XORL() public méthode

public XORL ( System.Reg er, System.Reg ee ) : void
er System.Reg
ee System.Reg
Résultat void

XORL() public méthode

XORL er, ee ee = ee ^ er
public XORL ( String er, String ee ) : void
er String
ee String
Résultat void

ZERO() public méthode

public ZERO ( Int32 size ) : void
size System.Int32
Résultat void

Property Details

label_idx public_oe property

public Int32,System label_idx
Résultat System.Int32

reg_strs public_oe static_oe property

public static Dictionary reg_strs
Résultat String>.Dictionary