diff options
author | John van Groningen | 2003-07-11 13:47:24 +0000 |
---|---|---|
committer | John van Groningen | 2003-07-11 13:47:24 +0000 |
commit | 2255def3b1d52edce2b87c30ddff0a206abda7cd (patch) | |
tree | 406f668067c28094b4a64a59d6549554bcb54f51 /cglin.h | |
parent | fix bug in floating point subtract and divide (diff) |
add .c and .h files
Diffstat (limited to 'cglin.h')
-rw-r--r-- | cglin.h | 126 |
1 files changed, 126 insertions, 0 deletions
@@ -0,0 +1,126 @@ + +void show_instructions (struct instruction *instructions); +void initialize_linearization (VOID); +void evaluate_arguments_and_free_addresses (union instruction_parameter arguments[],int n_arguments); +void get_n_virtual_registers (int *n_virtual_a_regs_p,int *n_virtual_d_regs_p,int *n_virtual_f_regs_p); +void calculate_and_linearize_branch_false (LABEL *label,INSTRUCTION_GRAPH graph); +void calculate_and_linearize_branch_true (LABEL *label,INSTRUCTION_GRAPH graph); +void calculate_and_linearize_graph (INSTRUCTION_GRAPH graph); + +void free_all_aregisters (VOID); +void free_all_dregisters (VOID); +void free_all_fregisters (VOID); +void allocate_aregister (int aregister); +void allocate_dregister (int dregister); +void allocate_fregister (int fregister); +#ifdef M68000 +void instruction_pd (int instruction_code,int register_1); +#endif +void i_jmp_l (LABEL *label,int n_a_registers); +void i_jmp_id (int offset_1,int register_1,int n_a_registers); +#if ! (defined (sparc) || defined (G_POWER)) + void i_jsr_id (int offset,int register_1,int n_a_registers); + void i_jsr_l (LABEL *label,int n_a_registers); + void i_rts (void); +# ifdef I486 + void i_rts_i (int offset); + void i_rts_profile (void); + void i_jmp_r_profile (int a_reg); + void i_jmp_l_profile (LABEL *label,int offset); + void i_jmp_id_profile (int offset_1,int register_1,int n_a_registers); +# endif +#else + void i_jsr_id_id (int offset_1,int register_1,int offset_2); + void i_jsr_l_id (LABEL *label,int offset); + void i_rts (int offset_1,int offset_2); +# ifdef G_POWER + void i_rts_c (void); + void i_rts_r (int register1,int offset_1); + void i_rts_r_profile (int register1,int offset_1); + void i_jmp_l_profile (LABEL *label,int offset); + void i_jmp_id_profile (int offset_1,int register_1,int n_a_registers); + void i_rts_profile (int offset_1,int offset_2); + void i_jsr_id_idu (int offset_1,int register_1,int offset_2); + void i_jsr_l_idu (LABEL *label,int offset); +# endif +#endif +#if defined (sparc) + void i_call_l (LABEL *label); + void i_call_r (int register_1); +#elif defined (G_POWER) + void i_call_l (LABEL *label,int frame_size); + void i_call_r (int register_1,int frame_size); +#endif +void i_beq_l (LABEL *label); +#ifdef M68000 + extern LONG *i_bmi_i (VOID); + void i_bmi_l (LABEL *label); +#endif +#ifdef G_POWER + void i_and_i_r (LONG value,int register_1); + void i_bnep_l (LABEL *label); + void i_or_i_r (LONG value,int register_1); + void i_mtctr (int register_1); +#endif +#if defined (sparc) || defined (I486) || defined (G_POWER) + void i_btst_i_r (LONG i,int register_1); +#endif +void i_ext_r (int register_1); +void i_fmove_fr_fr (int register_1,int register_2); +void i_fmove_fr_id (int register_1,int offset,int register_2); +#ifdef M68000 + void i_fmove_fr_pd (int register_1,int register_2); + void i_fmove_fr_pi (int register_1,int register_2); +#endif +void i_fmove_id_fr (int offset,int register_2,int register_1); +#ifdef M68000 + void i_fmove_pd_fr (int register_1,int register_2); + void i_fmove_pi_fr (int register_1,int register_2); + void i_move_id_pd (int offset,int register_1,int register_2); +#endif +void i_move_id_id (int offset_1,int register_1,int offset_2,int register_2); +void i_move_id_r (int offset,int register_1,int register_2); +#ifdef G_POWER + void i_move_idu_r (int offset,int register_1,int register_2); + void i_move_id_idu (int offset1,int register_1,int offset2,int register_2); + void i_move_r_idu (int register_1,int offset,int register_2); + void i_movew_id_idu (int offset1,int register_1,int offset2,int register_2); + void i_movew_r_idu (int register_1,int offset,int register_2); +#endif +void i_move_i_r (LONG i,int register_1); +void i_move_l_r (LABEL *label,int register_1); +#ifdef M68000 +void i_move_pi_id (int register_1,int offset_2,int register_2); +void i_move_pi_r (int register_1,int register_2); +void i_move_pd_r (int register_1,int register_2); +#endif +#if defined (I486) + void i_move_r_l (int register_1,LABEL *label); +#endif +void i_move_r_id (int register_1,int offset,int register_2); +#ifdef M68000 +void i_move_r_pd (int register_1,int register_2); +void i_move_r_pi (int register_1,int register_2); +#endif +void i_move_r_r (int register_1,int register_2); +#ifdef M68000 +void i_movem_pd (int register_1,int n_arguments,int arguments[]); +void i_movem_pi (int register_1,int n_arguments,int arguments[]); +void i_movem_id_r (int offset,int register_1,int register_2); +void i_movew_id_pd (int offset_1,int register_1,int register_2); +void i_movew_pi_id (int register_1,int offset_2,int register_2); +void i_movew_pi_r (int register_1,int register_2); +void i_movew_r_pd (int register_1,int register_2); +#endif +void i_movew_id_r (int offset,int register_1,int register_2); +void i_lea_id_r (int offset,int register_1,int register_2); +void i_lea_l_i_r (LABEL *label,int offset,int register_1); +void i_add_i_r (LONG value,int register_1); +void i_add_r_r (int register_1,int register_2); +void i_schedule_i (int value); +void i_sub_i_r (LONG value,int register_1); +void i_tst_r (int register_1); +void i_word_i (int value); + +extern int local_data_offset; +extern int condition_to_set_instruction[]; |