QuakeForge  0.7.2.210-815cf
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
def.h File Reference
This graph shows which files directly or indirectly include this file:

Data Structures

struct  def_s
 Represent a memory location that holds a QuakeC/Ruamoko object. More...
 

Typedefs

typedef struct def_s def_t
 Represent a memory location that holds a QuakeC/Ruamoko object. More...
 
typedef enum storage_class_e storage_class_t
 Specify the storage class of a def. More...
 

Enumerations

enum  storage_class_e {
  sc_global, sc_system, sc_extern, sc_static,
  sc_param, sc_local
}
 Specify the storage class of a def. More...
 

Functions

def_talias_def (def_t *def, struct type_s *type, int offset)
 Create a def that aliases another def. More...
 
int def_offset (def_t *def)
 Convenience function for obtaining a def's actual offset. More...
 
int def_overlap (def_t *d1, def_t *d2)
 Determine if two defs overlap. More...
 
int def_size (def_t *def)
 Convenience function for obtaining a def's size. More...
 
void def_to_ddef (def_t *def, ddef_t *ddef, int aux)
 Initialize a vm def from a qfcc def. More...
 
int def_visit_all (def_t *def, int overlap, int(*visit)(def_t *, void *), void *data)
 Visit all defs that alias the given def, including itself. More...
 
void free_def (def_t *def)
 Free a def. More...
 
void initialize_def (struct symbol_s *sym, struct type_s *type, struct expr_s *init, struct defspace_s *space, storage_class_t storage)
 Initialize a def referenced by the given symbol. More...
 
def_tnew_def (const char *name, struct type_s *type, struct defspace_s *space, storage_class_t storage)
 Create a new def. More...
 
Temporary defs

Temporary defs are used for recycling memory for tempary variables.

They always have names in the form of .tmpN where N is a non-negative integer. The type of the temporary def can change throughout its life, but the size will never change.

Temporary defs are bound to the current function (current_func must be valid). They are always allocated from the funciont's local defspace.

def_ttemp_def (etype_t type, int size)
 Get a temporary def. More...
 
void free_temp_def (def_t *temp)
 Free a tempary def so it may be recycled. More...