osprey/be/cg/iface_scn.cxx File Reference

#include <bstring.h>
#include "elf_stuff.h"
#include "libelf/libelf.h"
#include <elfaccess.h>
#include <stdlib.h>
#include <cmplrs/elf_interfaces.h>
#include "defs.h"
#include "config.h"
#include "config_debug.h"
#include "symtab.h"
#include "erglob.h"
#include "erlib.h"
#include "ercg.h"
#include "flags.h"
#include "glob.h"
#include "tracing.h"
#include "tn.h"
#include "calls.h"
#include "targ_sim.h"
#include "ttype.h"
#include "em_elf.h"
#include "cgemit.h"
#include "iface_scn.h"

Include dependency graph for iface_scn.cxx:

Go to the source code of this file.

Data Types

type  parm_descriptor
type  parm_profile
type  interface_scn

Defines

#define USE_STANDARD_TYPES   1
#define INTERFACE_SCN_eid(is)   ((is).eid)
#define INTERFACE_SCN_parm(is)   ((is).parm)
#define INTERFACE_SCN_symbol(is)   ((is).symbol)
#define INTERFACE_SCN_next(is)   ((is).next)
#define pINTERFACE_SCN_eid(pis)   ((pis)->eid)
#define pINTERFACE_SCN_parm(pis)   ((pis)->parm)
#define pINTERFACE_SCN_symbol(pis)   ((pis)->symbol)
#define pINTERFACE_SCN_next(pis)   ((pis)->next)
#define pPARM_PROFILE_var_size(ppp)   ((ppp)->var_size)
#define pPARM_PROFILE_parm_count(ppp)   ((ppp)->parm_count)
#define pPARM_PROFILE_result(ppp)   ((ppp)->result)
#define pPARM_PROFILE_first(ppp)   ((ppp)->first)
#define pPARM_PROFILE_last(ppp)   ((ppp)->last)
#define pPARM_DESCRIPTOR_flags(ppd)   ((ppd)->flags)
#define pPARM_DESCRIPTOR_qual_count(ppd)   ((ppd)->qual_count)
#define pPARM_DESCRIPTOR_fundamental_type(ppd)   ((ppd)->fundamental_type)
#define pPARM_DESCRIPTOR_qualifiers(ppd)   ((ppd)->qualifiers)
#define pPARM_DESCRIPTOR_qualifier(ppd, n)   (((ppd)->qualifiers)[(n)])
#define pPARM_DESCRIPTOR_size(ppd)   ((ppd)->size)
#define pPARM_DESCRIPTOR_next(ppd)   ((ppd)->next)
#define IFACE_SCN_HASH_SIZE   (1013)

Typedefs

typedef struct parm_descriptor PARM_DESCRIPTOR
typedef struct parm_profile PARM_PROFILE
typedef struct interface_scn INTERFACE_SCN

Functions/Subroutines

static void Print_Elf_Interface_Descriptor (Elf_Ifd *eid)
static void Print_INTERFACE_SCN (INTERFACE_SCN *iface_scn)
static UINT32 Hash_INTERFACE_SCN (INTERFACE_SCN *iface_scn)
static void Initialize_Interface_Description (INTERFACE_SCN *desc, ST *symbol)
static BOOL Is_Duplicate_Interface_Description (INTERFACE_SCN *desc)
static BOOL Want_Interface_Section_For_Function (ST *function)
static void Add_Interface_Description (INTERFACE_SCN *desc)
static mUINT8 Classify_Type (PARM_DESCRIPTOR *pd, TY_IDX arg_type, BOOL ign_cv)
static void Add_Parameter_Descriptor (PARM_PROFILE *current_profile, TY_IDX arg_type, BOOL ign_cv)
static void Add_Result_Descriptor (PARM_PROFILE *current_profile, TY_IDX ret_type)
static void Set_Parameter_Info (INTERFACE_SCN *iface_scn, TY_IDX func_type, WN *rwn)
static void Update_Interface_Scn (INTERFACE_SCN *iface_scn)
static void Emit_Interface_Scn (INTERFACE_SCN *iface_scn)
static INT32 Cmp_Interface_Scn (const void *ptr1, const void *ptr2)
static void Sort_Interface_Scn (INTERFACE_SCN *sort_array[], INT32 count)
void Interface_Scn_Begin_File (void)
void Interface_Scn_End_File (void)
void Interface_Scn_Add_Def (ST *entry_sym, WN *rwn)
void Interface_Scn_Add_Call (ST *call_sym, WN *call_wn)

Variables

static BOOL Trace_Iface = FALSE
static INTERFACE_SCNIface_Scn_Hash_Table [IFACE_SCN_HASH_SIZE]
static INT32 Iface_Scn_Hash_Count


Define Documentation

#define IFACE_SCN_HASH_SIZE   (1013)

Definition at line 167 of file iface_scn.cxx.

Referenced by Hash_INTERFACE_SCN(), and Interface_Scn_End_File().

#define INTERFACE_SCN_eid ( is   )     ((is).eid)

Definition at line 140 of file iface_scn.cxx.

Referenced by Interface_Scn_Add_Call(), and Interface_Scn_Add_Def().

#define INTERFACE_SCN_next ( is   )     ((is).next)

Definition at line 143 of file iface_scn.cxx.

#define INTERFACE_SCN_parm ( is   )     ((is).parm)

Definition at line 141 of file iface_scn.cxx.

#define INTERFACE_SCN_symbol ( is   )     ((is).symbol)

Definition at line 142 of file iface_scn.cxx.

#define pINTERFACE_SCN_eid ( pis   )     ((pis)->eid)

#define pINTERFACE_SCN_next ( pis   )     ((pis)->next)

#define pINTERFACE_SCN_parm ( pis   )     ((pis)->parm)

Definition at line 145 of file iface_scn.cxx.

Referenced by Emit_Interface_Scn(), and Set_Parameter_Info().

#define pINTERFACE_SCN_symbol ( pis   )     ((pis)->symbol)

#define pPARM_DESCRIPTOR_flags ( ppd   )     ((ppd)->flags)

Definition at line 155 of file iface_scn.cxx.

Referenced by Classify_Type(), and Emit_Interface_Scn().

#define pPARM_DESCRIPTOR_fundamental_type ( ppd   )     ((ppd)->fundamental_type)

Definition at line 157 of file iface_scn.cxx.

Referenced by Classify_Type(), and Emit_Interface_Scn().

#define pPARM_DESCRIPTOR_next ( ppd   )     ((ppd)->next)

Definition at line 161 of file iface_scn.cxx.

Referenced by Add_Parameter_Descriptor(), and Emit_Interface_Scn().

#define pPARM_DESCRIPTOR_qual_count ( ppd   )     ((ppd)->qual_count)

Definition at line 156 of file iface_scn.cxx.

Referenced by Classify_Type(), and Emit_Interface_Scn().

#define pPARM_DESCRIPTOR_qualifier ( ppd,
n   )     (((ppd)->qualifiers)[(n)])

Definition at line 159 of file iface_scn.cxx.

Referenced by Emit_Interface_Scn().

#define pPARM_DESCRIPTOR_qualifiers ( ppd   )     ((ppd)->qualifiers)

Definition at line 158 of file iface_scn.cxx.

Referenced by Classify_Type().

#define pPARM_DESCRIPTOR_size ( ppd   )     ((ppd)->size)

Definition at line 160 of file iface_scn.cxx.

Referenced by Classify_Type(), and Emit_Interface_Scn().

#define pPARM_PROFILE_first ( ppp   )     ((ppp)->first)

Definition at line 152 of file iface_scn.cxx.

Referenced by Add_Parameter_Descriptor(), and Emit_Interface_Scn().

#define pPARM_PROFILE_last ( ppp   )     ((ppp)->last)

Definition at line 153 of file iface_scn.cxx.

Referenced by Add_Parameter_Descriptor().

#define pPARM_PROFILE_parm_count ( ppp   )     ((ppp)->parm_count)

#define pPARM_PROFILE_result ( ppp   )     ((ppp)->result)

Definition at line 151 of file iface_scn.cxx.

Referenced by Add_Result_Descriptor(), Emit_Interface_Scn(), and Set_Parameter_Info().

#define pPARM_PROFILE_var_size ( ppp   )     ((ppp)->var_size)

#define USE_STANDARD_TYPES   1

Definition at line 78 of file iface_scn.cxx.


Typedef Documentation


Function Documentation

static void Add_Interface_Description ( INTERFACE_SCN desc  )  [static]

static void Add_Parameter_Descriptor ( PARM_PROFILE current_profile,
TY_IDX  arg_type,
BOOL  ign_cv 
) [static]

static void Add_Result_Descriptor ( PARM_PROFILE current_profile,
TY_IDX  ret_type 
) [static]

static mUINT8 Classify_Type ( PARM_DESCRIPTOR pd,
TY_IDX  arg_type,
BOOL  ign_cv 
) [static]

static INT32 Cmp_Interface_Scn ( const void ptr1,
const void ptr2 
) [static]

Definition at line 1113 of file iface_scn.cxx.

References i1, i2, and pINTERFACE_SCN_eid.

Referenced by Sort_Interface_Scn().

static void Emit_Interface_Scn ( INTERFACE_SCN iface_scn  )  [static]

static UINT32 Hash_INTERFACE_SCN ( INTERFACE_SCN iface_scn  )  [static]

static void Initialize_Interface_Description ( INTERFACE_SCN desc,
ST symbol 
) [static]

void Interface_Scn_Add_Call ( ST call_sym,
WN call_wn 
)

void Interface_Scn_Add_Def ( ST entry_sym,
WN rwn 
)

void Interface_Scn_Begin_File ( void   ) 

Definition at line 1166 of file iface_scn.cxx.

References bzero(), fprintf(), Get_Trace(), Iface_Scn_Hash_Count, TFile, TP_EMIT, and Trace_Iface.

Referenced by EMT_Begin_File().

void Interface_Scn_End_File ( void   ) 

static BOOL Is_Duplicate_Interface_Description ( INTERFACE_SCN desc  )  [static]

Definition at line 298 of file iface_scn.cxx.

References bcmp(), FALSE, Hash_INTERFACE_SCN(), INT32, NULL, pINTERFACE_SCN_next, and TRUE.

Referenced by Interface_Scn_Add_Call().

static void Print_Elf_Interface_Descriptor ( Elf_Ifd *  eid  )  [static]

Definition at line 181 of file iface_scn.cxx.

References fprintf(), and TFile.

Referenced by Print_INTERFACE_SCN().

static void Print_INTERFACE_SCN ( INTERFACE_SCN iface_scn  )  [static]

static void Set_Parameter_Info ( INTERFACE_SCN iface_scn,
TY_IDX  func_type,
WN rwn 
) [static]

static void Sort_Interface_Scn ( INTERFACE_SCN sort_array[],
INT32  count 
) [static]

static void Update_Interface_Scn ( INTERFACE_SCN iface_scn  )  [static]

static BOOL Want_Interface_Section_For_Function ( ST function  )  [static]


Variable Documentation

INTERFACE_SCN* Iface_Scn_Hash_Table[IFACE_SCN_HASH_SIZE] [static]

Definition at line 168 of file iface_scn.cxx.

BOOL Trace_Iface = FALSE [static]


Generated on Wed Apr 8 14:28:04 2009 for Open64 by  doxygen 1.5.6