NativeCodeGenerator Class
Assembly: Topten.Cminor.Compiler.dll
Namespace: Topten.Cminor.CodeGen.Native
Native code generator
public class NativeCodeGenerator
Inheritance
NativeCodeGenerator → object
Constructors
NativeCodeGenerator() |
Methods
Call(Label, int, Operand) | Generate a call to a function, passing the top N parameters |
Convert(OperandType) | Convert the top of stack value to target type |
CreateData() | |
CreateData(byte[]) | Emit data |
CreateLabel() | Creates a label for a jump or call target |
CreateLocal(Operand) | Create a local variable |
FinishFunction() | Finish generation of the current function |
FreeLocal(Local) | Free a previously allocated local so stack space can be re-used |
Jump(Label) | Generates an unconditional jump to a label |
JumpIfFalse(Label) | Pop value from the stack and if false, jump to label |
JumpIfTrue(Label) | Pop a value from the stack and if true, jump to label |
LoadField(int, OperandType) | Pop an address from the top of stack and then load an unsigned byte from [address+offset] zero extending to 32-bit |
LoadLabel(Label) | Load the address of a label |
LoadLiteral(object) | Load a literal value onto the v-stack. Must be a boolean or number (integral or floating point) |
LoadLocal(Local) | Load the value of a local to the vstack |
LoadParameter(int) | Load the value of a parameter onto the stack |
Operator(OperatorType) | Performs a unary op on the value on the top of stack |
StartFunction(Label, Operand, params Operand[]) | Start the generation of a function |
StoreField(int, OperandType) | Pop an address from the top of stack and then load an unsigned byte from [address+offset] zero extending to 32-bit |
StoreLocal(Local) | Store the value from the top of stack to a local |
StoreParameter(int) | Store the top of stack to a parameter |
VCall(int, Operand) | Generate a call to a function through a pointer store on the stack (after the parameters) |