FreeBASIC  0.91.0
ir-tac.bas File Reference
#include "fb.bi"
#include "fbint.bi"
#include "reg.bi"
#include "emit.bi"
#include "flist.bi"
#include "ir.bi"
#include "hlp.bi"
Include dependency graph for ir-tac.bas:

Go to the source code of this file.

Data Structures

class  IRTAC_CTX
 

Macros

#define hGetVREG(vreg, dt, dc, t)
 
#define hRelinkVreg(v, t)
 

Functions

sub hFlushUOP (byval_as_integer op, byval_as_IRVREG_ptr v1, byval_as_IRVREG_ptr vr)
 
sub hFlushBOP (byval_as_integer op, byval_as_IRVREG_ptr v1, byval_as_IRVREG_ptr v2, byval_as_IRVREG_ptr vr)
 
sub hFlushCOMP (byval_as_integer op, byval_as_IRVREG_ptr v1, byval_as_IRVREG_ptr v2, byval_as_IRVREG_ptr vr, byval_as_FBSYMBOL_ptr label)
 
sub hFlushSTORE (byval_as_integer op, byval_as_IRVREG_ptr v1, byval_as_IRVREG_ptr v2)
 
sub hFlushLOAD (byval_as_integer op, byval_as_IRVREG_ptr v1, byval_as_IRVREG_ptr vr)
 
sub hFlushCONVERT (byval_as_integer op, byval_as_IRVREG_ptr v1, byval_as_IRVREG_ptr v2)
 
sub hFlushCALL (byval_as_integer op, byval_as_FBSYMBOL_ptr proc, byval_as_integer bytestopop, byval_as_IRVREG_ptr v1, byval_as_IRVREG_ptr vr)
 
sub hFlushBRANCH (byval_as_integer op, byval_as_FBSYMBOL_ptr label)
 
sub hFlushSTACK (byval_as_integer op, byval_as_IRVREG_ptr v1, byval_as_integer ex)
 
sub hFlushADDR (byval_as_integer op, byval_as_IRVREG_ptr v1, byval_as_IRVREG_ptr vr)
 
sub hFlushMEM (byval_as_integer op, byval_as_IRVREG_ptr v1, byval_as_IRVREG_ptr v2, byval_as_integer bytes, byval_as_any_ptr extra)
 
sub hFlushDBG (byval_as_integer op, byval_as_FBSYMBOL_ptr proc, byval_as_integer ex)
 
sub hFlushLIT (byval_as_integer op, byval_as_zstring_ptr text)
 
sub hFreeIDX (byval_as_IRVREG_ptr vreg, byval_as_integer force=FALSE)
 
sub hFreeREG (byval_as_IRVREG_ptr vreg, byval_as_integer force=FALSE)
 
sub hFreePreservedRegs ()
 
sub hDumpFreeIntRegs ()
 
sub hDump (byval_as_integer op, byval_as_IRVREG_ptr v1, byval_as_IRVREG_ptr v2, byval_as_IRVREG_ptr vr, byval_as_integer wrapline=FALSE)
 
function_as_string tacvregDump (byval_as_IRTACVREG_ptr tacvreg)
 
sub tacDump (byval_as_IRTAC_ptr tac)
 
sub _flush ()
 
private sub _init ()
 
private sub _end ()
 
private function_as_integer _emitBegin ()
 
private sub _emitEnd (byval_as_double tottime)
 
private function_as_integer _getOptionValue (byval_as_IR_OPTIONVALUE opt)
 
private sub hLoadIDX (byval_as_IRVREG_ptr vreg)
 
private sub hRelink (byval_as_IRVREG_ptr vreg, byval_as_IRTACVREG_ptr tvreg)
 
private sub _emit (byval_as_integer op, byval_as_IRVREG_ptr v1, byval_as_IRVREG_ptr v2, byval_as_IRVREG_ptr vr, byval_as_FBSYMBOL_ptr ex1=NULL, byval_as_integer ex2=0)
 
private sub _procBegin (byval_as_FBSYMBOL_ptr proc)
 
private sub _procEnd (byval_as_FBSYMBOL_ptr proc)
 
private sub _procAllocArg (byval_as_FBSYMBOL_ptr proc, byval_as_FBSYMBOL_ptr sym)
 
private sub _procAllocLocal (byval_as_FBSYMBOL_ptr proc, byval_as_FBSYMBOL_ptr sym)
 
private
function_as_const_zstring_ptr 
_procGetFrameRegName ()
 
private sub _scopeBegin (byval_as_FBSYMBOL_ptr s)
 
private sub _scopeEnd (byval_as_FBSYMBOL_ptr s)
 
private sub _procAllocStaticVars (byval_as_FBSYMBOL_ptr head_sym)
 
private sub _emitLabel (byval_as_FBSYMBOL_ptr label)
 
private sub _emitReturn (byval_as_integer bytestopop)
 
private sub _emitProcBegin (byval_as_FBSYMBOL_ptr proc, byval_as_FBSYMBOL_ptr initlabel)
 
private sub _emitProcEnd (byval_as_FBSYMBOL_ptr proc, byval_as_FBSYMBOL_ptr initlabel, byval_as_FBSYMBOL_ptr exitlabel)
 
private sub _emitScopeBegin (byval_as_FBSYMBOL_ptr s)
 
private sub _emitScopeEnd (byval_as_FBSYMBOL_ptr s)
 
private sub _emitBop (byval_as_integer op, byval_as_IRVREG_ptr v1, byval_as_IRVREG_ptr v2, byval_as_IRVREG_ptr vr, byval_as_FBSYMBOL_ptr ex)
 
private sub _emitUop (byval_as_integer op, byval_as_IRVREG_ptr v1, byval_as_IRVREG_ptr vr)
 
private sub _emitConvert (byval_as_IRVREG_ptr v1, byval_as_IRVREG_ptr v2)
 
private sub _emitStore (byval_as_IRVREG_ptr v1, byval_as_IRVREG_ptr v2)
 
private sub _emitSpillRegs ()
 
private sub _emitLoad (byval_as_IRVREG_ptr v1)
 
private sub _emitLoadRes (byval_as_IRVREG_ptr v1, byval_as_IRVREG_ptr vr)
 
private sub _emitStack (byval_as_integer op, byval_as_IRVREG_ptr v1)
 
private sub _emitPushArg (byval_as_FBSYMBOL_ptr param, byval_as_IRVREG_ptr vr, byval_as_longint udtlen, byval_as_integer level)
 
private sub _emitAddr (byval_as_integer op, byval_as_IRVREG_ptr v1, byval_as_IRVREG_ptr vr)
 
private sub _emitLabelNF (byval_as_FBSYMBOL_ptr l)
 
private sub _emitCall (byval_as_FBSYMBOL_ptr proc, byval_as_integer bytestopop, byval_as_IRVREG_ptr vr, byval_as_integer level)
 
private sub _emitCallPtr (byval_as_IRVREG_ptr v1, byval_as_IRVREG_ptr vr, byval_as_integer bytestopop, byval_as_integer level)
 
private sub _emitStackAlign (byval_as_integer bytes)
 
private sub _emitJumpPtr (byval_as_IRVREG_ptr v1)
 
private sub _emitBranch (byval_as_integer op, byval_as_FBSYMBOL_ptr label)
 
private sub _emitJmpTb (byval_as_IRVREG_ptr v1, byval_as_FBSYMBOL_ptr tbsym, byval_as_ulongint_ptr values, byval_as_FBSYMBOL_ptr_ptr labels, byval_as_integer labelcount, byval_as_FBSYMBOL_ptr deflabel, byval_as_ulongint minval, byval_as_ulongint maxval)
 
private sub _emitMem (byval_as_integer op, byval_as_IRVREG_ptr v1, byval_as_IRVREG_ptr v2, byval_as_longint bytes)
 
private sub _emitDECL (byval_as_FBSYMBOL_ptr sym)
 
private sub _emitDBG (byval_as_integer op, byval_as_FBSYMBOL_ptr proc, byval_as_integer ex)
 
private sub _emitComment (byval_as_zstring_ptr text)
 
private sub _emitAsmBegin ()
 
private sub _emitAsmText (byval_as_zstring_ptr text)
 
private sub _emitAsmSymb (byval_as_FBSYMBOL_ptr sym)
 
private sub _emitAsmEnd ()
 
private sub _emitVarIniBegin (byval_as_FBSYMBOL_ptr sym)
 
private sub _emitVarIniEnd (byval_as_FBSYMBOL_ptr sym)
 
private sub _emitVarIniI (byval_as_FBSYMBOL_ptr sym, byval_as_longint value)
 
private sub _emitVarIniF (byval_as_FBSYMBOL_ptr sym, byval_as_double value)
 
private sub _emitVarIniOfs (byval_as_FBSYMBOL_ptr sym, byval_as_longint ofs)
 
private sub _emitVarIniStr (byval_as_longint totlgt, byval_as_zstring_ptr litstr, byval_as_longint litlgt)
 
private sub _emitVarIniWstr (byval_as_longint totlgt, byval_as_wstring_ptr litstr, byval_as_longint litlgt)
 
private sub _emitVarIniPad (byval_as_longint bytes)
 
private sub _emitVarIniScopeBegin ()
 
private sub _emitVarIniScopeEnd ()
 
private sub _emitFbctinfBegin ()
 
private sub _emitFbctinfString (byval_as_zstring_ptr s)
 
private sub _emitFbctinfEnd ()
 
private function_as_IRVREG_ptr hNewVR (byval_as_integer dtype, byval_as_FBSYMBOL_ptr subtype, byval_as_integer vtype)
 
private function_as_IRVREG_ptr _allocVreg (byval_as_integer dtype, byval_as_FBSYMBOL_ptr subtype)
 
private function_as_IRVREG_ptr _allocVrImm (byval_as_integer dtype, byval_as_FBSYMBOL_ptr subtype, byval_as_longint value)
 
private function_as_IRVREG_ptr _allocVrImmF (byval_as_integer dtype, byval_as_FBSYMBOL_ptr subtype, byval_as_double value)
 
private function_as_IRVREG_ptr _allocVrVar (byval_as_integer dtype, byval_as_FBSYMBOL_ptr subtype, byval_as_FBSYMBOL_ptr symbol, byval_as_longint ofs)
 
private function_as_IRVREG_ptr _allocVrIdx (byval_as_integer dtype, byval_as_FBSYMBOL_ptr subtype, byval_as_FBSYMBOL_ptr symbol, byval_as_longint ofs, byval_as_integer mult, byval_as_IRVREG_ptr vidx)
 
private function_as_IRVREG_ptr _allocVrPtr (byval_as_integer dtype, byval_as_FBSYMBOL_ptr subtype, byval_as_longint ofs, byval_as_IRVREG_ptr vidx)
 
private function_as_IRVREG_ptr _allocVrOfs (byval_as_integer dtype, byval_as_FBSYMBOL_ptr subtype, byval_as_FBSYMBOL_ptr symbol, byval_as_longint ofs)
 
private sub _setVregDataType (byval_as_IRVREG_ptr vreg, byval_as_integer dtype, byval_as_FBSYMBOL_ptr subtype)
 
private sub hRename (byval_as_IRVREG_ptr vold, byval_as_IRVREG_ptr vnew)
 
private sub hReuse (byval_as_IRTAC_ptr t)
 
private function_as_integer hPreserveReg (byval_as_IRVREG_ptr vr)
 
private sub hPreserveRegs (byval_as_IRVREG_ptr ptrvreg=NULL)
 
private sub hSpillRegs ()
 
private function_as_uinteger _GetDistance (byval_as_IRVREG_ptr vreg)
 
private sub _loadVR (byval_as_integer reg, byval_as_IRVREG_ptr vreg, byval_as_IRVREG_ptr vauxparent)
 
private sub _storeVR (byval_as_IRVREG_ptr vreg, byval_as_IRVREG_ptr vauxparent)
 
private sub _xchgTOS (byval_as_integer reg)
 

Variables

IRTAC_CTX ctx
 
REGCLASS_ptr regTB [toEMIT_REGCLASSES+1]
 
IR_VTBL irtac_vtbl =
 

Macro Definition Documentation

#define hGetVREG (   vreg,
  dt,
  dc,
 
)
Value:
/* (multi line FreeBasic #MACRO)
if( vreg <> NULL ) then
t = vreg->typ
dt = typeGet( vreg->dtype )
if( dt = FB_DATATYPE_POINTER ) then
dt = FB_DATATYPE_ULONG
end if
dc = symb_dtypeTB(dt).class
else
t = INVALID
dt = FB_DATATYPE_INVALID
dc = INVALID
end if
#endmacro */

Definition at line 238 of file ir-tac.bas.

#define hRelinkVreg (   v,
 
)
Value:
/* (multi line FreeBasic #MACRO)
t->v.reg.parent = NULL
t->v.reg.next = NULL
if( v <> NULL ) then
hRelink( v, @t->v.reg )
v->taclast = t
if( v->vidx <> NULL ) then
t->v.idx.vreg = v->vidx
t->v.idx.parent = v
t->v.idx.next = NULL
hRelink( v->vidx, @t->v.idx )
v->vidx->taclast = t
end if
if( v->vaux <> NULL ) then
t->v.aux.vreg = v->vaux
t->v.aux.parent = v
t->v.aux.next = NULL
hRelink( v->vaux, @t->v.aux )
v->vaux->taclast = t
end if
end if
#endmacro */

Definition at line 270 of file ir-tac.bas.

Function Documentation

private function_as_IRVREG_ptr _allocVreg ( byval_as_integer  dtype,
byval_as_FBSYMBOL_ptr  subtype 
)

Definition at line 894 of file ir-tac.bas.

Here is the call graph for this function:

private function_as_IRVREG_ptr _allocVrIdx ( byval_as_integer  dtype,
byval_as_FBSYMBOL_ptr  subtype,
byval_as_FBSYMBOL_ptr  symbol,
byval_as_longint  ofs,
byval_as_integer  mult,
byval_as_IRVREG_ptr  vidx 
)

Definition at line 991 of file ir-tac.bas.

Here is the call graph for this function:

private function_as_IRVREG_ptr _allocVrImm ( byval_as_integer  dtype,
byval_as_FBSYMBOL_ptr  subtype,
byval_as_longint  value 
)

Definition at line 913 of file ir-tac.bas.

Here is the call graph for this function:

private function_as_IRVREG_ptr _allocVrImmF ( byval_as_integer  dtype,
byval_as_FBSYMBOL_ptr  subtype,
byval_as_double  value 
)

Definition at line 938 of file ir-tac.bas.

Here is the call graph for this function:

private function_as_IRVREG_ptr _allocVrOfs ( byval_as_integer  dtype,
byval_as_FBSYMBOL_ptr  subtype,
byval_as_FBSYMBOL_ptr  symbol,
byval_as_longint  ofs 
)

Definition at line 1050 of file ir-tac.bas.

Here is the call graph for this function:

private function_as_IRVREG_ptr _allocVrPtr ( byval_as_integer  dtype,
byval_as_FBSYMBOL_ptr  subtype,
byval_as_longint  ofs,
byval_as_IRVREG_ptr  vidx 
)

Definition at line 1022 of file ir-tac.bas.

Here is the call graph for this function:

private function_as_IRVREG_ptr _allocVrVar ( byval_as_integer  dtype,
byval_as_FBSYMBOL_ptr  subtype,
byval_as_FBSYMBOL_ptr  symbol,
byval_as_longint  ofs 
)

Definition at line 962 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emit ( byval_as_integer  op,
byval_as_IRVREG_ptr  v1,
byval_as_IRVREG_ptr  v2,
byval_as_IRVREG_ptr  vr,
byval_as_FBSYMBOL_ptr  ex1 = NULL,
byval_as_integer  ex2 = 0 
)

Definition at line 298 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub _emitAddr ( byval_as_integer  op,
byval_as_IRVREG_ptr  v1,
byval_as_IRVREG_ptr  vr 
)

Definition at line 600 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitAsmBegin ( )

Definition at line 714 of file ir-tac.bas.

private sub _emitAsmEnd ( )

Definition at line 731 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitAsmSymb ( byval_as_FBSYMBOL_ptr  sym)

Definition at line 722 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitAsmText ( byval_as_zstring_ptr  text)

Definition at line 718 of file ir-tac.bas.

private function_as_integer _emitBegin ( )

Definition at line 183 of file ir-tac.bas.

private sub _emitBop ( byval_as_integer  op,
byval_as_IRVREG_ptr  v1,
byval_as_IRVREG_ptr  v2,
byval_as_IRVREG_ptr  vr,
byval_as_FBSYMBOL_ptr  ex 
)

Definition at line 503 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitBranch ( byval_as_integer  op,
byval_as_FBSYMBOL_ptr  label 
)

Definition at line 660 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitCall ( byval_as_FBSYMBOL_ptr  proc,
byval_as_integer  bytestopop,
byval_as_IRVREG_ptr  vr,
byval_as_integer  level 
)

Definition at line 622 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitCallPtr ( byval_as_IRVREG_ptr  v1,
byval_as_IRVREG_ptr  vr,
byval_as_integer  bytestopop,
byval_as_integer  level 
)

Definition at line 635 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitComment ( byval_as_zstring_ptr  text)

Definition at line 710 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitConvert ( byval_as_IRVREG_ptr  v1,
byval_as_IRVREG_ptr  v2 
)

Definition at line 527 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitDBG ( byval_as_integer  op,
byval_as_FBSYMBOL_ptr  proc,
byval_as_integer  ex 
)

Definition at line 700 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitDECL ( byval_as_FBSYMBOL_ptr  sym)

Definition at line 694 of file ir-tac.bas.

private sub _emitEnd ( byval_as_double  tottime)

Definition at line 192 of file ir-tac.bas.

private sub _emitFbctinfBegin ( )

Definition at line 842 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitFbctinfEnd ( )

Definition at line 850 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitFbctinfString ( byval_as_zstring_ptr  s)

Definition at line 846 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitJmpTb ( byval_as_IRVREG_ptr  v1,
byval_as_FBSYMBOL_ptr  tbsym,
byval_as_ulongint_ptr  values,
byval_as_FBSYMBOL_ptr_ptr  labels,
byval_as_integer  labelcount,
byval_as_FBSYMBOL_ptr  deflabel,
byval_as_ulongint  minval,
byval_as_ulongint  maxval 
)

Definition at line 665 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitJumpPtr ( byval_as_IRVREG_ptr  v1)

Definition at line 656 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitLabel ( byval_as_FBSYMBOL_ptr  label)

Definition at line 407 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitLabelNF ( byval_as_FBSYMBOL_ptr  l)

Definition at line 612 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitLoad ( byval_as_IRVREG_ptr  v1)

Definition at line 551 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitLoadRes ( byval_as_IRVREG_ptr  v1,
byval_as_IRVREG_ptr  vr 
)

Definition at line 561 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitMem ( byval_as_integer  op,
byval_as_IRVREG_ptr  v1,
byval_as_IRVREG_ptr  v2,
byval_as_longint  bytes 
)

Definition at line 683 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitProcBegin ( byval_as_FBSYMBOL_ptr  proc,
byval_as_FBSYMBOL_ptr  initlabel 
)

Definition at line 431 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitProcEnd ( byval_as_FBSYMBOL_ptr  proc,
byval_as_FBSYMBOL_ptr  initlabel,
byval_as_FBSYMBOL_ptr  exitlabel 
)

Definition at line 450 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitPushArg ( byval_as_FBSYMBOL_ptr  param,
byval_as_IRVREG_ptr  vr,
byval_as_longint  udtlen,
byval_as_integer  level 
)

Definition at line 583 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitReturn ( byval_as_integer  bytestopop)

Definition at line 419 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitScopeBegin ( byval_as_FBSYMBOL_ptr  s)

Definition at line 483 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitScopeEnd ( byval_as_FBSYMBOL_ptr  s)

Definition at line 493 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitSpillRegs ( )

Definition at line 542 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitStack ( byval_as_integer  op,
byval_as_IRVREG_ptr  v1 
)

Definition at line 572 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub _emitStackAlign ( byval_as_integer  bytes)

Definition at line 648 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitStore ( byval_as_IRVREG_ptr  v1,
byval_as_IRVREG_ptr  v2 
)

Definition at line 536 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitUop ( byval_as_integer  op,
byval_as_IRVREG_ptr  v1,
byval_as_IRVREG_ptr  vr 
)

Definition at line 517 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitVarIniBegin ( byval_as_FBSYMBOL_ptr  sym)

Definition at line 735 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitVarIniEnd ( byval_as_FBSYMBOL_ptr  sym)

Definition at line 740 of file ir-tac.bas.

private sub _emitVarIniF ( byval_as_FBSYMBOL_ptr  sym,
byval_as_double  value 
)

Definition at line 752 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitVarIniI ( byval_as_FBSYMBOL_ptr  sym,
byval_as_longint  value 
)

Definition at line 743 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitVarIniOfs ( byval_as_FBSYMBOL_ptr  sym,
byval_as_longint  ofs 
)

Definition at line 756 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitVarIniPad ( byval_as_longint  bytes)

Definition at line 830 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitVarIniScopeBegin ( )

Definition at line 834 of file ir-tac.bas.

private sub _emitVarIniScopeEnd ( )

Definition at line 838 of file ir-tac.bas.

private sub _emitVarIniStr ( byval_as_longint  totlgt,
byval_as_zstring_ptr  litstr,
byval_as_longint  litlgt 
)

Definition at line 761 of file ir-tac.bas.

Here is the call graph for this function:

private sub _emitVarIniWstr ( byval_as_longint  totlgt,
byval_as_wstring_ptr  litstr,
byval_as_longint  litlgt 
)

Definition at line 795 of file ir-tac.bas.

Here is the call graph for this function:

private sub _end ( void  )

Definition at line 171 of file ir-tac.bas.

Here is the call graph for this function:

private sub _flush ( void  )

Definition at line 1312 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private function_as_uinteger _GetDistance ( byval_as_IRVREG_ptr  vreg)

Definition at line 2501 of file ir-tac.bas.

Here is the call graph for this function:

private function_as_integer _getOptionValue ( byval_as_IR_OPTIONVALUE  opt)

Definition at line 202 of file ir-tac.bas.

private sub _init ( )

Definition at line 157 of file ir-tac.bas.

Here is the call graph for this function:

private sub _loadVR ( byval_as_integer  reg,
byval_as_IRVREG_ptr  vreg,
byval_as_IRVREG_ptr  vauxparent 
)

Definition at line 2534 of file ir-tac.bas.

Here is the call graph for this function:

private sub _procAllocArg ( byval_as_FBSYMBOL_ptr  proc,
byval_as_FBSYMBOL_ptr  sym 
)

Definition at line 353 of file ir-tac.bas.

private sub _procAllocLocal ( byval_as_FBSYMBOL_ptr  proc,
byval_as_FBSYMBOL_ptr  sym 
)

Definition at line 363 of file ir-tac.bas.

private sub _procAllocStaticVars ( byval_as_FBSYMBOL_ptr  head_sym)

Definition at line 401 of file ir-tac.bas.

private sub _procBegin ( byval_as_FBSYMBOL_ptr  proc)

Definition at line 334 of file ir-tac.bas.

private sub _procEnd ( byval_as_FBSYMBOL_ptr  proc)

Definition at line 344 of file ir-tac.bas.

private function_as_const_zstring_ptr _procGetFrameRegName ( )

Definition at line 374 of file ir-tac.bas.

private sub _scopeBegin ( byval_as_FBSYMBOL_ptr  s)

Definition at line 383 of file ir-tac.bas.

private sub _scopeEnd ( byval_as_FBSYMBOL_ptr  s)

Definition at line 393 of file ir-tac.bas.

private sub _setVregDataType ( byval_as_IRVREG_ptr  vreg,
byval_as_integer  dtype,
byval_as_FBSYMBOL_ptr  subtype 
)

Definition at line 1070 of file ir-tac.bas.

private sub _storeVR ( byval_as_IRVREG_ptr  vreg,
byval_as_IRVREG_ptr  vauxparent 
)

Definition at line 2569 of file ir-tac.bas.

Here is the call graph for this function:

private sub _xchgTOS ( byval_as_integer  reg)

Definition at line 2630 of file ir-tac.bas.

Here is the call graph for this function:

private sub hDump ( byval_as_integer  op,
byval_as_IRVREG_ptr  v1,
byval_as_IRVREG_ptr  v2,
byval_as_IRVREG_ptr  vr,
byval_as_integer  wrapline = FALSE 
)

Definition at line 1109 of file ir-tac.bas.

Here is the call graph for this function:

private sub hDumpFreeIntRegs ( )

Definition at line 1086 of file ir-tac.bas.

Here is the call graph for this function:

private sub hFlushADDR ( byval_as_integer  op,
byval_as_IRVREG_ptr  v1,
byval_as_IRVREG_ptr  vr 
)

Definition at line 2317 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hFlushBOP ( byval_as_integer  op,
byval_as_IRVREG_ptr  v1,
byval_as_IRVREG_ptr  v2,
byval_as_IRVREG_ptr  vr 
)

Definition at line 1853 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hFlushBRANCH ( byval_as_integer  op,
byval_as_FBSYMBOL_ptr  label 
)

Definition at line 1404 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hFlushCALL ( byval_as_integer  op,
byval_as_FBSYMBOL_ptr  proc,
byval_as_integer  bytestopop,
byval_as_IRVREG_ptr  v1,
byval_as_IRVREG_ptr  vr 
)

Definition at line 1616 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hFlushCOMP ( byval_as_integer  op,
byval_as_IRVREG_ptr  v1,
byval_as_IRVREG_ptr  v2,
byval_as_IRVREG_ptr  vr,
byval_as_FBSYMBOL_ptr  label 
)

Definition at line 1967 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hFlushCONVERT ( byval_as_integer  op,
byval_as_IRVREG_ptr  v1,
byval_as_IRVREG_ptr  v2 
)

Definition at line 2220 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hFlushDBG ( byval_as_integer  op,
byval_as_FBSYMBOL_ptr  proc,
byval_as_integer  ex 
)

Definition at line 2393 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hFlushLIT ( byval_as_integer  op,
byval_as_zstring_ptr  text 
)

Definition at line 2415 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hFlushLOAD ( byval_as_integer  op,
byval_as_IRVREG_ptr  v1,
byval_as_IRVREG_ptr  vr 
)

Definition at line 2145 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hFlushMEM ( byval_as_integer  op,
byval_as_IRVREG_ptr  v1,
byval_as_IRVREG_ptr  v2,
byval_as_integer  bytes,
byval_as_any_ptr  extra 
)

Definition at line 2358 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hFlushSTACK ( byval_as_integer  op,
byval_as_IRVREG_ptr  v1,
byval_as_integer  ex 
)

Definition at line 1684 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hFlushSTORE ( byval_as_integer  op,
byval_as_IRVREG_ptr  v1,
byval_as_IRVREG_ptr  v2 
)

Definition at line 2099 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hFlushUOP ( byval_as_integer  op,
byval_as_IRVREG_ptr  v1,
byval_as_IRVREG_ptr  vr 
)

Definition at line 1732 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hFreeIDX ( byval_as_IRVREG_ptr  vreg,
byval_as_integer  force = FALSE 
)

Definition at line 2430 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hFreePreservedRegs ( )

Definition at line 1429 of file ir-tac.bas.

Here is the caller graph for this function:

private sub hFreeREG ( byval_as_IRVREG_ptr  vreg,
byval_as_integer  force = FALSE 
)

Definition at line 2453 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hLoadIDX ( byval_as_IRVREG_ptr  vreg)

Definition at line 210 of file ir-tac.bas.

Here is the caller graph for this function:

private function_as_IRVREG_ptr hNewVR ( byval_as_integer  dtype,
byval_as_FBSYMBOL_ptr  subtype,
byval_as_integer  vtype 
)

Definition at line 858 of file ir-tac.bas.

Here is the call graph for this function:

private function_as_integer hPreserveReg ( byval_as_IRVREG_ptr  vr)

Definition at line 1456 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hPreserveRegs ( byval_as_IRVREG_ptr  ptrvreg = NULL)

Definition at line 1554 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hRelink ( byval_as_IRVREG_ptr  vreg,
byval_as_IRTACVREG_ptr  tvreg 
)

Definition at line 259 of file ir-tac.bas.

private sub hRename ( byval_as_IRVREG_ptr  vold,
byval_as_IRVREG_ptr  vnew 
)

Definition at line 1196 of file ir-tac.bas.

Here is the caller graph for this function:

private sub hReuse ( byval_as_IRTAC_ptr  t)

Definition at line 1229 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hSpillRegs ( )

Definition at line 2071 of file ir-tac.bas.

Here is the caller graph for this function:

sub tacDump ( byval_as_IRTAC_ptr  tac)

Definition at line 1176 of file ir-tac.bas.

Here is the call graph for this function:

function_as_string tacvregDump ( byval_as_IRTACVREG_ptr  tacvreg)

Definition at line 1166 of file ir-tac.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

Variable Documentation

IRTAC_CTX ctx

Definition at line 153 of file ir-tac.bas.

IR_VTBL irtac_vtbl =

Definition at line 2646 of file ir-tac.bas.

REGCLASS_ptr regTB[toEMIT_REGCLASSES+1]

Definition at line 155 of file ir-tac.bas.