Age | Commit message (Collapse) | Author | Files | Lines |
|
for 68HC12.
* config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
soft registers by default for 68HC12.
(m68hc11_conditional_register_usage): Don't use Z register for 68HC12
when compiling with -fomit-frame-pointer.
(expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
(expand_epilogue): Likewise.
(m68hc11_gen_rotate): Use exg when rotating by 8.
From-SVN: r50882
|
|
* config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
* config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
(splits): Remove unused add splits.
("*addhi3_68hc12"): Tune constraints.
("addhi_sp"): Try to use X instead of Y in all cases and if the
constant fits in 8-bits and D is dead use abx/aby instructions.
("*addhi3"): Remove extern declaration of ix_reg.
("*subsi3"): Optimize and provide new split.
("subhi3"): Cleanup.
("*subhi3_sp"): Avoid saving X if we know it is dead.
(arith splits): For 68hc12 save the address register on the stack
and do the arithmetic operation with a pop.
From-SVN: r50880
|
|
address registers.
* config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
allocating QImode in address registers.
("*movqi_m68hc11"): Likewise.
From-SVN: r50878
|
|
From-SVN: r50876
|
|
* cppinit.c (print_help): Display -MD and -MMD.
Don't display usage string. Update assertion syntax and
typo.
(COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
(cpp_handle_option): Update.
From-SVN: r50874
|
|
From-SVN: r50873
|
|
2002-03-15 Eric Christopher <echristo@redhat.com>
* config/mips/mips.md (movdf_internal2): Add two new move constraints.
Fix register preference on last change.
* config/mips/mips.c (mips_return_in_memory): New function.
* config/mips/mips.h (RETURN_IN_MEMORY): Use.
* config/mips/mips-protos.h: Declare.
* config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
* config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
From-SVN: r50869
|
|
of SUBTARGET_CPP_SIZE_SPEC...
2002-03-15 Chris Demetriou <cgd@broadcom.com>
* config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
and define it so that regardless of target CPU size,
__SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
of "int" rather than "long."
From-SVN: r50868
|
|
From-SVN: r50867
|
|
* g++.dg/template/qualttp20.C: Remove unnecessary error tags.
* g++.dg/template/qualttp3.C: Likewise.
* g++.dg/template/qualttp4.C: Likewise
* g++.dg/template/qualttp5.C: Likewise
* g++.dg/template/qualttp6.C: Likewise
* g++.dg/template/qualttp7.C: Likewise
* g++.dg/template/qualttp8.C: Likewise
* g++.dg/template/recurse.C: Likewise.
From-SVN: r50863
|
|
* config/alpha/alpha.c (alpha_va_arg): Manipulate the type
size as a tree.
From-SVN: r50857
|
|
* config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
("tstqi" split): Avoid using memory for tstqi on address register.
(splits): Remove constraints.
("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
("cmpdf", "cmpsf"): Remove since not used.
("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
(peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
From-SVN: r50849
|
|
* config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
("neghi2"): Tighten constraints.
("one_cmplsi2"): Optimize and simplify split.
* config/m68hc11/larith.asm (__negsi2): Likewise for library.
From-SVN: r50847
|
|
to clear the upper bits.
* config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
and split of AND operation to clear the upper bits.
("*logicalsi3_zextqi"): Likewise.
("*logicallhi3_zexthi_ashift8"): Likewise.
("*logicalsi3_silshr16"): Likewise.
("logicalsi3_silshl16"): Likewise.
("anddi3", "iordi3", "xordi3" splits): Remove constraints.
From-SVN: r50845
|
|
* config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
(m68hc11_indirect_p): New function.
(m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
(m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
TARGET_M6812.
(asm_print_register): Likewise.
* config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
(m68hc11_indirect_p): Declare.
* config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
(TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
(TARGET_SWITCHES): New option -mrelax.
* config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
destination.
("iorsi3", "xorsi3"): Likewise.
("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
("*andhi3_mem"): New to handle destination in memory with bclr
and a scratch register.
("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
("*andhi3_const"): New when operand2 is constant.
("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
("*andhi3_gen"): Cleanup of the old "andhi3".
("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
("xorqi3"): Update constraints.
From-SVN: r50843
|
|
when the operand is a register that does not get...
* config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
for reg_equiv_memory_loc when the operand is a register that does
not get a hard register (stack location).
(tst_operand): After reload, accept all memory operand.
(symbolic_memory_operand): Fix detection of symbolic references.
* config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
accept symbols and any constant.
From-SVN: r50839
|
|
the soft frame register.
* config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
note on the insn that sets the soft frame register.
(must_parenthesize): ix and iy are also reserved names.
(print_operand_address): One more place where parenthesis are required
to avoid confusion with register names.
(m68hc11_gen_movhi): Allow push of stack pointer.
(m68hc11_check_z_replacement): Fix handling of parallel with a
clobber.
(m68hc11_z_replacement): Must update the REG_INC notes to tell what
the replacement register is.
* config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
and D8_REGS classes.
(MODES_TIEABLE_P): All modes are tieable except QImode.
From-SVN: r50837
|
|
* config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
(___subdi3): Likewise.
(__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
(__map_data_section): Optimize 68hc11 case.
From-SVN: r50835
|
|
a register with itself.
* config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
than a shift to avoid adding a register with itself.
(m68hc11_memory_move_cost): Take into account NO_REGS.
(m68hc11_register_move_cost): Update and use memory move cost
for soft registers.
(m68hc11_address_cost): Make cost of valid offset not 0 so that
it gives more opportunities to cse to optimize.
* config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
* config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
From-SVN: r50833
|
|
* c-common.c (statement_code_p): Handle CLEANUP_STMT.
* c-common.def (CLEANUP_STMT): New tree node.
* c-common.h (CLEANUP_DECL): New macro.
(CLEANUP_EXPR): Likewise.
* c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
* tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
* tree-inline.c (initialize_inlined_parameters): Clean up
new local variables.
* cp-tree.h (CLEANUP_DECL): Remove.
(CLEANUP_EXPR): Likewise.
* decl.c (destroy_local_var): Simplify.
(maybe_build_cleanup): Tidy.
* dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT.
* semantics.c (cp_expand_stmt): Likewise.
* cp/tree.c (cp_statement_code_p): Likewise.
* g++.dg/opt/dtor1.C: New test.
From-SVN: r50830
|
|
libf2c/libF77/l_gt.c)
PR bootstrap/4128
* config/sparc/sparc.c (gen_v9_scc): Move early clobber test
before movrXX only, use reg_overlap_mentioned_p.
Only special case NE if just one insn can be generated.
* gcc.c-torture/compile/20020315-1.c: New test.
From-SVN: r50826
|
|
DECL_SECTION_NAME.
* varasm.c (assemble_variable): Call resolve_unique_section before
checking DECL_SECTION_NAME. Use zeros for a decl with DECL_INITIAL
of error_mark_node.
From-SVN: r50824
|
|
From-SVN: r50821
|
|
PR c++/5857
* decl.c (duplicate_decls): Use merge_types instead of common_type.
* typeck.c (common_type): Just hand off to
type_after_usual_arithmetic_conversions and
composite_pointer_type.
(merge_types): New fn.
(commonparms): Use it instead of common_type.
(type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE.
(composite_pointer_type): Also handle attributes.
* cp-tree.h: Declare merge_types.
From-SVN: r50820
|
|
From-SVN: r50815
|
|
PR target/5170
* arm.md (split pattern for thumb shiftable immediates): Add comment
explaining non-obvious test.
From-SVN: r50814
|
|
PR target/5712
* arm.md (movaddr, movaddr_insn): Delete.
From-SVN: r50809
|
|
From-SVN: r50806
|
|
From-SVN: r50805
|
|
From-SVN: r50804
|
|
* toplev.c (wrapup_global_declarations): Clarify variable handling.
-fkeep-static-consts doesn't apply to comdats.
cp/
* decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT
variables.
* decl2.c (maybe_make_one_only): Also mark the decl as needed.
From-SVN: r50802
|
|
From-SVN: r50801
|
|
* c-decl.c: Include c-pragma.h.
(start_decl, start_function): Invoke maybe_apply_pragma_weak.
(finish_function): Tidy.
* c-pragma.c: Include c-common.h.
(pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
(handle_pragma_weak): Use them.
(init_pragma): Register pending_weaks.
* c-pragma.h (maybe_apply_pragma_weak): Declare.
* print-tree.c (print_node): Print DECL_WEAK.
* varasm.c (mark_weak_decls): Remove.
(remove_from_pending_weak_list): Remove.
(add_weak): Remove.
(asm_emit_uninitialised): Call globalize_decl for weak commons.
(weak_decls): Make a tree_list.
(declare_weak): Cons weak_decls directly.
(globalize_decl): Remove weak_decls elements directly.
(weak_finish): Simplify weak_decls walk. Don't weaken unused
symbols. Don't pretend to handle aliases.
(init_varasm_once): Update weak_decls registry.
* Makefile.in: Update dependencies.
* cp/decl.c: Include c-pragma.h.
(start_decl, start_function): Invoke maybe_apply_pragma_weak.
* cp/Make-lang.in: Update dependencies.
* gcc.dg/weak-1.c: New.
From-SVN: r50797
|
|
PR target/5312
* config/ia64/ia64.c: Include tm_p.h last.
(gen_nop_type): Remove duplicate definition.
(cycle_end_fill_slots): Set sched_data for second L slot.
(maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
(nop_cycles_until): Fix typos.
* gcc.dg/20020313-1.c: New.
From-SVN: r50796
|
|
* gcc.dg/20020312-2.c [__MMIX__]: No pic register.
* gcc.c-torture/compile/981006-1.x: Don't use -fpic on cris-*-elf*
cris-*-aout* mmix-*-*.
* g++.old-deja/g++.other/local-alloc1.C: Skip on cris-*-elf*
cris-*-aout* mmix-*-*.
* g++.dg/debug/debug3.C: Expect warning for unsupported -fpic on
cris-*-elf* cris-*-aout* and mmix-*-*.
* gcc.dg/20001009-1.c: Ditto.
* gcc.dg/20010912-1.c: Ditto.
* gcc.dg/20020122-4.c: Ditto.
* gcc.dg/inline-2.c: Ditto.
From-SVN: r50794
|
|
PR c++/5908
From-SVN: r50793
|
|
on ia64)
PR optimization/5891
* unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
From-SVN: r50791
|
|
* config/ia64/unwind-ia64.c: Handle copy_state and label_state
descriptors correctly.
From-SVN: r50789
|
|
From-SVN: r50787
|
|
From-SVN: r50786
|
|
From-SVN: r50782
|
|
* cpphash.h (struct lexer_state): Remove line_extension member.
* cpplib.c (dequote_string, do_linemarker): New functions.
(linemarker_dir): New data object.
(DIRECTIVE_TABLE): No longer need to interpret #line in
preprocessed source. Delete obsolete comment about return
values of handlers.
(end_directive, directive_diagnostics, _cpp_handle_directive):
Don't muck with line_extension.
(directive_diagnostics): No need to issue warnings for
linemarkers here.
(_cpp_handle_directive): Issue warnings for linemarkers here,
when appropriate. Dispatch linemarkers to do_linemarker, not
do_line.
(do_line): Code to handle linemarkers split out to do_linemarker.
Convert escape sequences in filename argument, both places.
* cppmacro.c (quote_string): Rename cpp_quote_string and
export. All callers changed.
* cpplib.h (cpp_quote_string): Prototype.
* cppmain.c (print_line): Call cpp_quote_string on to_file
before printing it.
* doc/cpp.texi: Document that escapes are now interpreted in
#line and in linemarkers, and that non-printing characters are
converted to octal escapes when linemarkers are generated.
From-SVN: r50780
|
|
* cpphash.h (struct lexer_state): Remove line_extension member.
* cpplib.c (dequote_string, do_linemarker): New functions.
(linemarker_dir): New data object.
(DIRECTIVE_TABLE): No longer need to interpret #line in
preprocessed source. Delete obsolete comment about return
values of handlers.
(end_directive, directive_diagnostics, _cpp_handle_directive):
Don't muck with line_extension.
(directive_diagnostics): No need to issue warnings for
linemarkers here.
(_cpp_handle_directive): Issue warnings for linemarkers here,
when appropriate. Dispatch linemarkers to do_linemarker, not
do_line.
(do_line): Code to handle linemarkers split out to do_linemarker.
Convert escape sequences in filename argument, both places.
* cppmacro.c (quote_string): Rename cpp_quote_string and
export. All callers changed.
* cpplib.h (cpp_quote_string): Prototype.
* cppmain.c (print_line): Call cpp_quote_string on to_file
before printing it.
* doc/cpp.texi: Document that escapes are now interpreted in
#line and in linemarkers, and that non-printing characters are
converted to octal escapes when linemarkers are generated.
From-SVN: r50779
|
|
* emit-rtl.c (try_split): Use delete_insns.
* recog.c (split_all_insns): Fix terminating condition.
From-SVN: r50778
|
|
2002-03-14 Philipp Thomas <pthomas@suse.de>
* fr.po: Update to latest revision.
From-SVN: r50777
|
|
From-SVN: r50772
|
|
reloaded)
PR target/5828
* arm.c (arm_output_epilogue): Fix floating-point register save
adjustment when using a frame pointer.
Co-Authored-By: Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
From-SVN: r50771
|
|
* call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too.
* cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING.
* g++.dg/warn/Wunused-1.C: New test.
From-SVN: r50770
|
|
* xeinfo.adb: Don't look for revision numbers.
* xnmake.adb: Likewise.
* xsinfo.adb: Likewise.
* xsnames.adb: Likewise.
* xtreeprs.adb: Likewise.
From-SVN: r50768
|
|
* config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
* config/mips/mips.c (compute_frame_size): Retrofit them here.
(save_restore_insns, mips_expand_epilogue): And here.
(build_mips16_call_stub): And here.
(mips_function_value): Use the new macros to decide whether a single
or complex float can be returned in floating-point registers. Return
a parallel rtx in the complex case.
From-SVN: r50766
|