*** config/i386/i386.h.orig Thu Jun 4 20:03:48 1998 --- config/i386/i386.h Sun Jun 7 16:31:36 1998 *************** *** 34,39 **** --- 34,54 ---- PUT_OP_SIZE, USE_STAR, ADDR_BEG, ADDR_END, PRINT_IREG, PRINT_SCALE, PRINT_B_I_S, and many that start with ASM_ or end in ASM_OP. */ + #ifndef __GCC_I386_H__ + #define __GCC_I386_H__ + + #include "gansidecl.h" + + #if !defined(NULL_RTX) && !defined(rtx) + typedef struct rtx_def * _i386_rtx; + #define rtx _i386_rtx + #endif + + #if !defined(NULL_TREE) && !defined(tree) + typedef union tree_node * _i386_tree; + #define tree _i386_tree + #endif + /* Names to predefine in the preprocessor for this target machine. */ #define I386 1 *************** *** 2327,2333 **** stored from the compare operation. Note that we can't use "rtx" here since it hasn't been defined! */ ! extern struct rtx_def *(*i386_compare_gen)(), *(*i386_compare_gen_eq)(); /* Tell final.c how to eliminate redundant test instructions. */ --- 2342,2348 ---- stored from the compare operation. Note that we can't use "rtx" here since it hasn't been defined! */ ! extern rtx (*i386_compare_gen) PROTO(()), (*i386_compare_gen_eq) PROTO(()); /* Tell final.c how to eliminate redundant test instructions. */ *************** *** 2594,2603 **** If CODE is 'h', pretend the reg is the `high' byte register. If CODE is 'y', print "st(0)" instead of "st", if the reg is stack op. */ - extern char *hi_reg_name[]; - extern char *qi_reg_name[]; - extern char *qi_high_reg_name[]; - #define PRINT_REG(X, CODE, FILE) \ do { if (REGNO (X) == ARG_POINTER_REGNUM) \ abort (); \ --- 2609,2614 ---- *************** *** 2705,2778 **** /* Functions in i386.c */ ! extern void override_options (); ! extern void order_regs_for_local_alloc (); ! extern char *output_strlen_unroll (); ! extern struct rtx_def *i386_sext16_if_const (); ! extern int i386_aligned_p (); ! extern int i386_cc_probably_useless_p (); ! extern int i386_valid_decl_attribute_p (); ! extern int i386_valid_type_attribute_p (); ! extern int i386_return_pops_args (); ! extern int i386_comp_type_attributes (); ! extern void init_cumulative_args (); ! extern void function_arg_advance (); ! extern struct rtx_def *function_arg (); ! extern int function_arg_partial_nregs (); ! extern char *output_strlen_unroll (); ! extern void output_op_from_reg (); ! extern void output_to_reg (); ! extern char *singlemove_string (); ! extern char *output_move_double (); ! extern char *output_move_memory (); ! extern char *output_move_pushmem (); ! extern int standard_80387_constant_p (); ! extern char *output_move_const_single (); ! extern int symbolic_operand (); ! extern int call_insn_operand (); ! extern int expander_call_insn_operand (); ! extern int symbolic_reference_mentioned_p (); ! extern int ix86_expand_binary_operator (); ! extern int ix86_binary_operator_ok (); ! extern int ix86_expand_unary_operator (); ! extern int ix86_unary_operator_ok (); ! extern void emit_pic_move (); ! extern void function_prologue (); ! extern int simple_386_epilogue (); ! extern void function_epilogue (); ! extern int legitimate_address_p (); ! extern struct rtx_def *legitimize_pic_address (); ! extern struct rtx_def *legitimize_address (); ! extern void print_operand (); ! extern void print_operand_address (); ! extern void notice_update_cc (); ! extern void split_di (); ! extern int binary_387_op (); ! extern int shift_op (); ! extern int VOIDmode_compare_op (); ! extern char *output_387_binary_op (); ! extern char *output_fix_trunc (); ! extern char *output_float_compare (); ! extern char *output_fp_cc0_set (); ! extern void save_386_machine_status (); ! extern void restore_386_machine_status (); ! extern void clear_386_stack_locals (); ! extern struct rtx_def *assign_386_stack_local (); ! extern int is_mul (); ! extern int is_div (); ! extern int last_to_set_cc (); ! extern int doesnt_set_condition_code (); ! extern int sets_condition_code (); ! extern int str_immediate_operand (); ! extern int is_fp_insn (); ! extern int is_fp_dest (); ! extern int is_fp_store (); ! extern int agi_dependent (); ! extern int reg_mentioned_in_mem (); #ifdef NOTYET ! extern struct rtx_def *copy_all_rtx (); ! extern void rewrite_address (); #endif /* Variables in i386.c */ --- 2716,2804 ---- /* Functions in i386.c */ ! extern void override_options PROTO ((void)); ! extern void order_regs_for_local_alloc PROTO ((void)); ! extern char *output_strlen_unroll PROTO ((rtx [])); ! extern void optimization_options PROTO ((int, int)); ! extern rtx i386_sext16_if_const PROTO ((rtx)); ! extern int i386_aligned_p PROTO ((rtx)); ! extern int i386_cc_probably_useless_p PROTO ((rtx)); ! extern int i386_valid_decl_attribute_p PROTO ((tree, tree, tree, tree)); ! extern int i386_valid_type_attribute_p PROTO ((tree, tree, tree, tree)); ! extern int i386_return_pops_args PROTO ((tree, tree, int)); ! extern int i386_comp_type_attributes PROTO ((tree, tree)); ! extern void init_cumulative_args PROTO ((/* CUMULATIVE_ARGS *, ! enum machine_mode, tree, rtx */)); ! extern void function_arg_advance PROTO ((/* CUMULATIVE_ARGS *, ! enum machine_mode, tree, int */)); ! extern rtx function_arg PROTO ((/* CUMULATIVE_ARGS *, ! enum machine_mode, tree, int */)); ! extern int function_arg_partial_nregs PROTO ((/* CUMULATIVE_ARGS *, ! enum machine_mode, tree, int */)); ! extern void output_op_from_reg PROTO ((rtx, char *)); ! extern void output_to_reg PROTO ((rtx, int, rtx)); ! extern char *singlemove_string PROTO ((rtx *)); ! extern char *output_move_double PROTO ((rtx *)); ! extern char *output_move_memory PROTO ((rtx [], rtx, int, int, int)); ! extern char *output_move_pushmem PROTO ((rtx [], rtx, int, int, int)); ! extern int standard_80387_constant_p PROTO ((rtx)); ! extern char *output_move_const_single PROTO ((rtx *)); ! extern int symbolic_operand PROTO ((/* rtx, enum machine_mode */)); ! extern int call_insn_operand PROTO ((/* rtx, enum machine_mode */)); ! extern int expander_call_insn_operand PROTO ((/* rtx, enum machine_mode */)); ! extern int arithmetic_comparison_operator PROTO ((/* rtx, enum machine_mode */)); ! extern int ix86_logical_operator PROTO ((/* rtx, enum machine_mode */)); ! extern int symbolic_reference_mentioned_p PROTO ((rtx)); ! extern int ix86_expand_binary_operator PROTO ((/* enum rtx_code, ! enum machine_mode, rtx [] */)); ! extern int ix86_binary_operator_ok PROTO ((/* enum rtx_code, enum machine_mode, ! rtx [] */)); ! extern int ix86_expand_unary_operator PROTO ((/* enum rtx_code, enum machine_mode, ! rtx [] */)); ! extern int ix86_unary_operator_ok PROTO ((/* enum rtx_code, enum machine_mode, ! rtx [] */)); ! extern void asm_output_function_prefix PROTO ((/* FILE *, char * */)); ! extern void function_prologue PROTO ((/* FILE *, int */)); ! extern void ix86_expand_prologue PROTO ((void)); ! extern void load_pic_register PROTO ((int)); ! extern int ix86_can_use_return_insn_p PROTO ((void)); ! extern void function_epilogue PROTO ((/* FILE *, int */)); ! extern void ix86_expand_epilogue PROTO ((void)); ! extern int legitimate_address_p PROTO ((/* enum machine_mode, rtx, int */)); ! extern rtx legitimize_pic_address PROTO ((rtx,rtx)); ! extern void emit_pic_move PROTO ((/* rtx *, enum machine_mode */)); ! extern rtx legitimize_address PROTO ((/* rtx, rtx, enum machine_mode */)); ! extern void print_operand PROTO ((/* FILE *, rtx, int */)); ! extern void print_operand_address PROTO ((/* FILE *, rtx */)); ! extern void notice_update_cc PROTO ((rtx)); ! extern void split_di PROTO ((rtx [], int, rtx [], rtx [])); ! extern int binary_387_op PROTO ((/* rtx, enum machine_mode */)); ! extern int shift_op PROTO ((/* rtx, enum machine_mode */)); ! extern int VOIDmode_compare_op PROTO ((/* rtx, enum machine_mode */)); ! extern char *output_387_binary_op PROTO ((rtx, rtx *)); ! extern char *output_fix_trunc PROTO((rtx, rtx *)); ! extern char *output_float_compare PROTO ((rtx, rtx *)); ! extern char *output_fp_cc0_set PROTO ((rtx)); ! extern void save_386_machine_status PROTO ((/* struct function * */)); ! extern void restore_386_machine_status PROTO ((/* struct function * */)); ! extern void clear_386_stack_locals PROTO ((void)); ! extern rtx assign_386_stack_local PROTO ((/* enum machine_mode, int */)); ! extern int is_mul PROTO ((/* rtx, enum machine_mode */)); ! extern int is_div PROTO ((/* rtx, enum machine_mode */)); ! extern int last_to_set_cc PROTO ((rtx, rtx)); ! extern int doesnt_set_condition_code PROTO ((rtx)); ! extern int sets_condition_code PROTO ((rtx)); ! extern int str_immediate_operand PROTO ((/* rtx, enum machine_mode */)); ! extern int is_fp_insn PROTO ((rtx)); ! extern int is_fp_dest PROTO ((rtx)); ! extern int is_fp_store PROTO ((rtx)); ! extern int agi_dependent PROTO ((rtx, rtx)); ! extern int reg_mentioned_in_mem PROTO ((rtx, rtx)); ! extern int ix86_can_use_return_insn_p PROTO ((void)); #ifdef NOTYET ! extern rtx copy_all_rtx PROTO ((rtx)); ! extern void rewrite_address PROTO ((rtx)); #endif /* Variables in i386.c */ *************** *** 2793,2811 **** extern char *qi_reg_name[]; /* names for 8 bit regs (low) */ extern char *qi_high_reg_name[]; /* names for 8 bit regs (high) */ extern enum reg_class regclass_map[]; /* smalled class containing REGNO */ ! extern struct rtx_def *i386_compare_op0; /* operand 0 for comparisons */ ! extern struct rtx_def *i386_compare_op1; /* operand 1 for comparisons */ /* External variables used */ extern int optimize; /* optimization level */ extern int obey_regdecls; /* TRUE if stupid register allocation */ /* External functions used */ ! extern struct rtx_def *force_operand (); ! /* ! Local variables: ! version-control: t ! End: ! */ --- 2819,2842 ---- extern char *qi_reg_name[]; /* names for 8 bit regs (low) */ extern char *qi_high_reg_name[]; /* names for 8 bit regs (high) */ extern enum reg_class regclass_map[]; /* smalled class containing REGNO */ ! extern rtx i386_compare_op0; /* operand 0 for comparisons */ ! extern rtx i386_compare_op1; /* operand 1 for comparisons */ /* External variables used */ extern int optimize; /* optimization level */ extern int obey_regdecls; /* TRUE if stupid register allocation */ /* External functions used */ ! extern rtx force_operand PROTO((rtx,rtx)); ! ! #ifdef rtx ! #undef rtx ! #endif ! ! #ifdef tree ! #undef tree ! #endif ! ! #endif /* __GCC_I386_H__ */