FreeBASIC  0.91.0
emit_x86.bas File Reference
#include "fb.bi"
#include "fbint.bi"
#include "reg.bi"
#include "ir.bi"
#include "rtl.bi"
#include "emit.bi"
#include "emitdbg.bi"
#include "hash.bi"
#include "symb.bi"
#include "emit-private.bi"
Include dependency graph for emit_x86.bas:

Go to the source code of this file.

Macros

#define hEmitBssHeader()   /* _setSection( IR_SECTION_BSS, 0 ) */
 
#define hEmitConstHeader()   /* _setSection( IR_SECTION_CONST, 0 ) */
 
#define hEmitConstHeader()   /* _setSection( IR_SECTION_DATA, 0 ) */
 
#define hEmitDataHeader()   /* _setSection( IR_SECTION_DATA, 0 ) */
 
#define hEmitExportHeader()   /* _setSection( IR_SECTION_DIRECTIVE, 0 ) */
 
#define EMIT_CBENTRY(op)   /* @_emit##op## */
 

Functions

sub hDeclVariable (byval_as_FBSYMBOL_ptr s)
 
function_as_const_zstring_ptr _getSectionString (byval_as_integer section, byval_as_integer priority)
 
sub _setSection (byval_as_integer section, byval_as_integer priority)
 
function_as_const_zstring_ptr _getTypeString (byval_as_integer dtype)
 
function_as_string emitDumpRegName (byval_as_integer dtype, byval_as_integer reg)
 
function_as_integer hIsRegFree (byval_as_integer dclass, byval_as_integer reg)
 
function_as_integer hFindRegNotInVreg (byval_as_IRVREG_ptr vreg, byval_as_integer noSIDI=FALSE)
 
function_as_integer hFindFreeReg (byval_as_integer dclass)
 
function_as_integer hIsRegInVreg (byval_as_IRVREG_ptr vreg, byval_as_integer reg)
 
function_as_zstring_ptr hGetRegName (byval_as_integer dtype, byval_as_integer reg)
 
private function_as_zstring_ptr hGetIdxName (byval_as_IRVREG_ptr vreg)
 
sub hPrepOperand (byval_as_IRVREG_ptr vreg, byref_as_string operand, byval_as_FB_DATATYPE dtype=FB_DATATYPE_INVALID, byval_as_integer ofs=0, byval_as_integer isaux=FALSE, byval_as_integer addprefix=TRUE)
 
sub hPrepOperand64 (byval_as_IRVREG_ptr vreg, byref_as_string operand1, byref_as_string operand2)
 
private sub outEx (byval_as_zstring_ptr s, byval_as_integer bytes=0)
 
sub outp (byval_as_zstring_ptr s)
 
sub hBRANCH (byval_as_zstring_ptr mnemonic, byval_as_zstring_ptr label)
 
sub hPUSH (byval_as_zstring_ptr rname)
 
sub hPOP (byval_as_zstring_ptr rname)
 
sub hMOV (byval_as_zstring_ptr dname, byval_as_zstring_ptr sname)
 
private sub hXCHG (byval_as_zstring_ptr dname, byval_as_zstring_ptr sname)
 
private sub hCOMMENT (byval_as_zstring_ptr s)
 
private sub hPUBLIC (byval_as_zstring_ptr label, byval_as_integer isexport)
 
sub hLABEL (byval_as_zstring_ptr label)
 
private sub hALIGN (byval_as_integer bytes)
 
private sub hInitRegTB (void)
 
private sub hEndRegTB (void)
 
private sub hInitKeywordsTB (void)
 
private sub hEndKeywordsTB (void)
 
private sub hEmitVarBss (byval_as_FBSYMBOL_ptr s)
 
private sub hWriteHeader ()
 
private sub hWriteBss (byval_as_FBSYMBOL_ptr s)
 
private sub hEmitVarConst (byval_as_FBSYMBOL_ptr s)
 
private sub hWriteConst (byval_as_FBSYMBOL_ptr s)
 
private sub hWriteData (byval_as_FBSYMBOL_ptr s)
 
private sub hWriteCtor (byval_as_FB_GLOBCTORLIST_ITEM_ptr proc_head, byval_as_integer is_ctor)
 
private sub hEmitExport (byval_as_FBSYMBOL_ptr s)
 
private sub hWriteExport (byval_as_FBSYMBOL_ptr s)
 
private sub hClearLocals (byval_as_integer bytestoclear, byval_as_integer baseoffset)
 
private sub hCreateFrame (byval_as_FBSYMBOL_ptr proc)
 
private sub hDestroyFrame (byval_as_FBSYMBOL_ptr proc, byval_as_integer bytestopop)
 
private sub _emitLIT (byval_as_zstring_ptr s)
 
private sub _emitJMPTB (byval_as_FBSYMBOL_ptr tbsym, byval_as_ulongint_ptr values1, byval_as_FBSYMBOL_ptr_ptr labels1, byval_as_integer labelcount, byval_as_FBSYMBOL_ptr deflabel, byval_as_ulongint minval, byval_as_ulongint maxval)
 
private sub _emitCALL (byval_as_IRVREG_ptr unused, byval_as_FBSYMBOL_ptr label, byval_as_integer bytestopop)
 
private sub _emitCALLPTR (byval_as_IRVREG_ptr svreg, byval_as_FBSYMBOL_ptr unused, byval_as_integer bytestopop)
 
private sub _emitBRANCH (byval_as_IRVREG_ptr unused, byval_as_FBSYMBOL_ptr label, byval_as_integer op)
 
private sub _emitJUMP (byval_as_IRVREG_ptr unused1, byval_as_FBSYMBOL_ptr label, byval_as_integer unused2)
 
private sub _emitJUMPPTR (byval_as_IRVREG_ptr svreg, byval_as_FBSYMBOL_ptr unused1, byval_as_integer unused2)
 
private sub _emitRET (byval_as_IRVREG_ptr vreg)
 
private sub _emitPUBLIC (byval_as_FBSYMBOL_ptr label)
 
private sub _emitLABEL (byval_as_FBSYMBOL_ptr label)
 
private sub _emitNOP ()
 
private sub hULONG2DBL (byval_as_IRVREG_ptr svreg)
 
private sub _emitSTORL2L (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitSTORI2L (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitSTORF2L (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitSTORI2I (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitSTORL2I (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitSTORF2I (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitSTORL2F (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitSTORI2F (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitSTORF2F (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitLOADL2L (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitLOADI2L (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitLOADF2L (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitLOADI2I (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitLOADL2I (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitLOADF2I (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitLOADL2F (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitLOADI2F (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitLOADF2F (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitMOVL (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitMOVI (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitMOVF (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitADDL (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitADDI (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitADDF (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitSUBL (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitSUBI (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitSUBF (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitMULL (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitMULI (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitMULF (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitDIVF (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitDIVI (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitMODI (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub hSHIFTL (byval_as_integer op, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub hSHIFTI (byval_as_integer op, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitSHLL (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitSHLI (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitSHRL (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitSHRI (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitANDL (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitANDI (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitORL (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitORI (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitXORL (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitXORI (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitEQVL (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitEQVI (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitIMPL (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitIMPI (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitATN2 (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitPOW (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub hCMPL (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_zstring_ptr mnemonic, byval_as_zstring_ptr rev_mnemonic, byval_as_zstring_ptr usg_mnemonic, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg, byval_as_integer isinverse=FALSE)
 
private sub hCMPI (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_zstring_ptr mnemonic, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub hCMPF (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_zstring_ptr mnemonic, byval_as_zstring_ptr mask, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitCGTL (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitCGTI (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitCGTF (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitCLTL (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitCLTI (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitCLTF (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitCEQL (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitCEQI (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitCEQF (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitCNEL (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitCNEI (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitCNEF (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitCLEL (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitCLEI (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitCLEF (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitCGEL (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitCGEI (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitCGEF (byval_as_IRVREG_ptr rvreg, byval_as_FBSYMBOL_ptr label, byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitNEGL (byval_as_IRVREG_ptr dvreg)
 
private sub _emitNEGI (byval_as_IRVREG_ptr dvreg)
 
private sub _emitNEGF (byval_as_IRVREG_ptr dvreg)
 
private sub _emitNOTL (byval_as_IRVREG_ptr dvreg)
 
private sub _emitNOTI (byval_as_IRVREG_ptr dvreg)
 
private sub _emitABSL (byval_as_IRVREG_ptr dvreg)
 
private sub _emitABSI (byval_as_IRVREG_ptr dvreg)
 
private sub _emitABSF (byval_as_IRVREG_ptr dvreg)
 
private sub _emitSGNL (byval_as_IRVREG_ptr dvreg)
 
private sub _emitSGNI (byval_as_IRVREG_ptr dvreg)
 
private sub _emitSGNF (byval_as_IRVREG_ptr dvreg)
 
private sub _emitSIN (byval_as_IRVREG_ptr dvreg)
 
private sub _emitASIN (byval_as_IRVREG_ptr dvreg)
 
private sub _emitCOS (byval_as_IRVREG_ptr dvreg)
 
private sub _emitACOS (byval_as_IRVREG_ptr dvreg)
 
private sub _emitTAN (byval_as_IRVREG_ptr dvreg)
 
private sub _emitATAN (byval_as_IRVREG_ptr dvreg)
 
private sub _emitSQRT (byval_as_IRVREG_ptr dvreg)
 
private sub _emitLOG (byval_as_IRVREG_ptr dvreg)
 
private sub _emitEXP (byval_as_IRVREG_ptr dvreg)
 
private sub hFpuChangeRC (byref_as_string regname, byval_as_zstring_ptr mode)
 
private sub hEmitFloatFunc (byval_as_integer func)
 
private sub _emitFLOOR (byval_as_IRVREG_ptr dvreg)
 
private sub _emitFIX (byval_as_IRVREG_ptr dvreg)
 
private sub _emitFRAC (byval_as_IRVREG_ptr dvreg)
 
private sub _emitCONVFD2FS (byval_as_IRVREG_ptr dvreg)
 
private sub _emitXchgTOS (byval_as_IRVREG_ptr svreg)
 
private sub _emitSTACKALIGN (byval_as_IRVREG_ptr vreg, byval_as_integer unused)
 
private sub _emitPUSHL (byval_as_IRVREG_ptr svreg, byval_as_integer unused)
 
private sub _emitPUSHI (byval_as_IRVREG_ptr svreg, byval_as_integer unused)
 
private sub _emitPUSHF (byval_as_IRVREG_ptr svreg, byval_as_integer unused)
 
private sub _emitPUSHUDT (byval_as_IRVREG_ptr svreg, byval_as_integer sdsize)
 
private sub _emitPOPL (byval_as_IRVREG_ptr dvreg, byval_as_integer unused)
 
private sub _emitPOPI (byval_as_IRVREG_ptr dvreg, byval_as_integer unused)
 
private sub _emitPOPF (byval_as_IRVREG_ptr dvreg, byval_as_integer unused)
 
private sub _emitADDROF (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub _emitDEREF (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg)
 
private sub hMemMoveRep (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg, byval_as_integer bytes)
 
private sub hMemMoveBlk (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg, byval_as_integer bytes)
 
private sub _emitMEMMOVE (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg, byval_as_integer bytes, byval_as_integer extra)
 
private sub _emitMEMSWAP (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg, byval_as_integer bytes, byval_as_integer extra)
 
private sub hMemClearRepIMM (byval_as_IRVREG_ptr dvreg, byval_as_ulong bytes)
 
private sub hMemClearBlkIMM (byval_as_IRVREG_ptr dvreg, byval_as_ulong bytes)
 
private sub hMemClear (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr bytes_vreg)
 
private sub _emitMEMCLEAR (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg, byval_as_integer unused, byval_as_integer extra)
 
private sub _emitSTKCLEAR (byval_as_IRVREG_ptr dvreg, byval_as_IRVREG_ptr svreg, byval_as_integer bytes, byval_as_integer baseofs)
 
private sub _emitLINEINI (byval_as_FBSYMBOL_ptr proc, byval_as_integer lnum, byval_as_integer pos_)
 
private sub _emitLINEEND (byval_as_FBSYMBOL_ptr proc, byval_as_integer lnum, byval_as_integer pos_)
 
private sub _emitSCOPEINI (byval_as_FBSYMBOL_ptr sym, byval_as_integer lnum, byval_as_integer pos_)
 
private sub _emitSCOPEEND (byval_as_FBSYMBOL_ptr sym, byval_as_integer lnum, byval_as_integer pos_)
 
sub emitVARINIBEGIN (byval_as_FBSYMBOL_ptr sym)
 
sub emitVARINIi (byval_as_integer dtype, byval_as_integer value)
 
sub emitVARINIf (byval_as_integer dtype, byval_as_double value)
 
sub emitVARINI64 (byval_as_integer dtype, byval_as_longint value)
 
sub emitVARINIOFS (byval_as_zstring_ptr sname, byval_as_integer ofs)
 
sub emitVARINISTR (byval_as_const_zstring_ptr s)
 
sub emitVARINIWSTR (byval_as_zstring_ptr s)
 
sub emitVARINIPAD (byval_as_integer bytes)
 
sub emitFBCTINFBEGIN ()
 
sub emitFBCTINFSTRING (byval_as_zstring_ptr s)
 
sub emitFBCTINFEND ()
 
private function_as_integer _init ()
 
private sub _end (void)
 
private function_as_integer _getOptionValue (byval_as_IR_OPTIONVALUE opt)
 
private function_as_integer _open ()
 
private sub _close (byval_as_double tottime)
 
private
function_as_const_zstring_ptr 
_procGetFrameRegName ()
 
private function_as_integer _isRegPreserved (byval_as_integer dclass, byval_as_integer reg)
 
private sub _getResultReg (byval_as_integer dtype, byval_as_integer dclass, byref_as_integer r1, byref_as_integer r2)
 
private function_as_integer _getFreePreservedReg (byval_as_integer dclass, byval_as_integer dtype)
 
private function_as_integer _isKeyword (byval_as_zstring_ptr text)
 
private sub _procBegin (byval_as_FBSYMBOL_ptr proc)
 
private sub _procEnd (byval_as_FBSYMBOL_ptr proc)
 
private sub _procAllocStaticVars (byval_as_FBSYMBOL_ptr s)
 
private sub _procAllocLocal (byval_as_FBSYMBOL_ptr proc, byval_as_FBSYMBOL_ptr sym)
 
private sub _procAllocArg (byval_as_FBSYMBOL_ptr proc, byval_as_FBSYMBOL_ptr sym)
 
private sub _procHeader (byval_as_FBSYMBOL_ptr proc, byval_as_FBSYMBOL_ptr initlabel)
 
private sub _procFooter (byval_as_FBSYMBOL_ptr proc, byval_as_integer bytestopop, byval_as_FBSYMBOL_ptr initlabel, byval_as_FBSYMBOL_ptr exitlabel)
 
private sub _scopeBegin (byval_as_FBSYMBOL_ptr s)
 
private sub _scopeEnd (byval_as_FBSYMBOL_ptr s)
 
function_as_integer emitGasX86_ctor ()
 

Variables

zstring rnameTB [toEMIT_MAXRTABLES+1][toEMIT_MAXRNAMES+1] =>
 
EMITDATATYPE dtypeTB [toFB_DATATYPES+1] =>
 
const VAR EMIT_MAXKEYWORDS = 600
 
const_zstring_ptr keywordTb [toEMIT_MAXKEYWORDS+1] =>
 
any_ptr _opFnTB [toEMIT_MAXOPS+1] =>
 

Macro Definition Documentation

#define EMIT_CBENTRY (   op)    /* @_emit##op## */

Definition at line 6330 of file emit_x86.bas.

#define hEmitBssHeader ( )    /* _setSection( IR_SECTION_BSS, 0 ) */

Definition at line 148 of file emit_x86.bas.

#define hEmitConstHeader ( )    /* _setSection( IR_SECTION_CONST, 0 ) */

Definition at line 160 of file emit_x86.bas.

#define hEmitConstHeader ( )    /* _setSection( IR_SECTION_DATA, 0 ) */

Definition at line 160 of file emit_x86.bas.

#define hEmitDataHeader ( )    /* _setSection( IR_SECTION_DATA, 0 ) */

Definition at line 164 of file emit_x86.bas.

#define hEmitExportHeader ( )    /* _setSection( IR_SECTION_DIRECTIVE, 0 ) */

Definition at line 167 of file emit_x86.bas.

Function Documentation

private sub _close ( byval_as_double  tottime)

Definition at line 6520 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitABSF ( byval_as_IRVREG_ptr  dvreg)

Definition at line 5000 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitABSI ( byval_as_IRVREG_ptr  dvreg)

Definition at line 4959 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitABSL ( byval_as_IRVREG_ptr  dvreg)

Definition at line 4915 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitACOS ( byval_as_IRVREG_ptr  dvreg)

Definition at line 5145 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitADDF ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2880 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitADDI ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2840 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitADDL ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2819 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitADDROF ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 5717 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitANDI ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 3976 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitANDL ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 3955 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitASIN ( byval_as_IRVREG_ptr  dvreg)

Definition at line 5119 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitATAN ( byval_as_IRVREG_ptr  dvreg)

Definition at line 5173 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitATN2 ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4169 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitBRANCH ( byval_as_IRVREG_ptr  unused,
byval_as_FBSYMBOL_ptr  label,
byval_as_integer  op 
)

Definition at line 1495 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCALL ( byval_as_IRVREG_ptr  unused,
byval_as_FBSYMBOL_ptr  label,
byval_as_integer  bytestopop 
)

Definition at line 1451 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCALLPTR ( byval_as_IRVREG_ptr  svreg,
byval_as_FBSYMBOL_ptr  unused,
byval_as_integer  bytestopop 
)

Definition at line 1472 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCEQF ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4656 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCEQI ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4642 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCEQL ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4629 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCGEF ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4813 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCGEI ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4791 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCGEL ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4768 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCGTF ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4558 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCGTI ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4535 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCGTL ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4512 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCLEF ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4754 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCLEI ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4732 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCLEL ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4709 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCLTF ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4616 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCLTI ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4594 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCLTL ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4571 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCNEF ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4696 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCNEI ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4682 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCNEL ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4669 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCONVFD2FS ( byval_as_IRVREG_ptr  dvreg)

Definition at line 5299 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitCOS ( byval_as_IRVREG_ptr  dvreg)

Definition at line 5135 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitDEREF ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 5735 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitDIVF ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 3181 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitDIVI ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 3209 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitEQVI ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4099 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitEQVL ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4072 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitEXP ( byval_as_IRVREG_ptr  dvreg)

Definition at line 5208 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitFIX ( byval_as_IRVREG_ptr  dvreg)

Definition at line 5291 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitFLOOR ( byval_as_IRVREG_ptr  dvreg)

Definition at line 5287 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitFRAC ( byval_as_IRVREG_ptr  dvreg)

Definition at line 5295 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitIMPI ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4147 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitIMPL ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4120 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitJMPTB ( byval_as_FBSYMBOL_ptr  tbsym,
byval_as_ulongint_ptr  values1,
byval_as_FBSYMBOL_ptr_ptr  labels1,
byval_as_integer  labelcount,
byval_as_FBSYMBOL_ptr  deflabel,
byval_as_ulongint  minval,
byval_as_ulongint  maxval 
)

Definition at line 1401 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitJUMP ( byval_as_IRVREG_ptr  unused1,
byval_as_FBSYMBOL_ptr  label,
byval_as_integer  unused2 
)

Definition at line 1525 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitJUMPPTR ( byval_as_IRVREG_ptr  svreg,
byval_as_FBSYMBOL_ptr  unused1,
byval_as_integer  unused2 
)

Definition at line 1541 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitLABEL ( byval_as_FBSYMBOL_ptr  label)

Definition at line 1587 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitLINEEND ( byval_as_FBSYMBOL_ptr  proc,
byval_as_integer  lnum,
byval_as_integer  pos_ 
)

Definition at line 6203 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitLINEINI ( byval_as_FBSYMBOL_ptr  proc,
byval_as_integer  lnum,
byval_as_integer  pos_ 
)

Definition at line 6191 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitLIT ( byval_as_zstring_ptr  s)

Definition at line 1394 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitLOADF2F ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2742 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitLOADF2I ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2450 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitLOADF2L ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2280 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitLOADI2F ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2614 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitLOADI2I ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2361 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitLOADI2L ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2217 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitLOADL2F ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2552 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitLOADL2I ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2437 of file emit_x86.bas.

private sub _emitLOADL2L ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2196 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitLOG ( byval_as_IRVREG_ptr  dvreg)

Definition at line 5194 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitMEMCLEAR ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg,
byval_as_integer  unused,
byval_as_integer  extra 
)

Definition at line 6150 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitMEMMOVE ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg,
byval_as_integer  bytes,
byval_as_integer  extra 
)

Definition at line 5933 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitMEMSWAP ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg,
byval_as_integer  bytes,
byval_as_integer  extra 
)

Definition at line 5951 of file emit_x86.bas.

private sub _emitMODI ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 3363 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitMOVF ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2808 of file emit_x86.bas.

private sub _emitMOVI ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2783 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitMOVL ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2763 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitMULF ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 3151 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitMULI ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 3108 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitMULL ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2999 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitNEGF ( byval_as_IRVREG_ptr  dvreg)

Definition at line 4870 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitNEGI ( byval_as_IRVREG_ptr  dvreg)

Definition at line 4853 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitNEGL ( byval_as_IRVREG_ptr  dvreg)

Definition at line 4831 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitNOP ( )

Definition at line 1601 of file emit_x86.bas.

private sub _emitNOTI ( byval_as_IRVREG_ptr  dvreg)

Definition at line 4899 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitNOTL ( byval_as_IRVREG_ptr  dvreg)

Definition at line 4880 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitORI ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4015 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitORL ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 3994 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitPOPF ( byval_as_IRVREG_ptr  dvreg,
byval_as_integer  unused 
)

Definition at line 5676 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitPOPI ( byval_as_IRVREG_ptr  dvreg,
byval_as_integer  unused 
)

Definition at line 5591 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitPOPL ( byval_as_IRVREG_ptr  dvreg,
byval_as_integer  unused 
)

Definition at line 5571 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitPOW ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4191 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitPUBLIC ( byval_as_FBSYMBOL_ptr  label)

Definition at line 1572 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitPUSHF ( byval_as_IRVREG_ptr  svreg,
byval_as_integer  unused 
)

Definition at line 5419 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitPUSHI ( byval_as_IRVREG_ptr  svreg,
byval_as_integer  unused 
)

Definition at line 5360 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitPUSHL ( byval_as_IRVREG_ptr  svreg,
byval_as_integer  unused 
)

Definition at line 5342 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitPUSHUDT ( byval_as_IRVREG_ptr  svreg,
byval_as_integer  sdsize 
)

Definition at line 5454 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitRET ( byval_as_IRVREG_ptr  vreg)

Definition at line 1559 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSCOPEEND ( byval_as_FBSYMBOL_ptr  sym,
byval_as_integer  lnum,
byval_as_integer  pos_ 
)

Definition at line 6227 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSCOPEINI ( byval_as_FBSYMBOL_ptr  sym,
byval_as_integer  lnum,
byval_as_integer  pos_ 
)

Definition at line 6215 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSGNF ( byval_as_IRVREG_ptr  dvreg)

Definition at line 5069 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSGNI ( byval_as_IRVREG_ptr  dvreg)

Definition at line 5044 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSGNL ( byval_as_IRVREG_ptr  dvreg)

Definition at line 5010 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSHLI ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 3922 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSHLL ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 3911 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSHRI ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 3944 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSHRL ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 3933 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSIN ( byval_as_IRVREG_ptr  dvreg)

Definition at line 5109 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSQRT ( byval_as_IRVREG_ptr  dvreg)

Definition at line 5184 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSTACKALIGN ( byval_as_IRVREG_ptr  vreg,
byval_as_integer  unused 
)

Definition at line 5332 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSTKCLEAR ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg,
byval_as_integer  bytes,
byval_as_integer  baseofs 
)

Definition at line 6174 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSTORF2F ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2136 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSTORF2I ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 1854 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSTORF2L ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 1728 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSTORI2F ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2002 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSTORI2I ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 1750 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSTORI2L ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 1659 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSTORL2F ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 1940 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSTORL2I ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 1841 of file emit_x86.bas.

private sub _emitSTORL2L ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 1639 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSUBF ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2970 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSUBI ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2930 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitSUBL ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 2909 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitTAN ( byval_as_IRVREG_ptr  dvreg)

Definition at line 5162 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitXchgTOS ( byval_as_IRVREG_ptr  svreg)

Definition at line 5314 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitXORI ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4054 of file emit_x86.bas.

Here is the call graph for this function:

private sub _emitXORL ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4033 of file emit_x86.bas.

Here is the call graph for this function:

private sub _end ( void  )

Definition at line 6466 of file emit_x86.bas.

Here is the call graph for this function:

private function_as_integer _getFreePreservedReg ( byval_as_integer  dclass,
byval_as_integer  dtype 
)

Definition at line 6617 of file emit_x86.bas.

private function_as_integer _getOptionValue ( byval_as_IR_OPTIONVALUE  opt)

Definition at line 6481 of file emit_x86.bas.

Here is the call graph for this function:

private sub _getResultReg ( byval_as_integer  dtype,
byval_as_integer  dclass,
byref_as_integer  r1,
byref_as_integer  r2 
)

Definition at line 6594 of file emit_x86.bas.

private function_as_const_zstring_ptr _getSectionString ( byval_as_integer  section,
byval_as_integer  priority 
)

Definition at line 6881 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private function_as_const_zstring_ptr _getTypeString ( byval_as_integer  dtype)

Definition at line 6850 of file emit_x86.bas.

Here is the caller graph for this function:

private function_as_integer _init ( )

Definition at line 6433 of file emit_x86.bas.

Here is the call graph for this function:

private function_as_integer _isKeyword ( byval_as_zstring_ptr  text)

Definition at line 6648 of file emit_x86.bas.

Here is the call graph for this function:

private function_as_integer _isRegPreserved ( byval_as_integer  dclass,
byval_as_integer  reg 
)

Definition at line 6573 of file emit_x86.bas.

private function_as_integer _open ( )

Definition at line 6499 of file emit_x86.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 6726 of file emit_x86.bas.

private sub _procAllocLocal ( byval_as_FBSYMBOL_ptr  proc,
byval_as_FBSYMBOL_ptr  sym 
)

Definition at line 6704 of file emit_x86.bas.

private sub _procAllocStaticVars ( byval_as_FBSYMBOL_ptr  s)

Definition at line 6684 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub _procBegin ( byval_as_FBSYMBOL_ptr  proc)

Definition at line 6662 of file emit_x86.bas.

Here is the call graph for this function:

private sub _procEnd ( byval_as_FBSYMBOL_ptr  proc)

Definition at line 6676 of file emit_x86.bas.

Here is the call graph for this function:

private sub _procFooter ( byval_as_FBSYMBOL_ptr  proc,
byval_as_integer  bytestopop,
byval_as_FBSYMBOL_ptr  initlabel,
byval_as_FBSYMBOL_ptr  exitlabel 
)

Definition at line 6763 of file emit_x86.bas.

Here is the call graph for this function:

private function_as_const_zstring_ptr _procGetFrameRegName ( )

Definition at line 6562 of file emit_x86.bas.

private sub _procHeader ( byval_as_FBSYMBOL_ptr  proc,
byval_as_FBSYMBOL_ptr  initlabel 
)

Definition at line 6748 of file emit_x86.bas.

Here is the call graph for this function:

private sub _scopeBegin ( byval_as_FBSYMBOL_ptr  s)

Definition at line 6811 of file emit_x86.bas.

Here is the call graph for this function:

private sub _scopeEnd ( byval_as_FBSYMBOL_ptr  s)

Definition at line 6821 of file emit_x86.bas.

Here is the call graph for this function:

private sub _setSection ( byval_as_integer  section,
byval_as_integer  priority 
)

Definition at line 6831 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

function_as_string emitDumpRegName ( byval_as_integer  dtype,
byval_as_integer  reg 
)

Definition at line 170 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

sub emitFBCTINFBEGIN ( )

Definition at line 6311 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

sub emitFBCTINFEND ( )

Definition at line 6322 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

sub emitFBCTINFSTRING ( byval_as_zstring_ptr  s)

Definition at line 6315 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

function_as_integer emitGasX86_ctor ( )

Definition at line 6965 of file emit_x86.bas.

Here is the call graph for this function:

sub emitVARINI64 ( byval_as_integer  dtype,
byval_as_longint  value 
)

Definition at line 6272 of file emit_x86.bas.

Here is the call graph for this function:

sub emitVARINIBEGIN ( byval_as_FBSYMBOL_ptr  sym)

Definition at line 6241 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

sub emitVARINIf ( byval_as_integer  dtype,
byval_as_double  value 
)

Definition at line 6267 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

sub emitVARINIi ( byval_as_integer  dtype,
byval_as_integer  value 
)

Definition at line 6263 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

sub emitVARINIOFS ( byval_as_zstring_ptr  sname,
byval_as_integer  ofs 
)

Definition at line 6276 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

sub emitVARINIPAD ( byval_as_integer  bytes)

Definition at line 6307 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

sub emitVARINISTR ( byval_as_const_zstring_ptr  s)

Definition at line 6288 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

sub emitVARINIWSTR ( byval_as_zstring_ptr  s)

Definition at line 6296 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hALIGN ( byval_as_integer  bytes)

Definition at line 734 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

sub hBRANCH ( byval_as_zstring_ptr  mnemonic,
byval_as_zstring_ptr  label 
)

Definition at line 598 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hClearLocals ( byval_as_integer  bytestoclear,
byval_as_integer  baseoffset 
)

Definition at line 1203 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hCMPF ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_zstring_ptr  mnemonic,
byval_as_zstring_ptr  mask,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4394 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hCMPI ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_zstring_ptr  mnemonic,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 4293 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hCMPL ( byval_as_IRVREG_ptr  rvreg,
byval_as_FBSYMBOL_ptr  label,
byval_as_zstring_ptr  mnemonic,
byval_as_zstring_ptr  rev_mnemonic,
byval_as_zstring_ptr  usg_mnemonic,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg,
byval_as_integer  isinverse = FALSE 
)

Definition at line 4227 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hCOMMENT ( byval_as_zstring_ptr  s)

Definition at line 676 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hCreateFrame ( byval_as_FBSYMBOL_ptr  proc)

Definition at line 1278 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hDeclVariable ( byval_as_FBSYMBOL_ptr  s)

Definition at line 1123 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hDestroyFrame ( byval_as_FBSYMBOL_ptr  proc,
byval_as_integer  bytestopop 
)

Definition at line 1345 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hEmitExport ( byval_as_FBSYMBOL_ptr  s)

Definition at line 1077 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hEmitFloatFunc ( byval_as_integer  func)

Definition at line 5240 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hEmitVarBss ( byval_as_FBSYMBOL_ptr  s)

Definition at line 855 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hEmitVarConst ( byval_as_FBSYMBOL_ptr  s)

Definition at line 948 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hEndKeywordsTB ( void  )

Definition at line 843 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hEndRegTB ( void  )

Definition at line 805 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

function_as_integer hFindFreeReg ( byval_as_integer  dclass)

Definition at line 296 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

function_as_integer hFindRegNotInVreg ( byval_as_IRVREG_ptr  vreg,
byval_as_integer  noSIDI = FALSE 
)

Definition at line 208 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hFpuChangeRC ( byref_as_string  regname,
byval_as_zstring_ptr  mode 
)

Definition at line 5227 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private function_as_zstring_ptr hGetIdxName ( byval_as_IRVREG_ptr  vreg)

Definition at line 361 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

function_as_zstring_ptr hGetRegName ( byval_as_integer  dtype,
byval_as_integer  reg 
)

Definition at line 344 of file emit_x86.bas.

Here is the caller graph for this function:

private sub hInitKeywordsTB ( void  )

Definition at line 815 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hInitRegTB ( void  )

Definition at line 746 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

function_as_integer hIsRegFree ( byval_as_integer  dclass,
byval_as_integer  reg 
)

Definition at line 177 of file emit_x86.bas.

Here is the caller graph for this function:

function_as_integer hIsRegInVreg ( byval_as_IRVREG_ptr  vreg,
byval_as_integer  reg 
)

Definition at line 308 of file emit_x86.bas.

Here is the caller graph for this function:

sub hLABEL ( byval_as_zstring_ptr  label)

Definition at line 720 of file emit_x86.bas.

Here is the call graph for this function:

private sub hMemClear ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  bytes_vreg 
)

Definition at line 6073 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hMemClearBlkIMM ( byval_as_IRVREG_ptr  dvreg,
byval_as_ulong  bytes 
)

Definition at line 6040 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hMemClearRepIMM ( byval_as_IRVREG_ptr  dvreg,
byval_as_ulong  bytes 
)

Definition at line 5964 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hMemMoveBlk ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg,
byval_as_integer  bytes 
)

Definition at line 5872 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hMemMoveRep ( byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg,
byval_as_integer  bytes 
)

Definition at line 5757 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

sub hMOV ( byval_as_zstring_ptr  dname,
byval_as_zstring_ptr  sname 
)

Definition at line 642 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

sub hPOP ( byval_as_zstring_ptr  rname)

Definition at line 628 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

sub hPrepOperand ( byval_as_IRVREG_ptr  vreg,
byref_as_string  operand,
byval_as_FB_DATATYPE  dtype = FB_DATATYPE_INVALID,
byval_as_integer  ofs = 0,
byval_as_integer  isaux = FALSE,
byval_as_integer  addprefix = TRUE 
)

Definition at line 452 of file emit_x86.bas.

Here is the call graph for this function:

sub hPrepOperand64 ( byval_as_IRVREG_ptr  vreg,
byref_as_string  operand1,
byref_as_string  operand2 
)

Definition at line 548 of file emit_x86.bas.

Here is the call graph for this function:

private sub hPUBLIC ( byval_as_zstring_ptr  label,
byval_as_integer  isexport 
)

Definition at line 691 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

sub hPUSH ( byval_as_zstring_ptr  rname)

Definition at line 614 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hSHIFTI ( byval_as_integer  op,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 3789 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hSHIFTL ( byval_as_integer  op,
byval_as_IRVREG_ptr  dvreg,
byval_as_IRVREG_ptr  svreg 
)

Definition at line 3519 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hULONG2DBL ( byval_as_IRVREG_ptr  svreg)

Definition at line 1613 of file emit_x86.bas.

Here is the call graph for this function:

private sub hWriteBss ( byval_as_FBSYMBOL_ptr  s)

Definition at line 918 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hWriteConst ( byval_as_FBSYMBOL_ptr  s)

Definition at line 996 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hWriteCtor ( byval_as_FB_GLOBCTORLIST_ITEM_ptr  proc_head,
byval_as_integer  is_ctor 
)

Definition at line 1053 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hWriteData ( byval_as_FBSYMBOL_ptr  s)

Definition at line 1023 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hWriteExport ( byval_as_FBSYMBOL_ptr  s)

Definition at line 1092 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hWriteHeader ( )

Definition at line 906 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub hXCHG ( byval_as_zstring_ptr  dname,
byval_as_zstring_ptr  sname 
)

Definition at line 659 of file emit_x86.bas.

Here is the call graph for this function:

Here is the caller graph for this function:

private sub outEx ( byval_as_zstring_ptr  s,
byval_as_integer  bytes = 0 
)

Definition at line 561 of file emit_x86.bas.

Here is the caller graph for this function:

sub outp ( byval_as_zstring_ptr  s)

Definition at line 577 of file emit_x86.bas.

Here is the call graph for this function:

Variable Documentation

any_ptr _opFnTB[toEMIT_MAXOPS+1] =>

Definition at line 6333 of file emit_x86.bas.

EMITDATATYPE dtypeTB[toFB_DATATYPES+1] =>

Definition at line 50 of file emit_x86.bas.

const VAR EMIT_MAXKEYWORDS = 600

Definition at line 79 of file emit_x86.bas.

const_zstring_ptr keywordTb[toEMIT_MAXKEYWORDS+1] =>

Definition at line 81 of file emit_x86.bas.

zstring rnameTB[toEMIT_MAXRTABLES+1][toEMIT_MAXRNAMES+1] =>

Definition at line 41 of file emit_x86.bas.