summaryrefslogtreecommitdiff
path: root/gcc/genrecog.c
Commit message (Collapse)AuthorAgeFilesLines
* * machmode.def (Pmode): Redefine if GENERATOR_FILE.rth2001-07-161-2/+35
| | | | | | | | | | * genrecog.c (maybe_both_true_mode): New. (maybe_both_true_2): Use it. (write_switch): Don't put Pmode in a switch. * rtl.c (mode arrays): Don't explicitly size them. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44029 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (validate_pattern): Warn for constraints inrth2001-07-061-26/+43
| | | | | | | | define_{expand,split,peephole2}. Remove strict_low_part before looking up match_dup. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43821 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (insn-recog.o): Add dependency on reload.h.aj2001-07-031-25/+26
| | | | | | | | * genrecog.c (write_header): Include reload.h for prototypes in insn-recog.c. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43722 138bc75d-0d04-0410-961f-82ee72b054a4
* * combine.c (simplify_comparison): Update op1 after constantrth2001-05-221-12/+10
| | | | | | | | | | extension. * recog.c (const_int_operand): Accept only constants valid for the given mode. * genrecog.c: Update comments wrt const_int_operand. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42427 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (enum decision_type): Add DT_elt_zero-wide_safe.kenner2001-05-181-14/+25
| | | | | | | | | (add_to_sequence): Make that decision type. (maybe_both_true_2, nodes_identical_1, factor_tests): Use it. (write_switch, write_cond, debug_decision_2): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42285 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (write_switch): Avoid outputting of switch forhubicka2001-05-091-0/+4
| | | | | | | types wider than int. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41922 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (insn-recog.o): Depend on toplev.h.rth2001-04-111-0/+1
| | | | | | | | | (insn-emit.o, doloop.o): Likewise. * genrecog.c, genemit.c: Include toplev.h in generated file. * doloop.c: Include toplev.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41261 138bc75d-0d04-0410-961f-82ee72b054a4
* libiberty:zack2001-03-061-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * aclocal.m4 (libiberty_AC_FUNC_C_ALLOCA): New. * configure.in: Replace all alloca logic with a simple use of the above new macro. * config.table: Kill *-*-beos* entry. * config/mh-beos: Delete. * configure, config.in: Regenerate. * Makefile.in (ALLOCA, HFILES): Kill. (REQUIRED_OFILES): Add alloca.o. (alloca.o): Depend on libiberty.h. (argv.o): Don't depend on alloca-conf.h. * alloca-conf.h: Delete. * alloca.c: Include libiberty.h. Kill all #ifdef emacs blocks. Provide the C alloca unconditionally. Use PTR where appropriate. Make i00afunc static. * argv.c: Don't include alloca-conf.h. include: * libiberty.h: Prototype C_alloca; define alloca to either __builtin_alloca or C_alloca as appropriate. gcc: * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE AC_FUNC_ALLOCA. * configure, config.in: Regenerate. * config.gcc: Remove references to deleted files. * genattr.c, genattrtab.c, genextract.c, genoutput.c, genrecog.c, rtl.c: Do not use alloca anywhere. * Makefile.in, build-make, system.h, config/x-interix, config/x-svr4, config/xm-interix.h, config/xm-openbsd.h, config/alpha/xm-alpha.h, config/alpha/xm-vms.h, config/arc/xm-arc.h, config/arm/xm-arm.h, config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h, config/h8300/xm-h8300.h, config/i370/x-oe, config/i370/xm-linux.h, config/i386/x-aix, config/i386/x-beos, config/i386/x-ncr3000, config/i386/x-sco5, config/i386/xm-dgux.h, config/i860/x-sysv4, config/i960/xm-i960.h, config/m32r/xm-m32r.h, config/m68k/x-crds, config/m68k/x-dpx2, config/m68k/x-hp320, config/m68k/x-hp320g, config/m69k/x-mot3300, config/m68k/x-mot3300-gas, config/m68k/xm-amix.h, config/m68k/xm-hp320.h, config/m68k/xm-m68kv.h, config/m68k/xm-mot3300.h, config/m88k/x-dolph, config/m88k/x-sysv4, config/m88k/x-tekXD88, config/m88k/xm-m88k.h, config/mcore/xm-mcore.h, config/mips/x-iris, config/mips/x-iris3, config/mips/x-sni-svr4, config/mips/x-sysv, config/mips/xm-iris6.h, config/mips/xm-mips.h, config/mips/xm-nws3250v4.h, config/pa/x-hpux, config/pa/x-pa-mpeix, config/pa/xm-pa.h, config/pa/xm-pa64hpux.h, config/pa/xm-pahpux.h, config/pa/xm-papro.h, config/romp/xm-romp.h, config/rs6000/x-aix31, config/rs6000/x-aix41, config/rs6000/x-beos, config/rs6000/x-lynx, config/rs6000/x-mach, config/rs6000/x-rs6000, config/rs6000/x-sysv4, config/rs6000/xm-rs6000.h, config/rs6000/xm-sysv4.h, config/sh/xm-sh.h, config/sparc/x-sysv4, config/sparc/xm-linux.h, config/sparc/xm-pbd.h, config/sparc/xm-sparc.h, config/vax/xm-vms.h: Eradicate all references to alloca and related stuff. * config/xm-alloca.h, config/clipper/x-clix, config/i386/xm-sysv4.h, config/i860/x-fx2800, config/i860/x-sysv3, config/m88k/x-sysv3, config/sparc/xm-sol2.h, config/we32k/x-we32k: Delete (contained only alloca related hacks). * config/i386/xm-beos.h, config/rs6000/xm-beos.h: Just define USE_C_ALLOCA. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40259 138bc75d-0d04-0410-961f-82ee72b054a4
* * print-rtl.c (print_rtx): Cast enums to int for comparison.danglin2001-03-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-decl.c (grokdeclarator): Cast enums to int for comparison and shifts. * c-format.c (C_STD_VER): Cast to int for comparisons. (check_function_format): Cast various enums to int for &. (maybe_read_dollar_number): Likewise. (check_format_info): Likewise. (check_format_info_main): Likewise. * expr.c (emit_move_insn_1): Cast enums to unsigned int for comparison. (safe_from_p): Likewise. * varasm.c (const_hash): Cast enum to int for %. * emit-rtl.c (init_emit_once): Use int loop variable to work around pcc enum problems with < and ++ operators. * regclass.c (init_reg_sets_1): Cast enums for comparison. (choose_hard_reg_mode): Use unsigned int to iterate over CCmodes. (regclass_init): Change enum class to int to iterate over reg_classes. * genrecog.c (merge_trees): Cast enums for comparison. * rtl.h (GET_CODE): Cast to enum rtx_code. (PUT_CODE): Cast to ENUM_BITFIELD(rtx_code). (GET_MODE): Cast to enum machine_mode. (PUT_MODE): Cast to ENUM_BITFIELD(machine_mode). (GET_NOTE_INSN_NAME): Cast enum to int. * tree.h (TREE_CODE): Cast to enum tree_code. (TREE_SET_CODE): Cast VALUE to ENUM_BITFIELD(tree_code). * timevar.c (timevar_print): Change loop variable id from enum to unsigned int. * fixinc/fixincl.c (VLEVEL): Cast enums in comparison to unsigned int. * config/i386/i386.md: Use PUT_MODE for mode assignment. * toplev.c (compile_file): Cast enum DFI to int. (decode_d_option): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40193 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (DT_veclen_ge): New.rth2001-01-141-2/+25
| | | | | | | | | | (add_to_sequence) [MATCH_PARALLEL]: Generate one. (maybe_both_true_2): Simplify DT_veclen vs DT_veclen_ge. (nodes_identical_1): Handle DT_veclen_ge. (write_cond, debug_decision_2): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39016 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (nodes_identical): Expand commentary.rth2001-01-131-3/+15
| | | | | | | (write_switch): Watch out for identical nodes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38989 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (add_to_sequence): Remove special case forhubicka2000-12-151-8/+2
| | | | | | | | | const_int_operand. (maybe_both_true): Return 1 when falling out of sequence when trying to find common possition in the pattern. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38284 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (find_operand): Handle 'V' format code.rth2000-12-101-10/+79
| | | | | | | | | (find_matching_operand): New. (validate_pattern): Accept '=' for an in-out operand if there is another operand with a matching constraint. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38175 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (validate_pattern) [STRICT_LOW_PART]: Fix thinko.rth2000-12-101-1/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38174 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (validate_pattern): Verify that ZERO_EXTRACT andrth2000-12-091-19/+42
| | | | | | | STRICT_LOW_PART as SET_DEST have in-out constraints. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38164 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (write_switch): Return the first condition that needs aaoliva2000-10-171-2/+12
| | | | | | | label. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36903 138bc75d-0d04-0410-961f-82ee72b054a4
* * i386.md (add?i_3, add?i_5): New.hubicka2000-09-111-0/+3
| | | | | | | | | | | | | | | | | | | (add?i_4): Rename from add?i_3; Fix compare pattern. (sub?i_3, xor?i_3, ior?i_3): New. * genrecog.c (write_tree): Output code to clear insn_extract cache. * genattrtab.c (write_attr_case): Gen call to extract_insn_cache instead of extract_insn and extract_constrain_insn_cache instead of extract_insn and constrain_operands. * recog.c (extract_insn_cached, extract_constrain_insn_cached): New functions. (extract_insn): Clear which_alternative. (constrain_operands): Set which_alternative to -1 when failed. * recog.h (extract_constrain_insn_cached, extract_insn_cached): Declare. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36342 138bc75d-0d04-0410-961f-82ee72b054a4
* * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,gkm2000-08-241-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and extendtab within their proper array boundaries. * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds for the entire array. * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE. * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise. * config/avr/avr.c (order_regs_for_local_alloc): Likewise. * config/fr30/fr30.c (fr30_print_operand): Likewise. * config/i386/dgux.c (output_options): Likewise. * config/i386/dgux.h (ASM_FILE_START): Likewise. * config/m88k/m88k.c (output_options): Likewise. * config/m88k/m88k.h (ASM_FILE_START): Likewise. * config/mcore/mcore.c (mcore_output_inline_const_forced, layout_mcore_frame, handle_structs_in_regs): Likewise. * config/mips/mips.c (output_block_move): Likewise. * config/rs6000/rs6000.c (rs6000_override_options, rs6000_file_start): Likewise. * config/sparc/sparc.c (sparc_add_gc_roots): Likewise. * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise. * fixinc/fixtests.c (TEST_TABLE_CT): Likewise. * builtins.c (expand_builtin_setjmp): Likewise. * expr.c (safe_from_p): Likewise. * flow.c (life_analysis): Likewise. * fold-const.c (size_int_type_wide): Likewise. * gcc.c (translate_options, init_spec, set_spec, main): Likewise. * genattrtab.c (make_length_attrs): Likewise. * genopinit.c (gen_insn): Likewise. * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise. * global.c (global_alloc): Likewise. * local-alloc.c (find_free_reg): Likewise. * mips-tdump.c (print_symbol): Likewise. * mips-tfile.c (parse_def, parse_input): Likewise. * reload1.c (NUM_ELIMINABLE_REGS): Likewise. * stmt.c (expand_nl_goto_receiver): Likewise. * stor-layout.c (set_sizetype): Likewise. * varasm.c (decode_reg_name): Likewise. * toplev.c (decode_f_option, decode_W_option, set_target_switch, print_switch_values): Likewise. (NUM_ELEM): Remove macro. (display_help, main): s/NUM_ELEM/ARRAY_SIZE/ git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35949 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (write_header): Split long string.ghazi2000-07-131-3/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35024 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (recog.o): Don't depend on resource.h.rth2000-05-271-23/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * recog.c: Don't include resource.h. (recog_last_allowed_insn): Remove. (recog_next_insn): Remove. (struct peep2_insn_data): New. (peep2_insn_data, peep2_current): New. (peep2_next_insn): New. (peep2_regno_dead_p, peep2_reg_dead_p): New. (peep2_find_free_register): New. (peephole2_optimize): Track life information by insn as we go. * recog.h: Update declarations. * resource.c (find_free_register, reg_dead_p): Remove. * resource.h: Remove their declarations. * toplev.c: Include hard-reg-set.h before recog.h. * genconfig.c (max_insns_per_peep2): New. (gen_peephole2): New. (main): Call it. * genemit.c (output_peephole2_scratches): Generate calls to peep2_find_free_register; adjust surrounding code. (main): Have insn-emit.c include hard-reg-set.h before recog.h. * genrecog.c (change_state): Don't track last_insn. (write_action): Write into *_pmatch_len before accepting. (write_tree): Adjust peephole2_insns and subroutines to match. * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34208 138bc75d-0d04-0410-961f-82ee72b054a4
* * genopinit.c: Use $ for escape sequences in optab patterns.zack2000-05-181-36/+0
| | | | | | | | | | | | | | Remove backslashes from optab patterns. Change $A, $B, $C to expand to (int) whatever instead of just whatever; remove explicit (int) from all optab patterns. * gensupport.c (xmalloc, xrealloc, xstrdup): Provide. * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c, genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c: Remove private copies of xmalloc, xrealloc, and git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34000 138bc75d-0d04-0410-961f-82ee72b054a4
* top level:zack2000-05-091-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings. (tree.o): Depend on output.h. * c-decl.c (pending_invalid_xref_file, current_function_prototype_file): Constify. (pushdecl): Constify a local char *. (define_label): Constify filename parameter. * c-lex.c (init_parse): Constify parameter and return value. * c-typeck.c (c_expand_asm_operands): Constify filename parameter. * c-tree.h: Update prototypes. * c-parse.in: Constify filename member of %union, and if_stmt_file. * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y, objc/objc-parse.c: Regenerate. * dwarfout.c (dwarfout_init): Constify main_input_filename parameter. * dwarfout.h: Update prototypes. * expr.c (expand_expr): Constify a local char *. * flags.h: Constify main_input_filename. * function.c (expand_function_end): Constify filename parameter. * genrecog.c (make_insn_sequence): Use a character array for c_test_pos. (main): Remove unused variables. * input.h: Constify input_filename, main_input_filename, and file_stack.name. Update prototypes. * output.h: Declare first_global_object_name and weak_global_object_name here, as const char *. * stmt.c (expand_asm_operands): Constify filename parameter. * toplev.c (compile_file, push_srcloc, debug_start_source_file): Constify filename parameter. (input_filename, main_input_filename): Constify. * toplev.h: Update prototypes. * tree.c: Include output.h. Don't declare first_global_object_name or weak_global_object_name. Clean up string bashing in get_file_function_name_long. * tree.h (struct tree_decl): Constify filename member. (input_filename): Constify. Update prototypes. * varasm.c (first_global_object_name, weak_global_object_name): Constify. (assemble_start_function, assemble_variable): Clean up string bashing. * gcc.c: Constify all spec-related strings initialized, transitively, from string constants. Constify all strings and string variables related to multilibs. (set_spec, read_specs): Cast argument to free to PTR. (used_arg): Do not modify multilib_matches. Use strncmp plus length comparison to compare multilib switches. * genmultilib: Constify everything declared in multilib.h. ch: * ch-tree.h: Update prototypes. Remove prototypes for functions declared elsewhere. * decl.c (define_label): Constify filename parameter. * grant.c (globalize_decl, set_default_grant_file): Constify local char * variables. Don't declare first_global_object_name or asm_out_file. * lang.c (chill_real_input_filename): Constify. * lex.c (init_parse): Constify parameter and return value. * parse.c: Don't declare input_filename. (ch_expand_asm_operands): Constify filename parameter. (parse_multi_dimension_case_action): Constify local char *. * satisfy.c (safe_satisfy_decl): Constify local char *. cp: * cp-tree.h: Constify tree_srcloc.filename, tinst_level.file, and pending_inline.filename. Update prototypes. * decl.c (define_label): Constify filename parameter. * decl2.c (warn_if_unknown_interface): Constify local char *. * input.c Constify input_source.filename. Don't declare input_filename or lineno. Constify filename parameter to feed_input. * lex.c (init_parse): Constify parameter and return value. (cp_pragma_interface, cp_pragma_implementation): Constify filename argument. (reinit_parse_for_method, reinit_parse_for_block, reinit_parse_for_expr, feed_defarg, handle_cp_pragma): Constify local char *. * pt.c: Don't declare lineno or input_filename. (print_template_context, tsubst_friend_function, tsubst_decl, tsubst, instantiate_decl): Constify local char *. * semantics.c (expand_body): Constify local char *. * tree.c (build_srcloc): Constify filename parameter. * typeck.c (c_expand_asm_operands): Constify filename parameter. f: * com.c (ffecom_subscript_check_): Constify array_name parameter. Clean up string bashing. (ffecom_arrayref_, ffecom_char_args_x_): Constify array_name parameter. (ffecom_do_entry_, ffecom_gen_sfuncdef_, ffecom_start_progunit_, ffecom_sym_transform_, ffecom_sym_transform_assign_): Constify local char *. (init_parse): Constify parameter and return value. * lex.c: Include dwarfout.h instead of prototyping dwarfout_* functions here. (ffelex_file_pop_, ffelex_file_push_): Constify filename parameter. (ffelex_hash_, ffelex_include_): Constify local char *. * std.c (ffestd_exec_end): Constify local char *. * where.c (ffewhere_file_new): Constify filename parameter. * where.h: Update prototypes. java: * check_init.c (check_init): Constify local char *. * class.c (push_class): Constify local char *. * java_tree.h: Update prototypes. * jcf-io.c (open_class): Constify filename parameter and return value. (find_class): Remove redundant string copy. Cast return from open_class. * jcf-parse.c (read_class, parse_class_file, yyparse): Constify local char *. * jcf-write.c (generate_bytecode_insns, generate_classfile): Constify local char *. * jcf.h (JCF): Constify filename and classname. (JCF_FINISH): Cast args to FREE to char * when appropriate. * lang.c (init_parse): Constify parameter and return value. * lex.c (java_get_line_col): Constify filename parameter. * parse.h: Constify parser_ctxt.filename. Update prototypes. * parse.y (java_parser_context_suspend, issue_warning_error_from_context, safe_layout_class): Constify local char *. * parse.c: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33804 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (gensupport.o): Compile for the host.rth2000-05-061-34/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | (host-prefix gensuuprt.o): Remove. (genflags.o): Depend on gensupport.h and OBSTACK_H. (genattrtab.o): Likewise. (gencodes.o): Depend on gensupport.h. (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise. (genpeep.o, genattr.o, genoutput.o): Likewise. * gensupport.c (obstack, rtl_obstack): New. (init_md_reader): Initialize rtl_obstack. * gensupport.h (rtl_obstack): Declare. (message_with_line): Declare. * genattr.c: Remove all traces of obstack manipulation. * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise. * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise. * genattrtab.c (obstack, rtl_obstack): Remove. (main): Don't init rtl_obstack. * genflags.c: Likewise. * genrecog.c (message_with_line): Move ... * gensupport.c: ... here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33742 138bc75d-0d04-0410-961f-82ee72b054a4
* * gensupport.c: New file.cpopetz2000-05-031-16/+5
| | | | | | | | | | | | | | | | | | | | | | * gensupport.h: New file. * Makefile.in (HOST_RTL): Depend on gensupport. (gensupport.o) New rule. * genattr.c: Use gensupport for reading .md files. * genattrtab.c: Ditto. * gencodes.c: Ditto. * genconfig.c: Ditto. * genemit.c: Ditto. * genextract.c: Ditto. * genflags.c: Ditto. * genopinit.c: Ditto. * genoutput.c: Ditto. * genpeep.c: Ditto. * genrecog.c: Ditto. * rtl.def (define_insn_and_split): New DEF_RTL_EXPR. * md.texi (Insn Splitting): Document define_insn_and_split. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33633 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (pred): Update comparison_operator for the unorderedrth2000-04-091-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | operators. * config/i386/i386.c (no_comparison_operator): Disallow unordered operators. (fcmov_comparison_operator): Allow UNORDERED/ORDERED. (uno_comparison_operator): New. (put_condition_code): Handle UNORDERED/ORDERED. (unsigned_comparison): Likewise. (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare. (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise. (ix86_expand_fp_compare): Use them. Take scratch as argument, update all callers. Handle all 8 unordered operators. (ix86_expand_setcc): Lose the unordered argument, update all callers. (ix86_expand_branch): Likewise. Don't fully expand fp branches. * config/i386/i386.h (PREDICATE_CODES): Update. * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare. (ix86_expand_branch, ix86_expand_setcc): Update. * config/i386/i386.md (sunordered, sordered): New. (suneq, sunge, sungt, sunle, sunlt, sltgt): New. (bunordered, bordered): New. (buneq, bunge, bungt, bunle, bunlt, bltgt): New. (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New. (*fp_jcc_5, *fp_jcc_6, and splitters): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33046 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (*): Rename _last_insn to last_insn.rth2000-04-071-8/+13
| | | | | | | | (make_insn_sequence): Set the position of the peephole2 C test to be at the last insn. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32990 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix copyrights.law2000-02-261-1/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32178 138bc75d-0d04-0410-961f-82ee72b054a4
* * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.kenner2000-02-191-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cppinit.c (new_pending_define): Add cast to avoid warning. * expmed.c (extract_bit_field): Likewise. * flow.c (enum reorder_skip_type): New type. (skip_insns_between_blcok): New it. Rework to avoid warning about possibly undefined variable. * function.c (assign_parms): Make thisparm_boundary unsigned. * genrecog.c (write_switch): Cast XWINT result to int. * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING. * mips-tfile.c (init_file): Make two versions of FDR intializer: one for MIPS and one for Alpha. (get_tag, copy_object): Add casts to avoid warnings. * optabs.c (init_one_libfunc): Cast NAME to (char *). * reload.c (find_reloads): Make TYPE enum reload_type. * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L". * unroll.c (unroll_loop): Initialize UNROLL_NUMBER. * varasm.c (compare_constant_1): Add cast to avoid warning. * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC to (char *). (alpha_expand_unaligned_load, alpha_expand_unaligned_store): Cast switch operand of size to int. (alpha_expand_epilogue): Always initialize fp_offset and sa_reg. * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort in unhandled case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32060 138bc75d-0d04-0410-961f-82ee72b054a4
* * genattr.c: PROTO -> PARAMS.ghazi2000-01-171-45/+45
| | | | | | | | | | | | | | | | | | * genattrtab.c: Likewise. * gencheck.c: Likewise. * gencodes.c: Likewise. * genconfig.c: Likewise. * genemit.c: Likewise. * genextract.c: Likewise. * genflags.c: Likewise. * gengenrtl.c: Likewise. * genopinit.c: Likewise. * genoutput.c: Likewise. * genpeep.c: Likewise. * genrecog.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31457 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/ns32k/ns32k.md: Revert Jan 9 change.hp2000-01-131-2/+7
| | | | | | | | * genrecog.c (maybe_both_true_2): Do not compare a predicate-test to a mode-test, if the predicate is address_operand. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31384 138bc75d-0d04-0410-961f-82ee72b054a4
* * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses aroundghazi2000-01-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | assignment used as truth value. * function.c (assign_temp): Mark parameter `dont_promote' with ATTRIBUTE_UNUSED. Wrap variable `unsignedp' with macro PROMOTE_FOR_CALL_ONLY. * genrecog.c (write_subroutine): Mark variable `operands' with ATTRIBUTE_UNUSED. * optabs.c (prepare_cmp_insn): Mark parameter `align' with ATTRIBUTE_UNUSED. * sdbout.c (sdbout_init): Likewise for parameter `asm_file'. (sdbout_begin_block, sdbout_end_block): Likewise for `file'. * toplev.c (note_deferral_of_defined_inline_function): Likewise for `decl'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31293 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (change_state) Corrected typo.rth1999-12-301-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31141 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.c (check_format_info): Don't call a variadic functionghazi1999-11-251-35/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | with a non-literal format string. * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise. * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else, pedantic_lvalue_warning, error_init, pedwarn_init, warning_init): Likewise. * cccp.c (check_macro_name, do_xifdef, vwarning_with_line): Likewise. * collect2.c (collect_wait): Likewise. * dbxout.c (dbxout_type): Likewise. * gcc.c (do_spec_1): Likewise. * genemit.c (gen_insn, gen_expand): Likewise. * genrecog.c (write_switch, write_subroutine): Likewise. * mips-tfile.c (catch_signal, botch): Likewise. * print-rtl.c (print_rtx): Likewise. * toplev.c (default_print_error_function, report_error_function, _fatal_insn): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30666 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (write_switch): Check for duplicate CODE cases.rth1999-10-301-2/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30276 138bc75d-0d04-0410-961f-82ee72b054a4
* * final.c (peephole): Delete prototype.ghazi1999-10-241-0/+6
| | | | | | | | | | | | | * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes. (pre_insert_copies): Remove unused variable `bb'. * genrecog.c (debug_decision_0, debug_decision_list, main): Add prototypes. * output.h (peephole): Add prototype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30144 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (message_with_line): Prototype.rth1999-10-151-30/+49
| | | | | | | | | | | | | (validate_pattern): Pass along the set for the dest, not a flag. Fix non-lvalue message. Don't warn for VOIDmode SET_DEST of CALL. Check for PC/CC0 as sources. (nodes_identical): Check for children position match before allowing the combination. * rtl.c (read_rtx): Track line number across \\\n. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30010 138bc75d-0d04-0410-961f-82ee72b054a4
* * recog.c (pmode_register_operand): New.rth1999-10-151-6/+10
| | | | | | | | | | | | | * recog.h: Declare it. * genrecog.c (pred_codes): Likewise. (special_mode_pred_table): Likewise. (validate_pattern): Don't warn no mode for address_operand. * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression if the operand is not insn-like. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29995 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (validate_pattern): Condense the destinationrth1999-10-141-4/+2
| | | | | | | non-lvalue message. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29974 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (validate_pattern): Typo last change. Verifyrth1999-10-141-1/+14
| | | | | | | that output operands have output reloads. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29968 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (special_mode_pred_table): New.rth1999-10-141-57/+207
| | | | | | | | | | | | | (NUM_SPECIAL_MODE_PREDS): New. (find_operand): New. (validate_pattern): New argument `insn'. Warn for assignment to any predicate accepting non-lvalues. Conditionaly warn for match_operand without a mode. Try much harder to match source and destination modes on a set. * tm.texi (SPECIAL_MODE_PREDICATES): Document. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29967 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (maybe_both_true_2): Don't compare modes ofrth1999-10-141-9/+20
| | | | | | | | | | two DT_pred tests. (process_tree): Elide peephole2_insns. Invoke simplify_tests after find_afterward. (debug_decision_1): Dump next and afterward codes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29958 138bc75d-0d04-0410-961f-82ee72b054a4
* * rtl.c (dump_and_abort): Remove.rth1999-10-141-40/+184
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (fatal_with_file_and_line): New. (fatal_expected_char): New. (read_rtx_lineno, read_rtx_filename): New. (read_skip_spaces): Track line number. (read_name): Use fatal_with_file_and_line. (read_rtx): Use fatal_expected_char. Track line number. * rtl.h (read_rtx_filename, read_rtx_lineno): Declare. * print-rtl.c (print_rtx): Don't special case LABEL_REF argument if it isn't a CODE_LABEL. * genattr.c (main): Set read_rtx_filename. * genattrtab.c (main): Likewise. * gencodes.c (main): Likewise. * genconfig.c (main): Likewise. * genemit.c (main): Likewise. * genextract.c (main): Likewise. * genflags.c (main): Likewise. * genopinit.c (main): Likewise. * genoutput.c (main): Likewise. * genpeep.c (main): Likewise. * genrecog.c (decision_test.u.insn): Add `lineno'. (pattern_lineno, error_count): New variables. (message_with_line): New. (add_to_sequence): Break out checking code to ... (validate_pattern): ... here. Detect SET_DEST matching CONST_INT. (merge_insn): Use message_with_line. (make_insn_sequence): Use validate_pattern. Record insn lineno. (main): Set read_rtx_filename, pattern_lineno. Exit early on error. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29957 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (write_subroutine): Careful for null trees.rth1999-10-131-11/+14
| | | | | | | (process_tree): Don't elide empty functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29948 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (add_to_sequence): Thinko last change: deleterth1999-10-101-1/+1
| | | | | | | shadowing allow_const_int variable. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29891 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (add_to_sequence): Move allow_const_int test outsiderth1999-10-101-10/+16
| | | | | | | known predicate block; default allow_const_int true. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29885 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.ghazi1999-10-081-0/+2
| | | | | | | | | | | | | | | | * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of arguments to `current_file_function_operand'. * genrecog.c: Include hard-reg-set.h and resource.h in the generated output file. * real.c: Include tm_p.h. cp: * method.c: Include tm_p.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29869 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (add_to_sequence): Disable mode check forrth1999-10-071-0/+6
| | | | | | | wildcard matches. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29857 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (add_to_sequence): Verify operand to label_ref isrth1999-10-061-2/+9
| | | | | | | VOIDmode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29844 138bc75d-0d04-0410-961f-82ee72b054a4
* Rewrite to use independant test structures.rth1999-10-051-1514/+1878
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29822 138bc75d-0d04-0410-961f-82ee72b054a4
* Typo last change.rth1999-09-221-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29576 138bc75d-0d04-0410-961f-82ee72b054a4