Fan

 

class

compiler::CodeAsm

sys::Obj
  compiler::CompilerSupport
    compiler::CodeAsm

CodeAsm is used to assemble the fcode instructions of an Expr or Block.

Slots

blockSource

Void block(Block block)

codeSource

Buf code

curMethodSource

MethodDef? curMethod

errCountSource

Int errCount

errTableSource

Buf errTable

exprSource

Void expr(Expr expr)

finishCodeSource

Buf finishCode()

Finish writing out the exception handling table

finishErrTableSource

Buf finishErrTable()

Finish writing out the exception handling table

finishLinesSource

Buf finishLines()

Finish writing out the line number table

fpodSource

FPod fpod

lastLineSource

Int lastLine := -1

leavesToReturnSource

Int[]? leavesToReturn

lineCountSource

Int lineCount

linesSource

Buf lines

locationSource

Location location

loopStackSource

Loop[] loopStack

makeSource

new make(Compiler compiler, Location location, FPod fpod, MethodDef? curMethod)

opSource

Void op(FOp op, Int? arg := null)

Append a opcode with option two byte argument.

opTypeSource

Void opType(FOp opcode, CType arg)

Append a opcode with a type argument.

protectedRegionsSource

ProtectedRegion[]? protectedRegions

returnLocalSource

MethodVar? returnLocal

stmtSource

Void stmt(Stmt stmt)