#ifndef G_A64 #define g_fhighlow(gh,gl,gf) \ (gh)=g_instruction_2 (GFHIGH,(gf),NULL); \ (gl)=g_instruction_2 (GFLOW,(gf),(gh)); \ (gh)->instruction_parameters[1].p=(gl) #endif extern void initialize_coding (VOID); extern void show_code (VOID); extern void show_imports_and_exports (VOID); extern INSTRUCTION_GRAPH g_load (int offset,int stack); #ifdef G_A64 extern INSTRUCTION_GRAPH g_fp_arg (INSTRUCTION_GRAPH graph_1); #else extern INSTRUCTION_GRAPH g_fjoin (INSTRUCTION_GRAPH graph_1,INSTRUCTION_GRAPH graph_2); #endif extern INSTRUCTION_GRAPH g_fregister (int float_reg); extern INSTRUCTION_GRAPH g_fstore (int offset,int reg_1,INSTRUCTION_GRAPH graph_1, #ifdef G_A64 INSTRUCTION_GRAPH graph_2); #else INSTRUCTION_GRAPH graph_2,INSTRUCTION_GRAPH graph_3); #endif extern INSTRUCTION_GRAPH g_fstore_r (int reg_1,INSTRUCTION_GRAPH graph_1); extern INSTRUCTION_GRAPH g_store (int offset,int reg_1,INSTRUCTION_GRAPH graph_1,INSTRUCTION_GRAPH graph_2); extern INSTRUCTION_GRAPH g_store_r (int reg_1,INSTRUCTION_GRAPH graph_1); extern INSTRUCTION_GRAPH g_register (int reg); extern INSTRUCTION_GRAPH g_fload (int offset,int stack); extern INSTRUCTION_GRAPH g_instruction_1 (int instruction_code,INSTRUCTION_GRAPH graph_1); extern INSTRUCTION_GRAPH g_instruction_2 (int instruction_code,INSTRUCTION_GRAPH graph_1,INSTRUCTION_GRAPH graph_2); extern INSTRUCTION_GRAPH g_new_node (int,int,int); extern INSTRUCTION_GRAPH g_create_unboxed_int_array (int n_elements); #ifdef G_A64 # define g_fromf(g1) g_instruction_1(GFROMF,(g1)) # define g_tof(g1) g_instruction_1(GTOF,(g1)) #endif extern LABEL *enter_label (char *label_name,int label_flags); extern LABEL *new_local_label (int label_flags); extern int next_label_id; extern struct basic_block *first_block; extern struct label_node *labels; extern struct local_label *local_labels; extern struct dependency_list *first_dependency; extern LABEL *collect_0_label,*collect_1_label,*collect_2_label, #if !(defined (I486) && !defined (G_AI64)) *collect_3_label, #endif #ifdef I486 *collect_0l_label,*collect_1l_label,*collect_2l_label,*end_heap_label, #endif #ifdef G_POWER *collect_00_label,*collect_01_label,*collect_02_label,*collect_03_label, *eval_01_label,*eval_11_label,*eval_02_label,*eval_12_label,*eval_22_label, #endif *EMPTY_label; #if defined (G_POWER) || defined (I486) || defined (ARM) extern LABEL *profile_l_label,*profile_l2_label,*profile_n_label,*profile_n2_label, *profile_s_label,*profile_s2_label,*profile_r_label,*profile_t_label; # ifdef G_POWER extern LABEL *profile_ti_label; # endif #endif extern INSTRUCTION_GRAPH load_indexed_list; extern int no_memory_profiling; #define PROFILE_NOT 0 #define PROFILE_NORMAL 1 #define PROFILE_DOUBLE 2 #define PROFILE_TAIL 3 #define PROFILE_CURRIED 4 #define PROFILE_CURRIED_DOUBLE 5 extern LABEL *_STRING__label; extern LABEL*copy_graph_label,*CHANNEL_label,*create_channel_label,*currentP_label,*newP_label, *randomP_label,*suspend_label; extern struct block_label *last_block_label; extern LABEL *profile_table_label; extern void write_profile_table (void);