GNU PROLOG with UTF8 support
Macros | Functions | Variables
sparc64_any.c File Reference
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
Include dependency graph for sparc64_any.c:

Macros

#define STRING_PREFIX   ".LC"
 
#define UN
 
#define OK_FOR_SIMM13(x)   ((unsigned) ((x) + 4096) < 8192)
 
#define MK_IMM22(x)   (((x) >> 10) & 0x3fffff)
 
#define MK_SIMM10_13(x, want10)   ((x) & ((want10) ? 0x3ff : 0x1fff))
 
#define MAX_ARGS_IN_REGS   6
 
#define BEFORE_ARG
 
#define STACK_BIAS   2047
 
#define STACK_OFFSET(offset)   (STACK_BIAS + 176 + ((offset) - MAX_ARGS_IN_REGS) * 8)
 
#define AFTER_ARG
 
#define MAX_FP_ARGS_IN_REGS   16
 
#define BEFORE_FP_ARG
 
#define AFTER_FP_ARG
 

Functions

void Delay_Printf (char *op, char *operands,...)
 
int Delay_Flush (void)
 
void Source_Line (int line_no, char *cmt)
 
void Asm_Start (void)
 
void Asm_Stop (void)
 
void Code_Start (char *label, int prolog, int global)
 
void Code_Stop (void)
 
void Label (char *label)
 
void Ensure_PIC_Helper (void)
 
void Reload_E_In_Register (void)
 
void Synthetize_Setx (long value, char *tmpreg, char *dstreg)
 
void Load_Long_Into_Reg (PlLong x, char *reg)
 
void Load_Mem_Into_Reg (char *mem_base_reg, int displ, int adr_of, char *reg)
 
void Store_Reg_Into_Mem (char *reg, char *mem_base_reg, int displ)
 
void Pl_Jump (char *label)
 
void Prep_CP (void)
 
void Here_CP (void)
 
void Pl_Call (char *label)
 
void Pl_Fail (void)
 
void Pl_Ret (void)
 
void Jump (char *label)
 
void Move_From_Reg_X (int index)
 
void Move_From_Reg_Y (int index)
 
void Move_To_Reg_X (int index)
 
void Move_To_Reg_Y (int index)
 
void Call_C_Start (char *fct_name, int fc, int nb_args, int nb_args_in_words, char **p_inline)
 
int Call_C_Arg_Int (int offset, PlLong int_val)
 
int Call_C_Arg_Double (int offset, double dbl_val)
 
void Load_Mem_Base_Into_Reg (char *label, int displ, char *reg)
 
int Call_C_Arg_String (int offset, int str_no)
 
int Call_C_Arg_Mem_L (int offset, int adr_of, char *name, int index)
 
int Call_C_Arg_Reg_X (int offset, int adr_of, int index)
 
int Call_C_Arg_Reg_Y (int offset, int adr_of, int index)
 
int Call_C_Arg_Foreign_L (int offset, int adr_of, int index)
 
int Call_C_Arg_Foreign_D (int offset, int adr_of, int index)
 
void Call_C_Invoke (char *fct_name, int fc, int nb_args, int nb_args_in_words)
 
void Call_C_Stop (char *fct_name, int nb_args, char **p_inline)
 
void Jump_Ret (void)
 
void Fail_Ret (void)
 
void Move_Ret_To_Mem_L (char *name, int index)
 
void Move_Ret_To_Reg_X (int index)
 
void Move_Ret_To_Reg_Y (int index)
 
void Move_Ret_To_Foreign_L (int index)
 
void Move_Ret_To_Foreign_D (int index)
 
void Cmp_Ret_And_Int (PlLong int_val)
 
void Jump_If_Equal (char *label)
 
void Jump_If_Greater (char *label)
 
void C_Ret (void)
 
void Dico_String_Start (int nb_consts)
 
void Dico_String (int str_no, char *asciiz)
 
void Dico_String_Stop (int nb_consts)
 
void Dico_Long_Start (int nb_longs)
 
void Dico_Long (char *name, int global, VType vtype, PlLong value)
 
void Dico_Long_Stop (int nb_longs)
 
void Data_Start (char *initializer_fct)
 
void Data_Stop (char *initializer_fct)
 

Variables

char asm_reg_bank [20]
 
char asm_reg_e [20]
 
char asm_reg_b [20]
 
char asm_reg_cp [20]
 
int w_label = 0
 
char cur_fct_label [1024]
 
int pic_helper_ready = 0
 
char buff [1024]
 
int delay_active = 0
 
char * delay_op = NULL
 
char delay_operands [1024]
 
int can_produce_pic_code = 1
 
char * comment_prefix = "!"
 
char * local_symb_prefix = "L"
 
int strings_need_null = 1
 
int call_c_reverse_args = 0
 
char * inline_asm_data [] = { NULL }
 

Macro Definition Documentation

#define AFTER_ARG
Value:
if (offset >= MAX_ARGS_IN_REGS) \
Delay_Printf("stx","%s,[%%sp+%d]", r, \
STACK_OFFSET(offset)); \
}
#define STACK_OFFSET(offset)
Definition: sparc64_any.c:677
void Delay_Printf(char *op, char *operands,...)
Definition: sparc64_any.c:1239
#define MAX_ARGS_IN_REGS
Definition: sparc64_any.c:665
#define AFTER_FP_ARG
Value:
if (offset < MAX_FP_ARGS_IN_REGS) \
{ \
Delay_Printf("stx","%s,[%%fp+2023]", r); \
Delay_Printf("ldd","[%%fp+2023],%%f%d", offset * 2); \
} \
Delay_Printf("stx","%s,[%%sp+%d]", r, STACK_OFFSET(offset)); \
}
#define STACK_OFFSET(offset)
Definition: sparc64_any.c:677
#define MAX_FP_ARGS_IN_REGS
Definition: sparc64_any.c:686
void Delay_Printf(char *op, char *operands,...)
Definition: sparc64_any.c:1239
#define BEFORE_ARG
Value:
{ \
char r[4]; \
\
if (offset < MAX_ARGS_IN_REGS) \
sprintf(r, "%%o%d", offset); \
else \
strcpy(r, "%l4");
#define MAX_ARGS_IN_REGS
Definition: sparc64_any.c:665
#define BEFORE_FP_ARG
Value:
{ \
char *r = "%g1"; /* load in a temp */
#define MAX_ARGS_IN_REGS   6
#define MAX_FP_ARGS_IN_REGS   16
#define MK_IMM22 (   x)    (((x) >> 10) & 0x3fffff)
#define MK_SIMM10_13 (   x,
  want10 
)    ((x) & ((want10) ? 0x3ff : 0x1fff))
#define OK_FOR_SIMM13 (   x)    ((unsigned) ((x) + 4096) < 8192)
#define STACK_BIAS   2047
#define STACK_OFFSET (   offset)    (STACK_BIAS + 176 + ((offset) - MAX_ARGS_IN_REGS) * 8)
#define STRING_PREFIX   ".LC"
#define UN

Function Documentation

void Asm_Start ( void  )

Here is the call graph for this function:

void Asm_Stop ( void  )

Here is the call graph for this function:

void C_Ret ( void  )

Here is the call graph for this function:

int Call_C_Arg_Double ( int  offset,
double  dbl_val 
)

Here is the call graph for this function:

int Call_C_Arg_Foreign_D ( int  offset,
int  adr_of,
int  index 
)

Here is the call graph for this function:

int Call_C_Arg_Foreign_L ( int  offset,
int  adr_of,
int  index 
)

Here is the call graph for this function:

int Call_C_Arg_Int ( int  offset,
PlLong  int_val 
)

Here is the call graph for this function:

int Call_C_Arg_Mem_L ( int  offset,
int  adr_of,
char *  name,
int  index 
)

Here is the call graph for this function:

int Call_C_Arg_Reg_X ( int  offset,
int  adr_of,
int  index 
)

Here is the call graph for this function:

int Call_C_Arg_Reg_Y ( int  offset,
int  adr_of,
int  index 
)

Here is the call graph for this function:

int Call_C_Arg_String ( int  offset,
int  str_no 
)

Here is the call graph for this function:

void Call_C_Invoke ( char *  fct_name,
int  fc,
int  nb_args,
int  nb_args_in_words 
)

Here is the call graph for this function:

void Call_C_Start ( char *  fct_name,
int  fc,
int  nb_args,
int  nb_args_in_words,
char **  p_inline 
)
void Call_C_Stop ( char *  fct_name,
int  nb_args,
char **  p_inline 
)
void Cmp_Ret_And_Int ( PlLong  int_val)

Here is the call graph for this function:

void Code_Start ( char *  label,
int  prolog,
int  global 
)

Here is the call graph for this function:

void Code_Stop ( void  )

Here is the call graph for this function:

void Data_Start ( char *  initializer_fct)

Here is the call graph for this function:

void Data_Stop ( char *  initializer_fct)
int Delay_Flush ( void  )

Here is the call graph for this function:

Here is the caller graph for this function:

void Delay_Printf ( char *  op,
char *  operands,
  ... 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void Dico_Long ( char *  name,
int  global,
VType  vtype,
PlLong  value 
)

Here is the call graph for this function:

void Dico_Long_Start ( int  nb_longs)

Here is the call graph for this function:

void Dico_Long_Stop ( int  nb_longs)
void Dico_String ( int  str_no,
char *  asciiz 
)

Here is the call graph for this function:

void Dico_String_Start ( int  nb_consts)

Here is the call graph for this function:

void Dico_String_Stop ( int  nb_consts)
void Ensure_PIC_Helper ( void  )

Here is the call graph for this function:

Here is the caller graph for this function:

void Fail_Ret ( void  )

Here is the call graph for this function:

void Here_CP ( void  )

Here is the call graph for this function:

void Jump ( char *  label)

Here is the call graph for this function:

void Jump_If_Equal ( char *  label)

Here is the call graph for this function:

void Jump_If_Greater ( char *  label)

Here is the call graph for this function:

void Jump_Ret ( void  )

Here is the call graph for this function:

void Label ( char *  label)

Here is the call graph for this function:

Here is the caller graph for this function:

void Load_Long_Into_Reg ( PlLong  x,
char *  reg 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void Load_Mem_Base_Into_Reg ( char *  label,
int  displ,
char *  reg 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void Load_Mem_Into_Reg ( char *  mem_base_reg,
int  displ,
int  adr_of,
char *  reg 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void Move_From_Reg_X ( int  index)

Here is the call graph for this function:

void Move_From_Reg_Y ( int  index)

Here is the call graph for this function:

void Move_Ret_To_Foreign_D ( int  index)

Here is the call graph for this function:

void Move_Ret_To_Foreign_L ( int  index)

Here is the call graph for this function:

void Move_Ret_To_Mem_L ( char *  name,
int  index 
)

Here is the call graph for this function:

void Move_Ret_To_Reg_X ( int  index)

Here is the call graph for this function:

void Move_Ret_To_Reg_Y ( int  index)

Here is the call graph for this function:

void Move_To_Reg_X ( int  index)

Here is the call graph for this function:

void Move_To_Reg_Y ( int  index)

Here is the call graph for this function:

void Pl_Call ( char *  label)

Here is the call graph for this function:

void Pl_Fail ( void  )

Here is the call graph for this function:

Here is the caller graph for this function:

void Pl_Jump ( char *  label)

Here is the call graph for this function:

void Pl_Ret ( void  )

Here is the call graph for this function:

void Prep_CP ( void  )

Here is the call graph for this function:

void Reload_E_In_Register ( void  )

Here is the call graph for this function:

void Source_Line ( int  line_no,
char *  cmt 
)

Here is the caller graph for this function:

void Store_Reg_Into_Mem ( char *  reg,
char *  mem_base_reg,
int  displ 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void Synthetize_Setx ( long  value,
char *  tmpreg,
char *  dstreg 
)

Here is the call graph for this function:

Here is the caller graph for this function:

Variable Documentation

char asm_reg_b[20]
char asm_reg_bank[20]
char asm_reg_cp[20]
char asm_reg_e[20]
char buff[1024]
int call_c_reverse_args = 0
int can_produce_pic_code = 1
char* comment_prefix = "!"
char cur_fct_label[1024]
int delay_active = 0
char* delay_op = NULL
char delay_operands[1024]
char* inline_asm_data[] = { NULL }
char* local_symb_prefix = "L"
int pic_helper_ready = 0
int strings_need_null = 1
int w_label = 0