summaryrefslogtreecommitdiff
path: root/gcc/libgcc2.c
Commit message (Collapse)AuthorAgeFilesLines
* * cppmacro.c (_cpp_backup_tokens): Pop cur_run before decrementingjason2001-11-191-1/+1
| | | | | | | | | | | | | cur_token, not after. * config/clipper/clix.h, config/h8300/elf.h, config/mips/linux.h: Lose ASM_OUTPUT_CONSTRUCTOR. * system.h: Poison it and INT_ASM_OP. * c-lang.c (finish_file): Don't check for it. * libgcc2.c (L_ctors): Check TARGET_ASM_CONSTRUCTOR instead. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47169 138bc75d-0d04-0410-961f-82ee72b054a4
* * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,jsm282001-10-281-1/+1
| | | | | | | | | | | | | ChangeLog.5, ChangeLog, FSFChangeLog.10, FSFChangeLog.11, c-common.c, c-common.h, c-parse.in, c-typeck.c, cfg.c, config.gcc, configure, configure.in, except.c, except.h, flow.c, function.c, gcc.c, gcse.c, genrecog.c, libgcc2.c, loop.c, loop.h, params.def, predict.def, predict.h, reg-stack.c, regmove.c, sched-deps.c, sched-int.h, sibcall.c, ssa.c, stringpool.c, toplev.c, tree.c, unroll.c: Fix spelling errors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46595 138bc75d-0d04-0410-961f-82ee72b054a4
* * calls.c: Fix formatting.kazu2001-10-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-decl.c: Likewise. * cfgcleanup.c: Likewise. * combine.c: Likewise. * cppfiles.c: Likewise. * cpplib.c: Likewise. * cppmacro.c: Likewise. * crtstuff.c: Likewise. * cse.c: Likewise. * dwarf2out.c: Likewise. * expmed.c: Likewise. * expr.c: Likewise. * fold-const.c: Likewise. * function.c: Likewise. * gcse.c: Likewise. * genattrtab.c: Likewise. * ggc-page.c: Likewise. * integrate.c: Likewise. * libgcc2.c: Likewise. * loop.c: Likewise. * optabs.c: Likewise. * profile.c: Likewise. * protoize.c: Likewise. * real.c: Likewise. * recog.c: Likewise. * reload1.c: Likewise. * reload.c: Likewise. * reorg.c: Likewise. * resource.c: Likewise. * sched-rgn.c: Likewise. * sdbout.c: Likewise. * stmt.c: Likewise. * toplev.c: Likewise. * varasm.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46145 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,gerald2001-08-221-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bitmap.h, builtin-types.def, builtins.c, builtins.def, c-aux-info.c, c-common.c, c-common.def, c-common.h, c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c, c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in, c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c, caller-save.c, calls.c, collect2.c, collect2.h, combine.c, conditions.h, config.gcc, configure.frag, configure.in, conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c, cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h, dependence.c, df.c, df.h, diagnostic.c, diagnostic.h, doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c, dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c, emit-rtl.c, errors.c, errors.h, except.c, except.h, exgettext, explow.c, expmed.c, expr.c, expr.h, final.c, fixproto, flags.h, flow.c, fold-const.c, fp-test.c, function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp, gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c, gencheck.c, gencodes.c, genconfig.c, genemit.c, genextract.c, genflags.c, gengenrtl.c, genmultilib, genopinit.c, genoutput.c, genpeep.c, genrecog.c, gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c, ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c, graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h, gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h, gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h, hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h, integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c, libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h, machmode.def, machmode.h, main.c, mbchar.c, mbchar.h, mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk, mkmap-symver.awk, optabs.c, output.h, params.c, params.def, params.h, predict.c, predict.def, predict.h, prefix.c, prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c, read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c, regclass.c, regmove.c, regrename.c, regs.h, reload.c, reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c, rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h, sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c, sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c, ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c, stringpool.c, system.h, timevar.c, timevar.def, timevar.h, tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h, tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h, unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h, unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c, xcoffout.h: replace "GNU CC" with "GCC". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45105 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.c (*): Replace EH_FRAME_SECTION with EH_FRAME_SECTION_NAME.grahams2001-08-141-3/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44891 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.c: Fix comment formatting.kazu2001-08-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gccspec.c: Likewise. * gcov.c: Likewise. * gcse.c: Likewise. * genemit.c: Likewise. * gengenrtl.c: Likewise. * genrecog.c: Likewise. * gensupport.c: Likewise. * ggc-page.c: Likewise. * global.c: Likewise. * graph.c: Likewise. * ifcvt.c: Likewise. * integrate.c: Likewise. * lcm.c: Likewise. * libgcc2.c: Likewise. * loop.c: Likewise. * mbchar.c: Likewise. * optabs.c: Likewise. * predict.c: Likewise. * prefix.c: Likewise. * profile.c: Likewise. * protoize.c: Likewise. * real.c: Likewise. * recog.c: Likewise. * regclass.c: Likewise. * regmove.c: Likewise. * reg-stack.c: Likewise. * reload1.c: Likewise. * resource.c: Likewise. * rtlanal.c: Likewise. * rtl.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44837 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcov.c (output_data): Use HOST_WIDEST_INT_PRINT_DEC to outputaj2001-07-161-48/+55
| | | | | | | | | | | | | variables of type HOST_WIDEST_INT. * libgcc2.c (__bb_exit_func): Handle gcov_type as long long. (__bb_exit_func): Correct type of count_max to avoid overflow. (num_digits): Handle long long argument. * combine.c (gen_lowpart_for_combine): Remove unused variable. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44033 138bc75d-0d04-0410-961f-82ee72b054a4
* * regs.h (struct reg_info_def): Add freq field.hubicka2001-06-221-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (REG_N_REFS): Update comment. (REG_FREQ): New. * regclass.c (scan_one_insn): Update REG_FREQ. * flow.c (mark_set_1): Update REG_FREQ, make REG_N_SETS unweighted. (attempt_auto_inc): Likewise. (mark_used_reg): Likewise. (try_pre_increment_1): Likewise. * local-alloc.c (struct qty): Add freq field. (alloc_qty): Set freq. (update_equiv_regs): Set REG_FREQ. (QTY_CMP_PRI): Use freq. (combine_regs): Update qty->freq. * global.c (struct allocno): Update comment for n_refs; add freq field. (local_reg_freq): New array. (global_alloc): Update freq field; allocate and initialize local_reg_freq. (allocno_compare): Use freq field. (find_reg): Likewise. * reload1.c (count_pseudo): Use freq isntead of n_refs. (count_spilled_pseudo): Likewise. * tm.texi (GCOV_TYPE_SIZE): Document. * basic-block.h (gcov_type): Define. (struct edge_def): Use gcov_type for count field. (struct basic_block_def): Likewise. * defaults.h (GCOV_TYPE_SIZE): Define. * final.c (end_final): Use GCOV_TYPE_SIZE. * flow.c (dump_edge_info, dump_flow_info, dump_bb): Print count fields using HOST_WIDEST_INT_PRINT_DEC. * gcov-io.h (__fetch_gcov_type, __store_gcov_type, __read_gcov_type, __write_gcov_type): New. (store_long): Remove. * gcov.c (gcov_type): Set default. (struct adj_list): Use gcov_type for arc_count. (bb_info): Use gcov_type for succ_count, pred_count and exec_count. (create_program_flow_graph): Read arc_count properly. (solve_program_flow_graph): 'total' is gcov_type. (output_data): Line_counts is gcov_type, print it properly. * libgcc2.c (struct bb): Counts is gcov_type. (__bb_exit_func): Use __read_gcov_type and __write_gcov_type. * profile.c (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set default. (GCOV_TYPE_SIZE): Define. (struct bb_info): succ_count and pred_count is gcov_type. (compute_branch_probabilities): Use __read_gcov_type, print read edges to the dump file. (total): Is gcov_type. (gen_edge_profiler): Use GCOV_TYPE_SIZE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43505 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.c, libgcc2.h: Restore __eprintf. Label as used forzack2001-05-141-0/+22
| | | | | | | | | | | | binary backward compat only. * Makefile.in (LIB2FUNCS_ST): New. Put _eprintf here, not in LIB2FUNCS. Pass it to mklibgcc. * mklibgcc.in: Handle LIB2FUNCS_ST. * Makefile.in (installdirs): Don't create $(gcc_tooldir). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42057 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in: Exterminate all references to assert.h.zack2001-05-111-18/+0
| | | | | | | | | | | | | | | | | | | | | | | * cross-make: Likewise. * assert.h: Delete. * configure.in: Correct commentary. * configure: Regenerate. * po/POTFILES.in: Remove assert.h. * libgcc-std.ver, libgcc2.c, libgcc2.h, sys-protos.h: Remove __eprintf. * config/t-freebsd, config/t-linux, config/t-linux-aout, config/t-netbsd, config/t-rtems, config/x-linux, config/i386/t-beos, config/mcore/t-mcore, config/mcore/t-mcore-pe: No need to override INSTALL_ASSERT_H. * fixinc/fixinc.dgux, fixinc/fixinc.interix, fixinc/fixinc.ptx, fixinc/fixinc.svr4, fixinc/fixinc.winnt, fixinc/fixinc.wrap, fixinc/fixincl.sh: Don't install assert.h into objdir/include. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41972 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (LIB2FUNCS): Remove _varargs and __dummy.zack2001-04-251-228/+0
| | | | | | | | | | | * libgcc-std.ver: Remove __builtin_saveregs, __dummy, and __empty. * libgcc2.c: Remove __dummy and __builtin_saveregs. * libgcc2.h: Don't prototype __builtin_saveregs or __dummy. * config/i860/varargs.asm: New file - preserve i860 __builtin_saveregs for future reference. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41529 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.c [L__main]: Include unwind-dw2-fde.h instead of frame.h.rth2001-03-291-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40957 138bc75d-0d04-0410-961f-82ee72b054a4
* IA-64 ABI Exception Handling.rth2001-03-281-1218/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40924 138bc75d-0d04-0410-961f-82ee72b054a4
* improve commentsjason2001-02-081-5/+15
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39537 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.h (Wtype_MAX, Wtype_MIN): Define.aoliva2001-01-311-8/+8
| | | | | | | | * libgcc2.c (__fixunssfSI, __fixunsdfSI, __fixunsxfSI): Use Wtype_MIN instead of LONG_MIN. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39365 138bc75d-0d04-0410-961f-82ee72b054a4
* * configure.in: Arrange to include defaults.h in [ht]config.h/tm.h.ghazi2001-01-281-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in: Remove all dependencies on defaults.h. * builtins.c: Don't include defaults.h. * c-common.c: Likewise. * c-decl.c: Likewise. * c-pragma.c: Likewise. * c-typeck.c: Likewise. * combine.c: Likewise. * i386.c: Likewise. * frame-ia64.c: Likewise. * cppexp.c: Likewise. * crtstuff.c: Likewise. * dbxout.c: Likewise. * dwarf2out.c: Likewise. * dwarfout.c: Likewise. * emit-rtl.c: Likewise. * except.c: Likewise. * expr.c: Likewise. * final.c: Likewise. * frame-dwarf2.c: Likewise. * libgcc2.c: Likewise. * optabs.c: Likewise. * profile.c: Likewise. * sdbout.c: Likewise. * toplev.c: Likewise. * tradcif.y: Likewise. * tree.c: Likewise. * varasm.c: Likewise. ch: * Makefile.in: Remove all dependencies on defaults.h. * decl.c: Don't include defaults.h. * timing.c: Likewise. cp: * Make-lang.in: Remove all dependencies on defaults.h. * call.c: Don't include defaults.h. * decl.c: Likewise. * decl2.c: Likewise. * except.c: Likewise. * pt.c: Likewise. * rtti.c: Likewise. * tree.c: Likewise. * typeck.c: Likewise. f: * Make-lang.in: Remove all dependencies on defaults.h. * com.c: Don't include defaults.h. java: * Make-lang.in: Remove all dependencies on defaults.h. * decl.c: Don't include defaults.h. * expr.c: Likewise. * parse.y: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39308 138bc75d-0d04-0410-961f-82ee72b054a4
* Eliminate IA-64 compiler warnings.wilson2001-01-241-2/+2
| | | | | | | | | | | | * dwarf2out.c (dwarf2out_line): Make last_file_num be unsigned. * frame.h (__ia64_personality_v1): Add prototype. * libgcc2.c (ia64_throw_helper): Change personality declaration to prototype form. Add void * cast to first argument to personality call. ... git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39227 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-01-23 Chris Demetriou <cgd@broadcom.com>cgd2001-01-241-1/+10
| | | | | | | | | | | | * libgcc-std.ver (GCC_3.0): Add __terminate_func_set to list of EH symbols. * libgcc2.c (__terminate_func): Make variable static. (__terminate_set_func): New function to set __terminate_func. * libgcc2.h (__terminate_func_ptr): New typedef. (__terminate_set_func): New function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39224 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-01-17 Andrew Haley <aph@redhat.com>aph2001-01-231-69/+61
| | | | | | | | | | | | | | | * libgcc2.c (get_reg_addr): Don't abort if we haven't got a copy of a saved register; return NULL instead. (copy_reg): Take a pointer to a source register rather than a frame_state. (next_stack_level): Remember the address in the stack frame of all saved registers. Use the saved register pointer array as the source of the CFA. (throw_helper): Rewrite. Unwind once rather than twice and keep track of saved registers as we go. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39199 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-decl.c (start_function): Don't warn if old prototype is builtinkenner2001-01-131-4/+4
| | | | | | | | | | that's not in C's namespace. * libgcc2.c (_varargs): Update definition of __builtin_saveregs. (_bb): Add prototype for ctime. * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Add missing protos. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38980 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.h: Use Wtype for SItype and DWtype for DItype in prototypes.m.hayes2000-12-161-30/+30
| | | | | | | | | * libgcc2.c (__absvsi2): Use Wtype and DWtype. (__absvdi2, __addvsi3, __addvdi3, __subvsi3): Likewise. (__subvdi3, __mulvsi3, __mulvdi3, __negvsi2, __negvdi2): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38314 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/alpha/osf.h: Standarize copyright statement.law2000-12-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | * config/arc/arc.h: Likewise. * config/arm/elf.h config/arm/coff.h config/arm/aout.h: Likewise. * config/arm/arm.c config/arm/arm.h: Likewise. * config/elxsi/elxsi.h: Likewise. * config/i386/sco.h: Likewise. * config/m68k/crds.h config/m68k/hp320.h config/m68k/lynx.h: Likewise. * config/m68k/m68kv4.h config/m68k/next21.h: Likewise. * config/m68k/sun3.h: Likewise. * config/m88k/dgux.h config/m88k/dguxbcs.h: Likewise. * config/pdp11/2bsd.h config/pdp11/pdp11.h: Likewise. * config/romp/romp.h: Likewise. * config/rs6000/aix41.h: Likewise. * config/sparc/sysv4.h: Likewise. * config/we32k/we32k.c config/we32k/we32k.h: Likewise. * fixinc/gnu-regex.c fixinc/gnu-regex.h: Likewise. * cpplib.h cppexp.c cselib.h profile.c: Likewise. * longlong.h: Likewise. * libgcc2.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38088 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.c (__shtab): Remove __shtab variable.law2000-11-011-13/+0
| | | | | | | | | * libgcc-std.ver (GCC_3.0): Remove __shtab from symbol list. * Makefile.in (LIB2FUNCS): Remove _shtab from list of library members. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37175 138bc75d-0d04-0410-961f-82ee72b054a4
* Warning fixes:ghazi2000-10-201-1/+1
| | | | | | | | | | | | | | | | | | | | * mips.h (REG_CLASS_FROM_LETTER): Cast array arg to unsigned char. * sparc.c (load_pic_register): Delete unused varaible. * libgcc2.c (__addvsi3): Delete unused variable. * libgcc2.h (__absvsi2, __absvdi2, __addvsi3, __addvdi3, __subvsi3, __subvdi3, __mulvsi3, __mulvdi3, __negvsi2, __negvdi2): Prototype. * ssa.c (apply_delayed_renames): Avoid undefined operation. * toplev.c (display_target_options): Make static to match prototype. Delete empty declaration. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36987 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.c (_mulvsi3): Change variables u and v to a and b.cchavva2000-10-191-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36952 138bc75d-0d04-0410-961f-82ee72b054a4
* Added the missing #endif.cchavva2000-10-191-18/+17
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36950 138bc75d-0d04-0410-961f-82ee72b054a4
* Adding new option -ftrapv.cchavva2000-10-181-0/+170
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36942 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (LANG_LIB2FUNCS): Remove.rth2000-10-091-26/+1
| | | | | | | | | | | | (LIB2FUNCS): Remove _pure. (LIB2ADD): Remove LANG_LIB2FUNCS. (stage_a): Don't set LANG_LIB2FUNCS. * libgcc2.c (__terminate): Mark noreturn. (__pure_virtual): Remove. * mklibgcc.in: Remove LIB2ADD .txt processing. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36817 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (LIB2FUNCS): Add _clz.rth2000-10-061-14/+17
| | | | | | | | | * libgcc2.c (__ffsdi2): Use count_trailing_zeros. (__clz_tab): Put in its own unit, non-static. * libgcc2.h: Always include longlong.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36744 138bc75d-0d04-0410-961f-82ee72b054a4
* * frame.h (ia64_frame_state): Add my_psp.rth2000-08-081-17/+16
| | | | | | | | | | | | | | | | | | * libgcc2.c (ia64_throw_helper): Add throw_sp argument. (__throw): Pass it in. Don't clobber r7. * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline. (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when and nothing to do with sp. (normalize_reg_loc): Use frame->my_psp. (frame_translate): Handle frame-pointer-less functions. Set spill_base correctly, in absence of being told. (__build_ia64_frame_state): New sp argument. Fill in frame->my_sp. (__ia64_backtrace_helper): New sp argument. Use builtin_return_address instead of label addresses. (print_record) [mem_stack_v]: No size member. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35565 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix compile time warning messagenickc2000-07-101-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34947 138bc75d-0d04-0410-961f-82ee72b054a4
* * dwarf2.h (enum dwarf_call_frame_info): Addjason2000-06-261-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DW_CFA_def_cfa_expression. * dwarf2out.c (union dw_cfi_oprnd_struct): Add a pointer to a dw_loc_descr_struct entry. (struct cfa_loc): New structure to track a CFA location. (lookup_cfa): Take a cfa_loc parameter instead of a reg and an offset. (lookup_cfa_1): Take a cfa_loc parameter instead of a reg and an offset, plus handle DW_CFA_def_cfa_expression. (def_cfa_1): Use to be dwarf2out_def_cfa, only now it uses a cfa_loc record. (dwarf2out_def_cfa): Entry point maintained for compatability. (dwarf_cfi_name): Add DW_CFA_def_cfa_expression. (cfa_reg, cfa_offset): Replace with cfa_loc record 'cfa'. (cfa_store_reg, cfa_store_offset): Replace with cfa_loc 'cfa_store'. (initial_return_save, dwarf2out_stack_adjust): Use cfa.reg, not cfa_reg. (dwarf2out_frame_debug_expr): Use new cfa_loc records. Recognize rtl sequences for the new DW_CFA_def_cfa_expression record. (dwarf2out_frame_debug): Use new variables/fields.A (output_cfi): Handle DW_CFA_def_cfa_expression. (output_cfa_loc): New function to generate a CFI record for DW_CFA_def_cfa_expression. (get_cfa_from_loc_descr): New function to get a cfa_loc record from a dw_loc_descr sequeunce. (build_loc_descr): Build a dw_loc_descr from a cfa_loc record. (dwarf_stack_op_name, new_loc_descr, add_loc_descr, size_of_loc_descr, size_of_locs, output_loc_operands, output_loc_sequence): Move into unwind info section. * frame.h (frame_state): Add base_offset and indirect fields. * frame-dwarf2.c (decode_stack_op): New function to interpret a dw_loc_descr operation. (execute_cfa_insn): Add support for DW_CFA_def_cfa_expression. (struct frame_state): Add base offset and indirect fields. * libgcc2.c (next_stack_level): Support indirect loading for CFA. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34717 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.c (ia64_throw_helper): Use __builtin_return_address.rth2000-06-131-4/+3
| | | | | | | | | | | | | | | | | | | | | | (__throw): Don't pass the address of a label. * config/ia64/ia64.c (ia64_compute_frame_size): Use current_function_is_leaf. (ia64_expand_prologue): Likewise. Modify return_address_pointer_rtx instead of reg_names[RETURN_ADDRESS_REGNUM]. (ia64_init_machine_status): Reset return_address_pointer_rtx. * config/ia64/ia64.h (RETURN_ADDRESS_POINTER_REGNUM): Rename from RETURN_ADDRESS_REGNUM. Update all uses. (RETURN_ADDR_RTX): Use return_address_pointer_rtx; return zero instead of null on failure. (ELIMINABLE_REGS): Add ra->b0 elimination. (CAN_ELIMINATE): Update accordingly. (INITIAL_ELIMINATION_OFFSET): Likewise. (REGISTER_NAMES): Use an illegal assembler name for RETURN_ADDRESS_POINTER_REGNUM. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34531 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc:nathan2000-06-061-0/+69
| | | | | | | | | | | | | | | * eh-common.h (EH_ALLOC_SIZE, EH_ALLOC_ALIGN): New #defines. (eh_context): Add alloc_mask and alloc_buffer emergency fallback space. * libgcc2.c (__eh_alloc): Moved from cp/exception.cc. Fallback on emergency eh_context buffer, if malloc fails. (__eh_free): Moved from cp/exception.cc. Release to emergency eh_context buffer, if appropriate. gcc/cp: * exception.cc: (__eh_alloc, __eh_free): Moved to libgcc2.c git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34429 138bc75d-0d04-0410-961f-82ee72b054a4
* 2000-05-25 Andrew MacLeod <amacleod@cygnus.com>aph2000-05-251-0/+167
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Andrew Haley <aph@cygnus.com> * except.c (func_eh_entry): Add emitted field. (new_eh_region_entry): Set emitted field to 0; (output_exception_table_entry): Only emit previously un-emitted data, and send it to the eh_data section. (output_exception_table): Break out common parts. Output exception table for entire compilation unit to eh_data section. (output_exception_table_data): Common parts of output_exception_table. Send output to eh_data section. (output_function_exception_table): Output exception table data for a single function to eh_data section. (free_exception_table): New external to free the table. * except.h (free_exception_table): Add prototype. (output_function_exception_table): Add prototype. * final.c (final_end_function): Output function exception table for IA64_UNWIND_INFO. (final_scan_insn): Emit any unwind directives for an insn. * frame-dwarf2.c: New file containing all DWARF 2 specific code from frame.c. * frame.c: Remove all DWARF 2 specific code. * config/ia64/frame-ia64.c: New file. (gthread_stuff): Make all gthread available with IA64_UNWIND_INFO. (dwarf_fde): Define an IA64 struct for dwarf_fde. (__register_frame_info, __register_frame): Move to common area of file. (__register_frame_info_table, __register_frame_table): Move to common i area. (__deregister_frame_info, __deregister_frame): Move to common area. (__frame_init, find_fde): New versions for IA64_UNWIND_INFO. (read_uleb128): New version for ia64. (get_unwind_record): Read the next IA-64 unwind record. (read_R_record): Read a region header record. (process_a_b_reg_code): X record helper. (read_X_record): Read an X format record. (read_B_record): Read a B format record. (P3_record_types): List of record types matching the P3 format. (P7_record_types): List of record types matching the P7 format. (P8_record_types): List of record types matching the P8 format. (read_P_record): Read a P format record. (init_ia64_reg_loc): Set default fields for a register. (init_ia64_unwind_frame): Set defaults for all register records. (execute_one_ia64_descriptor): Execute one descriptor record. (rse_address_add): Calculate the position of a local reg in memory. (normalize_reg_loc): Turn a location descriptor into a memory address. (maybe_normalize_reg_loc): Only normalize a descriptor if it falls within a specified PC offset range. (get_real_reg_value): Given a register location, retrieve its value. (set_real_reg_value): Change the value of a register location. (copy_reg_value): Copy reg values, if needed. (copy_saved_reg_state): Copy all registers that need to be copied. (process_state_between): Normalize all frame register records that fall within the specified PC range. (frame_translate): Take a processed frame description, and turn everything into addresses. (build_ia64_frame_state ): Find and create frame state record for a PC. (get_personality): Get the personality routine for a given frame. (get_except_table): Get the exception table for a given frame. (record_name): Unwind record names for debugging. (print_record): Print and unwind record. (print_all_records): Print an entire unwind image. (__ia64_backtrace): Print a backtrace. (ia64_backtrace_helper): New function. (__register_frame_info_aux): New function. * config/ia64/crtend.asm (__do_frame_setup_aux): New function. * frame.h (enum unw_record_type): New unwind record types. (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records. (struct unw_r_record, unwind_record): New unwind record structs. (struct unwind_info_ptr): Unwind information layout. (IA64_UNW_LOC_TYPE_*): Macros for different types for location descriptors. (struct ia64_reg_loc): Register location description. (struct ia64_frame_state): Location of all registers in a frame. (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO. * libgcc2.c (__ia64_personality_v1): Personality routine. (__calc_caller_bsp): Calculate the bsp register for the caller's frame. (ia64_throw_helper): Figure out who to return to and set up the registers. (__throw): Throw routine. * output.h (assemble_eh_align, assemble_eh_label): New functions to generate EH info where we want it. (assemble_eh_integer): New function. * toplev.c (compile_file): Output module level exception table for non-ia64 targets. (main): Set exceptions_via_longjump and flag_new_exceptions based on IA64_UNWIND_INFO too. * varasm.c (assemble_eh_label): Generate a label via ASM_OUTPUT_EH_LABEL if it has been specified. (assemble_eh_align): Generate an alignment directive via ASM_OUTPUT_EH_ALIGN if it has been specified. (assemble_eh_label): Generate an integer value via ASM_OUTPUT_EH_type if they have been specified. * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs. (ia64_init_builtins): Add __builtin_ia64_bsp and __builtin_ia64_flushrs. (ia64_expand_builtin): Add IA64_BUILTIN_BSP and IA64_BUILTIN_FLUSHRS. * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and IA64_BUILTIN_FLUSHRS. * config/ia64/ia64.md (flushrs): New insn to flush the register stack. Add to unspec list. * config/ia64/crtbegin.asm (frame_object): Change size. (__do_frame_setup_aux): New function. * config/ia64/crtend.asm: call __do_frame_setup_aux. * config/ia64/t-ia64 (LIB2ADDEH): Add. * Makefile.in (LIB2ADDEH): Add. (LIB2ADD): Use LIB2ADDEH. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34169 138bc75d-0d04-0410-961f-82ee72b054a4
* * configure.in: Redefine inhibit_libc conditions.law2000-05-241-7/+0
| | | | | | | | * libgcc2.c: Remove inhibit_libc conditional define. * configure: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34126 138bc75d-0d04-0410-961f-82ee72b054a4
* Update to libgcc copyright exception clause.law2000-05-151-7/+9
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33916 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.c (near eh_context_specific): Comment #endif string.rth2000-05-041-1/+1
| | | | | | | * longlong.h: Don't use strings with embedded newlines. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33687 138bc75d-0d04-0410-961f-82ee72b054a4
* * configure.in (alpha*-*-*): Aad config/alpha/t-alpha.kenner2000-04-151-28/+31
| | | | | | | | | | | | | | | | | | | * configure: Rebuilt. * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi. (__fixunsxfDI): Renamed from __fixunsxfdi. (__fixunsdfDI): Renamed from __fixunsdfdi. (__fixunssfDI): Renamed from __fixunssfdi. (__floatdisf): Use proper type in REP_BIT macro. (__fixunsxfSI): Renamed from __fixunsxfsi. (__fixunsdfSI): Renamed from __fixunsdfsi. (__fixunssfSI): Renamed from __fixunssfsi. * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4. Change location of macros and upper-case some names as above. * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd. * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33166 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.jason2000-03-231-16/+0
| | | | | | | | | | | | * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define. * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define. * frame.h (frame_state): Revert last change. * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg. * libgcc2.c (throw_helper): Revert last change. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32705 138bc75d-0d04-0410-961f-82ee72b054a4
* Implement dwarf2 exception handling for the ARM.jason2000-03-231-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define. (DWARF_FRAME_RETURN_COLUMN): Define. * config/arm/arm.c (emit_multi_reg_push): Return rtx. Attach REG_FRAME_RELATED_EXPR note. (emit_sfm): Likewise. (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything. * dwarf2out.c (reg_save): Handle saving a register to itself. (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg. * except.c (eh_regs): Don't use the static chain reg if it's callee-saved. * frame.h (frame_state): Add cfa_saved field. * frame.c (execute_cfa_insn): Set it. * libgcc2.c (throw_helper): Don't adjust sp if it's restored in the epilogue. * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET. Now takes a parm. (instantiate_virtual_regs): Adjust. * tm.texi: Adjust. * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define. * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define. * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm. * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER. (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32696 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.h: New file.ghazi2000-03-091-199/+3
| | | | | | | * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32440 138bc75d-0d04-0410-961f-82ee72b054a4
* * frame.c (find_fde): Convert for loop to do-while so compilerzack2000-02-011-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sees it's always executed at least once. * libgcc2.c (BBINBUFSIZE): Kill. (__bb_init_prg): Use fgets. (__bb_exit_trace_func): Don't paste strings. * unroll.c (unroll_loop): Initialize unroll_type, not unroll_number, and tweak logic to match. * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in all failure paths. (ix86_flags_dependant): Likewise. Disentangle control flow. (ix86_sched_reorder): Break guts out to ix86_sched_reorder_pentium and ix86_sched_reorder_ppro. (ix86_sched_reorder_ppro): Initialize pair2 and insnp before any possible use. * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't use string concatenation. Don't save and restore esi. * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def. (machname.h): Remove script to separate file. Use two-step sequence so target is not created if script fails. * fixinc/gen-machname.h: New file. Handle case where no non-reserved identifiers are defined. * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is an empty string, machine_name doesn't need to do anything at all. (is_cxx_header): Add more cases to regexp. * fixinc/fixlib.h: Update prototype. * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of mn_get_regexps. * fixinc/fixincl.c: Define NO_BOGOSITY. * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out. (hp_sysfile): Add missing comma. (math_exception): Put the wrapper ifdefs at the beginning and the end of the file. * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31744 138bc75d-0d04-0410-961f-82ee72b054a4
* * tsystem.h: New file.ghazi2000-02-011-27/+1
| | | | | | | | | | | | * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o, s-crtS): Depend on tsystem.h. * crtstuff.c: Include tsystem.h. * frame.c: Likewise. * libgcc2.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31741 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc:amylaar2000-01-261-14/+80
| | | | | | | | | | | | | | | | | | * calls.c (special_function_p): New argument fork_or_exec. (expand_call): When profile_arc_flag is set and the function is in the fork_or_exec group, call __bb_fork_func first. * libgcc2.c, _bb module (__bb_fork_func): New function. (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock output file. * config/svr4.h (TARGET_HAS_F_SETLKW): Define. * tree.h (special_function_p): Update prototype. gcc/cp: * cp/optimize.c (calls_setjmp_r): Supply new argument to special_function_p. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31635 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.rth2000-01-231-2/+2
| | | | | | | (throw_helper): Iterate over DWARF_FRAME_REGISTERS. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31576 138bc75d-0d04-0410-961f-82ee72b054a4
* * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.ghazi1999-12-291-1/+1
| | | | | | | | | | | | | Otherwise provide a declaration for atexit. (init_dummy): Make sure dummy call to atexit is nevertheless called with correct number of args. * frame.c: Update comments referring to other files. * libgcc2.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31124 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make surejakub1999-12-271-191/+283
| | | | | | | | | | | | | | UNITS_PER_WORD and BITS_PER_WORD are compile time constants when compiling libgcc2. * config/mips/mips.h (TARGET_64BIT): Likewise. * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise. * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead of {SI,DI}type and DIunion. Define these types to QI/HI modes on dsps. Give routines proper names if SI/DI modes are not used. * longlong.h: Use DWunion instead of DIunion. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31095 138bc75d-0d04-0410-961f-82ee72b054a4
* * gthr-single.h (__gthread_active_p): Add prototype arguments.ghazi1999-12-121-68/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | * libgcc2.c (__udivmoddi4): Remove unnecessary decls. (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg, __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret, function_ptr, getpagesize, __enable_execute_stack, __enable_execute_stack, __clear_insn_cache, __enable_execute_stack, __do_global_dtors, __do_global_ctors, _cleanup, _exit, __default_terminate, __terminate_func, __terminate, __empty, __throw, new_eh_context, eh_context_initialize, eh_context_static, eh_context_specific, get_eh_context, __get_eh_context, __get_eh_info, init_reg_size_table, eh_threads_initialize, __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow, __unwinding_cleanup, throw_helper, __throw, __rethrow, __pure_virtual): Add prototype arguments. (__bb_exit_func): Cast a sizeof to long when comparing against one. Cast a signed value to unsigned long when comparing against one. (new_eh_context): Wrap in _GTHREADS macro. (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at declaration. (in_reg_window): Mark parameters with __attribute__ ((__unused__)). (throw_helper): Initialize variables `handler_p' and `pc_p'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30872 138bc75d-0d04-0410-961f-82ee72b054a4
* * longlong.h: Merge in changes from glibc.davem1999-12-091-0/+8
| | | | | | | | | | | | Also don't clobber %g2 register in 32bit SPARC assembly, so that -mno-app-regs libgcc can be compiled. * libgcc2.c: Add defines so that the updated longlong.h can be used in libgcc2.a. Also, make sure on most architectures (at least on all which have optimized code in longlong.h defined for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30836 138bc75d-0d04-0410-961f-82ee72b054a4