summaryrefslogtreecommitdiff
path: root/gcc/config
Commit message (Collapse)AuthorAgeFilesLines
...
* ChangeLogvmakarov1998-06-101-3/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20414 138bc75d-0d04-0410-961f-82ee72b054a4
* * mips.c (gpr_mode): New variable.law1998-06-101-18/+27
| | | | | | | | | | (override_options): Initialize gpr_mode. (compute_frame_size): Use "gpr_mode" instead of "word_mode" to determine size and offset of general purpose registers save slots. (save_restore_insns, mips_expand_prologue): Similarly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20403 138bc75d-0d04-0410-961f-82ee72b054a4
* * h8300.c (get_shift_alg): Add special cases for shifts of 8 and 24.law1998-06-101-1/+37
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20396 138bc75d-0d04-0410-961f-82ee72b054a4
* * i386.c (notice_update_cc): Clear cc_status.value2 in thelaw1998-06-101-0/+1
| | | | | | | case of UNSPEC 5 (bsf). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20395 138bc75d-0d04-0410-961f-82ee72b054a4
* * i386.md (movsfcc, movdfcc, movxfcc): The floating pointlaw1998-06-091-0/+51
| | | | | | | | conditional move instructions don't support signed integer comparisons. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20391 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix interrupt return epilogue.nickc1998-06-092-1/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20385 138bc75d-0d04-0410-961f-82ee72b054a4
* * alpha/vms.h (EXTRA_SECTIONS): Add in_ctors and in_dtors.rth1998-06-091-1/+41
| | | | | | | | (EXTRA_SECTION_FUNCTIONS): Add ctors_section and dtors_section. (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20376 138bc75d-0d04-0410-961f-82ee72b054a4
* * mips/elf.h (ASM_DECLARE_OBJECT_NAME): Define.rth1998-06-092-0/+134
| | | | | | | | (ASM_FINISH_DECLARE_OBJECT): Define; * mips/elf64.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20369 138bc75d-0d04-0410-961f-82ee72b054a4
* * rs6000.md (mulsidi3): Add !TARGET_POWERPC64 constraint.dje1998-06-081-9/+1
| | | | | | | (mulsidi3_ppc64): Delete. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20357 138bc75d-0d04-0410-961f-82ee72b054a4
* Warning fixes:ghazi1998-06-083-32/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (varasm.o): Depend on dbxout.h. (cse.o): Depend on toplev.h and output.h. (gcse.o): Depend on output.h. * mips.c: Include system.h and toplev.h and remove redundant code. Include output.h after tree.h so all its prototypes get activated. * mips.md (table_jump): Remove unused variable `dest'. * sparc.h: Add prototype for `v8plus_regcmp_op'. * crtstuff.c (fini_dummy, init_dummy): Mark function definitions with __attribute__ ((__unused__)). (__frame_dummy): Provide prototype before use, wrap it with EH_FRAME_SECTION_ASM_OP. * cse.c: Move inclusion of <setjmp.h> above local headers. Include toplev.h and output.h. * dbxout.h: Add prototype for `dbxout_begin_function'. * final.c (final_scan_insn): Wrap variable `max_skip' in macro ASM_OUTPUT_MAX_SKIP_ALIGN. * gcse.c: Include system.h and output.h. (dump_cuid_table, dump_rd_table, dump_cprop_data, dump_pre_data): Make extern instead of static. (compute_can_copy): Only declare variables `reg' and `insn' when AVOID_CCMODE_COPIES is not defined. (record_set_info): Mark parameter `setter' with ATTRIBUTE_UNUSED. (hash_scan_clobber): Likewise for `x' and `insn'. (hash_scan_call): Likewise. (record_last_set_info): Likewise for `setter'. (mark_call): Likewise for `pat'. (pre_insert_insn): Wrap variable `note' in macro HAVE_cc0. * libgcc2.c (__bb_init_prg): Replace bzero with memset and fix the length parameter so that it multiplies the number of elements by the sizeof(element). * output.h: Add prototype for `weak_finish'. * recog.h: Likewise for `validate_replace_src'. * rtl.h: Likewise for `optimize_save_area_alloca', `fix_sched_param', `purge_addressof', `gcse_main', `regmove_optimize', `dbr_schedule', `branch_prob' and `end_branch_prob'. * toplev.h: Likewise for `set_float_handler' and `output_quoted_string'. * varasm.c: Include dbxout.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20351 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix mips64vr4100-elf build failure.wilson1998-06-081-6/+6
| | | | | | | | * mips.c (mips_secondary_reload_class): Use gp_reg_p instead of GP_REG_P. Use gr_regs instead of GR_REGS. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20350 138bc75d-0d04-0410-961f-82ee72b054a4
* * Revamped multiply support for MIPS chips.law1998-06-083-145/+224
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * mips.c (extend_operator): New function. (highpart_shift_operator): Likewise. * mips.h: Declare new functions. (PREDICATE_CODES): Add support for new predicates. * mips.md (mulsi3 expander): Simplify. (mulsi_mult3): Add another constraint alternative. Support 3 operand multiply instructions as found on various mips parts. (mulsi3_r4650): Delete pattern, now handled by mulsi_mult3. (mul_acc_si): New pattern and associated splitters. (mulsidi3 expander): Rework to use mulsidi3_64bit and mulsidi3_internal. (umulsidi3): New expander. (mulsidi3_internal): Accept either sign or zero extended operands and generate code as appropriate appropriately. (mulsidi3_64bit): Similarly. (smulsi3_highpart): Turn into an expander and generate code to match new patterns. (umulsi3_highpart): Likewise. (xmulsi3_highpart_internal): New pattern. (maddi patterns): Delete. Replace with: (mul_acc_di, mul-acc_64bit_di): New patterns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20337 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree.h (TREE_VEC_END): Cast unused value to void.jason1998-06-081-1/+1
| | | | | | | * i386.c (print_operand): Use %lx for long operand. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20323 138bc75d-0d04-0410-961f-82ee72b054a4
* * alpha.c (summarize_insn): Ignore rtl slot format 'i'.rth1998-06-081-0/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20318 138bc75d-0d04-0410-961f-82ee72b054a4
* Sun Jun 7 14:15:45 1998 John Carr <jfc@mit.edu>rth1998-06-071-0/+7
| | | | | | | | * sol2.h (INIT_SUBTARGET_OPTABS): Use Solaris libc float/long long conversion functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20277 138bc75d-0d04-0410-961f-82ee72b054a4
* * rs6000.md (restore_stack_block): Generate MEM and specify mode.dje1998-06-073-23/+26
| | | | | | | | | * rs6000.h (STACK_SAVEAREA_MODE): SAVE_FUNCTION is VOIDmode. * rs6000.c (rs6000_output_load_toc_table): Use fputs. (output_function_profiler): Use asm_fprintf and fputs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20268 138bc75d-0d04-0410-961f-82ee72b054a4
* * alpha.md (insxh-1): New insxl pattern for combine.rth1998-06-051-0/+33
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20239 138bc75d-0d04-0410-961f-82ee72b054a4
* * i386/i386.c (output_fp_conditional_move): New functionlaw1998-06-052-190/+135
| | | | | | | | | | | | | | | | to output floating point conditional move. (output_int_conditional_move): New function to output integer conditional move. * i386/i386.md (movsicci+5, movhicc+5, movdicc+5): Call output_int_conditional_move () to output int conditional move. (movsfcc+5, movdfcc+5, movxfcc+5): Call output_fp_conditional_move () to output floating point conditional move. * i386/i386.c (put_condition_code): In INT mode, check cc_prev_status.flags & CC_NO_OVERFLOW for GE and LT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20233 138bc75d-0d04-0410-961f-82ee72b054a4
* Thu Jun 4 14:35:27 1998 David Edelsohn <edelsohn@mhpcc.edu>dje1998-06-0412-520/+1474
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree.c (get_inner_array_type): New function. * tree.h (get_inner_array_type): Prototype. * expr.h (STACK_SAVEAREA_MODE): New macro. * expr.c (expand_builtin_setjmp): Initialize sa_mode using STACK_SAVEAREA_MODE. (expand_builtin_longjmp): Likewise. * explow.c (emit_stack_save): Likewise. (allocate_dynamic_stack_space): Use Pmode not insn_operand_mode. * rs6000/aix41.h (ASM_CPU_SPEC): Define relative to ASM_DEFAULT_SPEC. (CPP_CPU_SPEC): Define relative to CPU_DEFAULT_SPEC. * rs6000/aix43.h: New file. * rs6000/t-aix43: New file. * rs6000/x-aix41: New file. * rs6000/x-aix43: New file. * configure.in (rs6000-ibm-aix*): Use them. * rs6000/powerpc.h: Delete. * rs6000/sysv4.h: Move necessary powerpc.h definitions to here. * rs6000/netware.h: and here. * rs6000/win-nt.h: and here. * rs6000/rs6000.c (processor_target_table, 620): Do not affect MASK_POWERPC64. (rs6000_override_options): Ignore flag_pic for AIX. (rs6000_immed_double_const): Delete. (u_short_cint_operand): Don't assume 32-bit CONST_INT. (reg_or_u_short_operand): Don't assume 32-bit CONST_INT. (num_insns_constant): mask64_operand() is 2 insns. (logical_operand): Don't assume 32-bit CONST_INT. (non_logical_cint_operand): Don't assume 32-bit CONST_INT. (easy_fp_constant): Any CONST_DOUBLE_HIGH is okay for 64-bit. (mask_constant): HOST_WIDE_INT parameter. (non_and_cint_operand): Delete. (mask64_operand): New function. (and64_operand): New function. (function_arg_advance): DImode arguments do not need special alignment when 64-bit. (function_arg): Likewise. (setup_incoming_varargs): Reverse reg_size assignment. (print_operand): HOST_WIDE_INT second parameter. (print_operand, 'B'): New case. (print_operand, 'M'): Fix typo in lossage string. (print_operandm 'S'): New case. (rs6000_stack_info): Reverse reg_size assignment. Use total_raw_size to compute AIX push_p. Use reg_size to compute {cr,lr}_save_offset. (rs6000_output_load_toc_table): Reverse init_ptr assignment. Use TARGET_64BIT not TARGET_POWERPC64. Convert fprintf to fputs. Load GOT highpart, don't add it. Add lowpart with {cal|la}. (rs6000_allocate_stack_space): Use {cal|la}. (output_epilog): Use {cal|la} (output_function_profiler): Add call glue to mcount call. Load GOT highpart, don't add it. Add lowpart with {cal|la}. * rs6000/rs6000.h (TARGET_SWITCHES): Add powerpc64. (STACK_BOUNDARY): Depend on TARGET_32BIT. (ADJUST_FIELD_ALIGN): Calculate array alignment using innermost type. (CONST_OK_FOR_LETTER_P): Don't assume 32-bit CONST_INT. (EXTRA_CONSTRAINTS): Remove NT 'S' and 'T'. Replace 'S' with 64-bit mask operand. (RS6000_SAVE_TOC): Depend on TARGET_32BIT. (STACK_SAVEAREA_MODE): New macro. (LEGITIMATE_CONSTANT_P): DImode okay for 64bit. (LEGITIMIZE_RELOAD_ADDRESS): New macro. (RTX_COSTS, AND/IOR/XOR): Reflect current machine description. (ASM_FILE_START): Emit 64-bit ABI directive. (ASM_DECLARE_FUNCTION_NAME): Align CSECT on doubleword in 64-bit mode. (ASM_OUTPUT_SPECIAL_POOL_ENTRY): DImode okay for 64-bit. (PREDICATE_CODES): Add "and64_operand" and "mask64_operand". Delete "non_and_cint_operand". "input_operand" includes CONST_DOUBLE. * rs6000/rs6000.md (iorsi3, xorsi3): Use HOST_WIDE_INT for mask. Restore define_splits. (floatsidf2, floatunssidf2): Remove !TARGET_POWERPC64 final constraint. (floatsidf2_internal, floatunssidf2_internal2): Likewise. Do not specify base register operand mode. (floatsidf2_loadaddr): Do not specify base register operand mode. (floatsidf2_store1, floatsidf2_store2): Operand 1 must be base register; do not specify mode. Remove !TARGET_POWERPC64 final constraint. (floatsidf2_load): Do not specify base register operand mode. Remove !TARGET_POWERPC64 final constraint. (fix_truncdfsi2_internal, fix_truncdfsi2_{store,load}): Do not specify base register operand mode. (adddi3): Split large constants early. (absdi3): Shift by 63, not 31. (*mulsidi3_ppc64): New pattern. (rotldi3): Add masking combiner patterns. (anddi3): Add rldic{r,l} masking. Remove split of large constants because PPC insns zero-extend. (iordi3, xordi3): Split large constants early. (movsi matcher): Remove S and T constraints. (movsf const_double): create SImode constant from TARGET_DOUBLE. (movdf_hardfloat32): Add default abort() case. (movdf easy_fp_const): create DImode constant from TARGET_DOUBLE. (movdi): Remove 64-bit constant generator. Try to convert CONST_DOUBLE to CONST_INT. Handle TOC memory constants. (movdi_32): Add default abort() case. (movdi_64): Add numerous ways to split 64-bit constants. Make catch-all define_split more optimal and never FAIL. (movti_ppc64): Add default abort() case. (allocate_stack): Remove operand modes. Use Pmode. (restore_stack_block): Remove operand modes. Generate Pmode temporary. (save_stack_nonlocal, restore_stack_nonlocal): Generate Pmode temporary. Save area is double Pmode. (call_indirect_aix64, call_value_indirect_aix64): New patterns. (call, call_value): Do not specify address operand mode. Choose appropriate AIX ABI. (*call_local64, *ret_call_local64): New patterns. (*call_nonlocal_aix64, *ret_call_nonlocal_aix64): New patterns. (*ret_call_nonlocal_aix32): Use call_value_indirect for REG. (compare): Materialize DImode truthvalues. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20229 138bc75d-0d04-0410-961f-82ee72b054a4
* * configure.in: Set float_format to m68k for all m68k targets thatschwab1998-06-031-0/+97
| | | | | | | | do not override LONG_DOUBLE_TYPE_SIZE. * config/float-m68k.h: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20205 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (expand_builtin_setjmp): Handle BUILTIN_SETJMP_FRAME_VALUE.law1998-06-022-0/+96
| | | | | | | | | | | * i960.h (SETUP_FRAME_ADDRESSES, BUILTIN_SETJMP_FRAME_VALUE): Define. * i960.md (ret, flush_register_windows): Define. (nonlocal_goto): Likewise. Nested function nonlocal gotos don't work yet. * tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Document new macro. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20192 138bc75d-0d04-0410-961f-82ee72b054a4
* * alpha.md (divsi3, udivsi3, modsi3, umodsi3): Enable, and workrth1998-06-021-64/+69
| | | | | | | around an OSF/1 library bug wrt sign-extension of inputs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20183 138bc75d-0d04-0410-961f-82ee72b054a4
* * vax/netbsd.h (DWARF2_UNWIND_INFO): Must be undef, not defined 0.rth1998-06-021-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20182 138bc75d-0d04-0410-961f-82ee72b054a4
* clm1998-06-011-0/+4
| | | | | | | | * config/sh/sh.h (MAX_OFILE_ALIGNMENT): Define. * varasm.c (assemble_variable): Augment alignment warning. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20173 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix IEEE negative zero problemsmeissner1998-06-011-2/+8
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20169 138bc75d-0d04-0410-961f-82ee72b054a4
* * reload.c (find_reloads): Record the existing mode iflaw1998-05-311-151/+529
| | | | | | | | | | | | | operand_mode == VOIDmode before replacing a register with a constant. * i386.md (tstsi, tsthi, tstqi, tstsf, tstdf, tstxf): Set i386_compare_op1 to const0_rtx for the benefit of the conditional move patterns. (movsicc, movhicc, movsfcc, movdfcc, movxfcc, movdicc): Rewrite based on suggestions from Jim Wilson. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20151 138bc75d-0d04-0410-961f-82ee72b054a4
* Replace .urem and .rem routines. Fix a problemclm1998-05-271-156/+298
| | | | | | | | with signed operands and uses leaf procedure calling convention. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20090 138bc75d-0d04-0410-961f-82ee72b054a4
* * arm.c (arm_gen_constant): Rework to eliminate uninitialized variablerearnsha1998-05-271-51/+55
| | | | | | | | warnings. Don't generate scratch registers if only counting insns. (find_barrier): Eliminate unused variable SRC. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20087 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (gencheck.o): Use HOST_CC.law1998-05-261-0/+4
| | | | | | | | * i386/t-mingw32: New file. * configure.in (i386-*-mingw32*): Use. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20073 138bc75d-0d04-0410-961f-82ee72b054a4
* * arm.c: Include toplev.h.rearnsha1998-05-262-25/+34
| | | | | | | | | | | | | | | | | | | (arm_override_options): Add parentheses around use of tune_flags. (arm_split_constant): Remove unused variable. (arm_gen_constant, arm_gen_movstrqi, add_constant): Likewise. (output_func_prologue, arm_expand_prologue): Likewise. (arm_canonicalize_comparison): Make I unsigned; rework constants accordignly. Add missing paratheses around << operation. (arm_rtx_costs): Correctly parenthesise MULT costs. Add a DEFAULT clause. ({load,store}_multiple_sequence): Initialize BASE_REG. (select_dominance_cc_mode): Add DEFAULT clauses. (broken_move): Return zero if the destination is not a register. (arm_reorg): Move unused REGNO declaration into the dead code. * arm.h (CANONICALIZE_COMPARISON): Ensure OP1 is updated. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20058 138bc75d-0d04-0410-961f-82ee72b054a4
* * arm.c (bad_signed_byte_operand): New predicate function.rearnsha1998-05-263-7/+106
| | | | | | | | | | * arm.h (PREDICATE_CODES): Add it to the list. * arm.md (*extendqi[sh]i_insn): Split any addresses that ldrsb can't handle. (define_split): Two new splits for above insns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20057 138bc75d-0d04-0410-961f-82ee72b054a4
* * m68k.h: Declare more functions used in macros.law1998-05-232-8/+14
| | | | | | | | | | | | | | | | | | | (REG_CLASS_CONTENTS): Completely embrace initializer. * m68k.md (adddi3, subdi3): Add abort call to avoid warning about returning no value. * cse.c (find_best_addr): Declare p and found_better only if needed. * dbxout.c (dbxout_continue): Define only if DBX_CONTIN_LENGTH > 0. * dwarfout.c (string_length_attribute): #if 0 away. * function.c (expand_function_end): Define varible blktramp only if needed. * jump.c (find_insert_position): Define only if !HAVE_cc0. * loop.c (combine_givs_p): Define variable tem only if needed. * real.c: Comment out unused functions eabs, eround, e{24,53,64,113}toasc and eiinfin. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19998 138bc75d-0d04-0410-961f-82ee72b054a4
* * final.c (JUMP_TABLES_IN_TEXT_SECTION): Provide a default value.law1998-05-2216-16/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | (shorten_branches, final_scan_insn): Test value of JUMP_TABLES_IN_TEXT_SECTION instead of just testing whether it is defined. * tm.texi (JUMP_TABLES_IN_TEXT_SECTION): Corresponding changes. * arm/coff.h: Define JUMP_TABLES_IN_TEXT_SECTION to 1. coff.h: Likewise. * i386/386bsd.h: Likewise. * i386/freebsd-elf.h: Likewise. * i386/freebsd.h: Likewise. * i386/netbsd.h: Likewise. * i386/ptx4-i.h: Likewise. * i386/sysv4.h: Likewise. * pa/pa.h: Likewise. * rs6000/linux.h: Likewise. * rs6000/rs6000.h: Likewise. * sh/sh.h: Likewise. * sparc/sp64-elf.h: Likewise. * v850/v850.h: Likewise. * rs6000/sysv4.h: Define JUMP_TABLES_IN_TEXT_SECTION to 0. * i386/linux.h: Define JUMP_TABLES_IN_TEXT_SECTION to (flag_pic). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19940 138bc75d-0d04-0410-961f-82ee72b054a4
* * acconfig.h (HAVE_GAS_MAX_SKIP_P2ALIGN): New tag.law1998-05-213-0/+23
| | | | | | | | | | | | | | | | | | | | | | | * configure.in: Check for it. * i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Use it. * final.c (uid_align, uid_shuid, label_align): Make static. (label_align): Change type to struct label_alignment pointer. (LABEL_TO_ALIGNMENT, shorten_branches): Update due to type change. (LABEL_TO_MAX_SKIP): Define. (LABEL_ALIGN_MAX_SKIP, LOOP_ALIGN_MAX_SKIP, LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Provide defaults. (shorten_branches): Record the maximum bytes to skip when aligning a label. (final_scan_insn): Use the maximum bytes to skip when aligning a label if ASM_OUTPUT_MAX_SKIP_ALIGN is available. * i386.h (LOOP_ALIGN_MAX_SKIP, LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define. * i386.c (override_options): i386_align_jumps and i386_align_loops default to 4 if ASM_OUTPUT_MAX_SKIP_ALIGN is available. * invoke.texi: Document new i386 align-loops and align-jumps behavior. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19933 138bc75d-0d04-0410-961f-82ee72b054a4
* * Global CSE and constant/copy propagation.law1998-05-201-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (OBJS): Add gcse.o (STAGESTUFF): Add *.gcse. (gcse.o): Add dependencies. (mostlyclean): Remove *.gcse and */*.gcse. * gcse.c: New file. * loop.c (loop_optimize): Move call to init_alias_analysis. * recog.c (validate_replace_src): New function. * toplev.c (gcse_dump): New global variable. (flag_gcse, gcse_time): Likewise. (compile_file): Initialize gcse_time and clean out the gcse dump file if necessary. (rest_of_compilation): Call gcse_main as requested. Dump RTL after gcse if requested. (main): Enable gcse for -O2 and above. Handle -dG. Enable gcse dumps for -da. * gcc.texi: Add gcse related internal documentation. * invoke.texi: Note new command line options for gcse. * tm.texi: Document AVOID_CCMODE_COPIES. * mips.h (AVOID_CCMODE_COPIES): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19901 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix Irix6 Mesa compile failure reported by Andy Tai.wilson1998-05-191-0/+11
| | | | | | | | * config/mips/mips.c (double_memory_operand): Accept any MEM during reload when TARGET_64BIT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19887 138bc75d-0d04-0410-961f-82ee72b054a4
* Finish incomplete change started by Kenner.wilson1998-05-193-4/+2
| | | | | | | | | | | | | * configure.in (*-*-linux-gnu*): Delete NO_STAB_H from xm_defines. (powerpcle-*-cygwin32): Delete xm_defines. * final.c, mips-tfile.c, xcoffout.c, config/mips/mips.c: Use HAVE_STAB_H instead of NO_STAB_H. * config/xm-linux.h (NO_STAB_H): Delete. (HAVE_STAB_H): Undefine. * config/i386/xm-go32.h (NO_STAB_H): Delete. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19886 138bc75d-0d04-0410-961f-82ee72b054a4
* * arm/netbsd.h: Ensure DWARF2_UNWIND_INFO is undefined.rearnsha1998-05-191-5/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19881 138bc75d-0d04-0410-961f-82ee72b054a4
* Warning Fixes:ghazi1998-05-193-23/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (print-rtl.o): Depend on bitmap.h. (dbxout.o): Depend on toplev.h. ($(SCHED_PREFIX)sched.o): Likewise. ($(out_object_file)): Likewise for system.h and toplev.h. (cppmain.o): Depend on gansidecl.h. (cpplib.o): Likewise. (cpperror.o): Likewise. (cppexp.o): Likewise. (cpphash.o): Likewise. (cppalloc.o): Likewise. (fix-header.o): Depend on cpplib.h and cpphash.h. (scan-decls.o): Depend on gansidecl.h. * basic-block.h (free_regset_vector): Add prototype. * cccp.c (check_precompiled): Mark parameter `fname' with ATTRIBUTE_UNUSED. (do_assert): Likewise for `op' and `keyword'. (do_unassert): Likewise. (do_line): Likewise for `keyword'. (do_error): Likewise for `op' and `keyword'. (do_warning): Likewise. (do_ident): Likewise for `keyword'. (do_pragma): Likewise for `limit', `op' and `keyword'. (do_sccs): Likewise. (do_if): Likewise for `keyword'. (do_elif): Likewise. (do_else): Likewise. (do_endif): Likewise. * collect2.c (getenv): Remove redundant prototype. (collect_exit, collect_execute, dump_file): Likewise. (dump_list): Wrap prototype and definition in COLLECT_EXPORT_LIST. (dump_prefix_list): Hide prototype and definition. * sparc.c: Include toplev.h. (intreg_operand): Mark parameter `mode' with ATTRIBUTE_UNUSED. (symbolic_memory_operand): Likewise. (sp64_medium_pic_operand): Likewise. (data_segment_operand): Likewise. (text_segment_operand): Likewise. (splittable_symbolic_memory_operand): Likewise. (splittable_immediate_memory_operand): Likewise. (eq_or_neq): Likewise. (normal_comp_operator): Likewise. (noov_compare_op): Likewise. (v9_regcmp_op): Likewise. (v8plus_regcmp_op): Likewise. (extend_op): Likewise. (cc_arithop): Likewise. (cc_arithopn): Likewise. (small_int): Likewise. (uns_small_int): Likewise. (clobbered_register): Likewise. (legitimize_pic_address): Likewise. (delay_operand): Likewise. (sparc_builtin_saveregs): Remove unused variable `stdarg'. * sparc.h (order_regs_for_local_alloc, eligible_for_return_delay, sparc_issue_rate, v8plus_regcmp_p): Add prototypes. * sparc.md (cmpdi_v8plus): Add abort for default case in switch. * cppalloc.c: Include gansidecl.h. * cpperror.c: Include stdarg.h/varargs.h and gansidecl.h. (cpp_file_line_for_message): Mark parameter `pfile' with ATTRIBUTE_UNUSED. (v_cpp_message): New function. (cpp_message): Use it. Also convert to variable arguments. (cpp_fatal): Likewise. (cpp_pfatal_with_name): Constify parameter `name'. * cppexp.c: Move gansidecl.h before cpplib.h. * cpphash.c: Likewise. * cpphash.h (hashf, delete_macro): Add prototypes. * cpplib.c: Include stdarg.h/varargs.h and move gansidecl.h before cpplib.h. Don't include errno.h. (update_path): Add arguments to prototype. (cpp_fatal, cpp_file_line_for_message, cpp_message, delete_macro, cpp_print_containing_files): Remove redundant prototypes. (cpp_hash_cleanup, add_import, append_include_chain, make_assertion, path_include, initialize_builtins, initialize_char_syntax, finclude, validate_else, comp_def_part, lookup_import, redundant_include_p, is_system_include, read_name_map, read_filename_string, open_include_file, check_macro_name, compare_defs, compare_token_lists, eval_if_expression, change_newlines): Add prototype arguments. (hashf): Remove redundant prototype. (read_token_list, free_token_list, safe_read, xcalloc, savestring, conditional_skip, skip_if_group): Add prototype arguments. (fdopen): Remove redundant prototype. (do_define, do_line, do_include, do_undef, do_error, do_pragma, do_ident, do_if, do_xifdef, do_else, do_elif, do_endif, do_sccs, do_once, do_assert, do_unassert, do_warning): Add prototype arguments. (struct directive): Add prototype arguments to function pointer member `func'. (handle_directive): Add missing arguments to call to `do_line'. (do_include): Mark parameters `unused1' and `unused2' with ATTRIBUTE_UNUSED. (do_line): Likewise for `keyword' and new parameters `unused1' and `unused2'. (do_error): Likewise for `keyword'. (do_warning): Likewise. Also add missing argument `pfile' in call to cpp_pedwarn. (do_once): Mark parameter `keyword', `unused1' and `unused2' with ATTRIBUTE_UNUSED. (do_ident): Likewise for `keyword', `buf' and `limit'. (do_pragma): Likewise. Also add missing arguments in call to do_once. (do_sccs): Mark parameter `keyword', `buf' and `limit' with ATTRIBUTE_UNUSED. (do_if): Likewise for `keyword'. (do_elif): Likewise. (eval_if_expression): Likewise for `buf' and `length'. (do_xifdef): Likewise for `unused1' and `unused2'. (do_else): Likewise for `keyword', `buf' and `limit'. (do_endif): Likewise. (parse_name): Add missing argument `pfile' in call to cpp_pedwarn. (cpp_handle_options): Remove superfluous NULL argument in call to cpp_fatal. (cpp_handle_options): Likewise. (do_assert): Mark parameter `keyword', `buf' and `limit' with ATTRIBUTE_UNUSED. (do_unassert): Likewise. (cpp_print_file_and_line): Add missing argument `pfile' in call to cpp_file_line_for_message. (v_cpp_error): New function. (cpp_error): Use it. Also accept variable arguments. (v_cpp_warning): New function. (cpp_warning): Use it. Also accept variable arguments. (cpp_pedwarn): Accept variable arguments. (v_cpp_error_with_line): New function (cpp_error_with_line): Use it. Accept variable arguments. (v_cpp_warning_with_line): New function. (cpp_warning_with_line): Use it. Accept variable arguments. Hide definition. (cpp_pedwarn_with_line): Accept variable arguments. (cpp_pedwarn_with_file_and_line): Likewise. (cpp_error_from_errno): Constify parameter `name'. Add missing argument `pfile' in call to cpp_file_line_for_message. (cpp_perror_with_name): Constify parameter `name'. * cpplib.h: Define PARAMS() in terms of PROTO(). (fatal): Remove redundant prototype. (cpp_error, cpp_warning, cpp_pedwarn, cpp_error_with_line, cpp_pedwarn_with_line, cpp_pedwarn_with_file_and_line, cpp_error_from_errno, cpp_perror_with_name, cpp_pfatal_with_name, cpp_fatal, cpp_message, cpp_pfatal_with_name, cpp_file_line_for_message, cpp_print_containing_files): Add arguments to prototypes. (scan_decls, cpp_finish): Add prototypes. * cppmain.c: Include gansidecl.h. (main): Remove unused variable `i'. * dbxout.c: Include toplev.h. * demangle.h (do_tlink, collect_execute, collect_exit, collect_wait, dump_file, file_exists): Add prototype. * dwarf2out.c (dwarf_type_encoding_name, decl_start_label): Hide prototype and definition. (gen_unspecified_parameters_die): Don't assign results of call to function new_die() to unused variable `parm_die'. (dwarf2out_line): Mark parameter `filename' with ATTRIBUTE_UNUSED. (dwarf2out_define): Likewise for `lineno' and `buffer'. * dwarfout.c (output_unsigned_leb128, output_signed_leb128): Hide prototype and definition. (output_die): Add prototype arguments to function pointer arg. (output_unspecified_parameters_die): Mark parameter `arg' with ATTRIBUTE_UNUSED. * except.c (output_exception_table_entry): Remove unused variable `eh_entry'. * except.h (expand_fixup_region_start, expand_fixup_region_end): Add prototypes. * expr.c (do_jump_by_parts_equality_rtx): Remove prototype. * expr.h (do_jump_by_parts_equality_rtx): Add prototype. * fix-header.c: Include stdarg.h/varargs.h, move gansidecl.h before cpplib.h, include cpphash.h, remove redundant prototype of cpp_fatal, don't define `const', add a prototype for `fatal'. (cpp_file_line_for_message): Add missing arguments `pfile'. (v_cpp_message): New function. (cpp_message): Use it. (v_fatal): New function. (fatal, cpp_fatal): Use it. (cpp_pfatal_with_name): Constify parameter `name'. * flow.c (free_regset_vector): Remove redundant prototype. * function.c (round_down): Wrap prototype and definition with macro ARGS_GROW_DOWNWARD. (record_insns): Wrap prototype and definition with defined (HAVE_prologue) || defined (HAVE_epilogue). * gansidecl.h (ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5): New macros. * gen-protos.c: Include gansidecl.h. (hashf): Don't make it static, constify parameter `name'. * genattrtab.c (check_attr_test): Change XEXP() to XSTR() to match specifier %s in calls to function `fatal'. * haifa-sched.c: Include toplev.h. (find_rgns): Remove unused variable `j'. * integrate.c (note_modified_parmregs): Mark parameter `x' with ATTRIBUTE_UNUSED. (mark_stores): Likewise. * jump.c (mark_modified_reg): Likewise. * output.h (insn_current_reference_address): Add prototype. (eh_frame_section): Likewise. * print-rtl.c: Include bitmap.h. * reload1.c (reload): Wrap variables `note' and `next' in macro PRESERVE_DEATH_INFO_REGNO_P. (forget_old_reloads_1): Mark parameter `ignored' with ATTRIBUTE_UNUSED. (choose_reload_regs): Remove unused variable `in'. (reload_cse_invalidate_mem): Mark parameter `ignore' with ATTRIBUTE_UNUSED. (reload_cse_check_clobber): Likewise. * rtl.h (expand_null_return, reg_classes_intersect_p): Add prototype. (mark_elimination): Fix typo in prototype. * scan-decls.c: Include gansidecl.h. * tree.h (using_eh_for_cleanups, supports_one_only): Add prototype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19867 138bc75d-0d04-0410-961f-82ee72b054a4
* Applied fixes from PR 15949 and 15047nickc1998-05-181-5/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19856 138bc75d-0d04-0410-961f-82ee72b054a4
* * i386.h (ALIGN_DFmode): Delete.law1998-05-171-2/+24
| | | | | | | | (CONSTANT_ALIGNMENT): Define. * varasm.c (force_const_mem): Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19823 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix -ffast-math typo in alpha_emit_conditional_branch.rth1998-05-171-1/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19822 138bc75d-0d04-0410-961f-82ee72b054a4
* * alpha/osf.h (HAVE_STAMP_H): Define.rth1998-05-165-3/+73
| | | | | | | | | | | | | * alpha.c: Use it. * alpha/netbsd.h, alpha/netbsd-elf.h: New files. * configure.in (alpha*-*-netbsd*): New. Based on patches from Paul H. Anderson <pha@pdq.com>. * configure.in (alpha*-*-linux-*): Kill xm_defines. (alpha*-*-linux-gnulibc1*) [fixincludes]: Define. * alpha/xm-linux.h: Remove file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19809 138bc75d-0d04-0410-961f-82ee72b054a4
* * i386.md (movdi-1, movdi): Rewrite based on SI move patterns.law1998-05-151-23/+27
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19786 138bc75d-0d04-0410-961f-82ee72b054a4
* Patch from Bob Manson.wilson1998-05-151-0/+7
| | | | | | | | * config/rs6000/rs6000.c (rs6000_stack_info): Align the stack bottom to an 8-byte boundary if info_ptr->fpmem_p. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19780 138bc75d-0d04-0410-961f-82ee72b054a4
* * sh.c (gen_shl_and): Don't sign extend constant for kind two.amylaar1998-05-151-1/+5
| | | | | | | Abort if trying to split kind 3 or 4 outside of combine. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19772 138bc75d-0d04-0410-961f-82ee72b054a4
* * mips.c (print_operand, case 'x'): Use HOST_WIDE_INT_PRINT_HEX.law1998-05-151-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19769 138bc75d-0d04-0410-961f-82ee72b054a4
* * i386.h (DATA_ALIGNMENT): Define.law1998-05-151-0/+48
| | | | | | | Improve x86 FP performance. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19765 138bc75d-0d04-0410-961f-82ee72b054a4
* Initial revisionlaw1998-05-141-0/+57
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19757 138bc75d-0d04-0410-961f-82ee72b054a4
* Patch from Gary McGary to fix i960 problem with out-of-range shifts.wilson1998-05-142-30/+46
| | | | | | | | | | | * i960.h (hard_regno_mode_ok): Changed to function from array of unsigned. (HARD_REGNO_MODE_OK): Call function instead of testing bit. * i960.c (hard_regno_mode_ok): Changed to function from array of unsigned. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19745 138bc75d-0d04-0410-961f-82ee72b054a4