aboutsummaryrefslogtreecommitdiff
path: root/gcc/frame.c
AgeCommit message (Collapse)AuthorFilesLines
2000-03-23rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.Jason Merrill1-8/+16
* config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define. * 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. From-SVN: r32705
2000-03-22Implement dwarf2 exception handling for the ARM.Jason Merrill1-0/+4
* 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. From-SVN: r32696
2000-02-09dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.Geoff Keating1-0/+8
* dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant. * dwarf2out.c (dwarf_cfi_name): Print name of new constant. (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed. (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended. * frame.c (execute_cfa_insn): Handle DW_CFA_GNU_negative_offset_extended. From-SVN: r31858
2000-02-01frame.c (find_fde): Convert for loop to do-while so compiler sees it's ↵Zack Weinberg1-1/+3
always executed at least once. * frame.c (find_fde): Convert for loop to do-while so compiler 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. From-SVN: r31744
2000-02-01tsystem.h: New file.Kaveh R. Ghazi1-21/+2
* tsystem.h: New file. * 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. From-SVN: r31741
1999-12-29crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.Kaveh R. Ghazi1-1/+1
* crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h. 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. From-SVN: r31124
1999-12-06frame.c (start_fde_sort): Only allocate erratic array, if linear one was ↵Nathan Sidwell1-30/+98
allocated. * frame.c (start_fde_sort): Only allocate erratic array, if linear one was allocated. Return allocated flag. (fde_insert): Only insert, if there's a valid array. (fde_end_sort): Split, sort and merge if linear and erratic arrays exist, else just sort linear one. (search_fdes): New function. Linear search through original fde structure. (frame_init): Permit multiple initializations. Cope with memory shortages. (find_fde): Fallback on linear search, if failed to sort array. (__deregister_frame_info): Only free sorted array, if we allocated it. From-SVN: r30799
1999-12-03* frame.c (fde_split): Reimplement to avoid variable sized array.Nathan Sidwell1-14/+35
From-SVN: r30768
1999-10-05Declare malloc, free, and atexit if inhibit_libc is defined.Michael Meissner1-1/+10
From-SVN: r29829
1998-11-07configure.in (host_xm_file, [...]): Arrange to include gansidecl.h in ↵Kaveh R. Ghazi1-1/+0
{ht}config.h & tm.h just before the config/... * configure.in (host_xm_file, build_xm_file, xm_file, tm_file): Arrange to include gansidecl.h in {ht}config.h & tm.h just before the config/ directory headers. (tm_file_list, host_xm_file_list, build_xm_file_list): Handle gansidecl.h in the list of dependencies. * Makefile.in (RTL_BASE_H): Don't depend on gansidecl.h. (TREE_H, DEMANGLE_H, RECOG_H, REGS_H, libgcc2.a, stmp-multilib, mbchar.o, collect2.o, pexecute.o, vfprintf.o, splay-tree.o, gcc.o, gencheck.o, choose-temp.o, mkstemp.o, mkstemp.o, prefix.o, dyn-string.o, cexp.o, cccp.o, cppmain.o, cpplib.o, cpperror.o, cppexp.o, cppfiles.o, cpphash.o, cppalloc.o, scan-decls.o): Likewise. * cccp.c: Don't include gansidecl.h. * cexp.y: Likewise. * collect2.c: Likewise. * config/c4x/c4x.c: Likewise. * config/v850/v850.h: Likewise. * cppalloc.c: Likewise. * cpperror.c: Likewise. * cppexp.c: Likewise. * cppfiles.c: Likewise. * cpphash.c: Likewise. * cpplib.c: Likewise. * cppmain.c: Likewise. * cppulp.c: Likewise. * demangle.h: Likewise. * doprint.c: Likewise. * dyn-string.c: Likewise. * eh-common.h: Likewise. * fix-header.c: Likewise. * frame.c: Likewise. * gcc.c: Likewise. * gcov.c: Likewise. * gen-protos.c: Likewise. * gencheck.c: Likewise. * halfpic.h: Likewise. * hash.c: Likewise. * machmode.h: Likewise. * mbchar.c: Likewise. * prefix.c: Likewise. * protoize.c: Likewise. * recog.h: Likewise. * rtl.h: Likewise. * scan-decls.c: Likewise. * tree.h: Likewise. * varray.h: Likewise. From-SVN: r23558
1998-10-23frame.c: Somewhat explain `FDE'.Martin v. Löwis1-0/+19
* frame.c: Somewhat explain `FDE'. Suggested by Brendan Kehoe From-SVN: r23243
1998-08-27gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION.Tom Tromey1-1/+32
* gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION. * frame.c (init_object_mutex): New function. (init_object_mutex_once): Likewise. (find_fde): Call it. (__register_frame_info): Likewise. (__register_frame_info_table): Likewise. (__deregister_frame_info): Likewise. From-SVN: r22023
1998-05-06typo typo fixes fixesJeff Law1-1/+1
From-SVN: r19601
1998-04-23Partial fix for problem reported by Don Bowman.Jim Wilson1-0/+6
* frame.c, libgcc2.c (stdlib.h, unistd.h): Don't include when inhibit_libc is defined. From-SVN: r19390
1998-04-20Fix BSD/OS build error reported by Shigeya Suzuk.Jim Wilson1-3/+4
* frame.c (heapsort): Rename to frame_heapsort. From-SVN: r19351
1998-04-17Zap some warnings in target files:Kaveh R. Ghazi1-0/+5
* frame.c: Include stdlib.h and unistd.h to possibly get various function prototypes. The fixproto script guarantees these header files exist on the target system. * libgcc2.c: Likewise. * gthr-single.h (__gthread_mutex_lock, __gthread_mutex_trylock, __gthread_mutex_unlock): Add __attribute__ ((__unused__)) to the function parameters. * libgcc2.c (__udiv_w_sdiv): Likewise. From-SVN: r19261
1998-03-01frame.c (start_fde_sort, [...]): New functions for fast sorting of an FDE array.Bruno Haible1-22/+175
* frame.c (start_fde_sort, fde_split, heapsort, fde_merge, end_fde_sort): New functions for fast sorting of an FDE array. (fde_insert): Simplified. (add_fdes): Change argument list. (frame_init): Use the new functions. From-SVN: r18345
1998-02-13tweak commentsJason Merrill1-2/+2
From-SVN: r17964
1998-01-16* frame.c (find_fde): Correct FDE's upper bound.Bruno Haible1-1/+1
From-SVN: r17382
1997-12-24Makefile.in (GTHREAD_FLAGS): New var.Teemu Torma1-1/+1
* Makefile.in (GTHREAD_FLAGS): New var. (LIBGCC2_CFLAGS): Added $(GTHREAD_FLAGS). (distclean): Remove gthr-default.h. * configure.in: Accept dce as a thread package. Check for thread.h and pthread.h. Link gthr-default.h to appropriate thread file and set gthread_flags. (hppa1.1-*-hpux10*): If --enable-threads, use dce threads and include multilib definitions from pa/t-dce-thr. (sparc-*-solaris2*): Enable threads by default, if thread.h or pthread.h is found, preferring posix threads over solaris ones. * config/pa/t-dce-thr: New file. * config/pa/t-pa: Removed multilibs. * config/sparc/t-sol2: Ditto. * gthr.h: New file. * gthr-single.h: New file. * gthr-posix.h: New file. * gthr-solaris.h: New file. * gthr-dce.h: New file. * libgcc-thr.h: Removed. * objc/thr-dce.c: New file copied from thr-decosf1.c. * frame.c: Include gthr.h instead of libgcc-thr.h. * libgcc2.c: Include gthr.h instead of libgcc-thr.h. (eh_context_initialize): If __gthread_once fails, use static eh context. (eh_context_free): Call __gthread_key_dtor. From-SVN: r17235
1997-12-15frame.h (__register_frame, [...]): New.Jeff Law1-2/+22
* frame.h (__register_frame, __register_frame_table, __deregister_frame): New. * frame.c (__register_frame, __register_frame_table, __deregister_frame): New. * frame.c (__deregister_frame_info): Return void *. * frame.h (__deregister_frame_info): Ditto. * collect2.c (__deregister_frame_info): Ditto. From-SVN: r17113
1997-12-15Bring over changes from latest gcc-2.8 pre-release.Jeff Law1-3/+3
Mirror sched.c change into haifa-sched.c From-SVN: r17097
1997-12-11[multiple changes]Teemu Torma1-1/+26
Thu Dec 11 20:42:18 1997 Teemu Torma <tot@trema.com> Thread-safe EH support for pthreads, DCE threads and Solaris threads. * integrate.c (expand_inline_function): If the inline fn uses eh context, make sure that the current fn has one. * toplev.c (rest_of_compilation): Call emit_eh_context. * except.c (use_eh_context): New fn. (get_eh_context_once): New fn. (call_get_eh_context): New fn. (emit_eh_context): New fn. (get_eh_context): Call either get_eh_context_once or call_get_eh_context, depending on what we have. (get_dynamic_handler_chain): Call get_eh_context_once. * except.h: Prototypes for fns above. * optabs.c (get_eh_context_libfunc): Removed. (init_optabs): Don't initialize it. * expr.h (get_eh_context_libfunc): Removed. * rtl.h, rtl.c: New reg_note REG_EH_CONTEXT. * config/pa/pa.h (CPP_SPEC): Support for -threads. * config/pa/pa-hpux10.h (LIB_SPEC): Ditto. * config/pa/t-pa (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): New multilib for -threads. * config/sparc/t-sol2: Added multilibs for -threads and made -pthreads alias to it. * config/sparc/sol2.h (CPP_SPEC, LIB_SPEC): Added -threads and -pthreads options. * libgcc-thr.h: New file. * libgcc2.c: (__get_cpp_eh_context): Removed. (struct cpp_eh_context): Removed. (struct eh_context): Replaced cpp_eh_context with generic language specific pointer. (__get_eh_info): New function. (__throw): Check eh_context::info. (__sjthrow): Ditto. * libgcc2.c: Include libgcc-thr.h. (new_eh_context, __get_eh_context, eh_pthread_initialize, eh_context_initialize, eh_context_static, eh_context_specific, eh_context_free): New functions. (get_eh_context, eh_context_key): New variables. (__sjthrow, __sjpopnthrow, __eh_pcnthrow, __throw): Use get_eh_context to get the context. (longjmp): Move the declaration inside #ifdef DONT_USE_BUILTIN_SETJMP. * frame.c: Include libgcc-thr.h. (object_mutex): Mutex to protect the object list. (find_fde, __register_frame, __register_frame_table, __deregister_frame): Hold the lock while accessing objects. * except.h (get_eh_context): Declare. * except.c (current_function_ehc): Define. (current_function_dhc, current_function_dcc): Removed. (get_eh_context): New function. (get_dynamic_handler_chain): Use get_eh_context. (get_saved_pc_ref): Ditto. (get_dynamic_cleanup_chain): Removed references to current_function_dcc. (save_eh_status, restore_eh_status): Save and restore current_function_ehc instead. * optabs.c (get_eh_context_libfunc): New variable. (init_optabs): Initialize it. * expr.h: Declare get_eh_context_libfunc. * function.h (struct function): Replaced dhc and dcc with ehc. * except.c (get_saved_pc_ref): New functions. (eh_saved_pc_rtx, eh_saved_pc): Deleted. (expand_internal_throw_indirect): Use get_saved_pc_ref() instead of eh_saved_pc. (end_eh_unwinder): Likewise. (init_eh): Remove initialization of eh_saved_pc. * optabs.c (get_saved_pc_libfunc): New variable. (init_optabs): Initialize it. * expr.h: Declare get_saved_pc_libfunc. * except.h (eh_saved_pc_rtx): Deleted. (get_saved_pc_ref): Declared. From Scott Snyder <snyder@d0sgif.fnal.gov>: * libgcc2.c (__get_saved_pc): New. (__eh_type, __eh_pc): Deleted. (__eh_pcnthrow): Use __get_saved_pc() instead of __eh_pc. (__get_dynamic_handler_chain): Move __dynamic_handler_chain inside this fcn. cp/: Thu Dec 11 20:43:33 1997 Teemu Torma <tot@trema.com> * decl.c (ptr_ptr_type_node): Define. (init_decl_processing): Initialize it. * cp-tree.h: Declare it. * exception.cc (__cp_exception_info): Use __get_eh_info. (__cp_push_exception): Ditto. (__cp_pop_exception): Ditto. From Scott Snyder <snyder@d0sgif.fnal.gov>: * except.c (expand_builtin_throw): Use get_saved_pc_ref instead of saved_pc. (init_exception_processing): Removed saved_pc initialization. From-SVN: r17052
1997-12-06Merge from gcc-2.8Jeff Law1-20/+4
From-SVN: r16987
1997-11-07frame.c (add_fdes, count_fdes): Go back to checking pc_begin for linked once ↵Jason Merrill1-2/+2
FDEs. * frame.c (add_fdes, count_fdes): Go back to checking pc_begin for linked once FDEs. From-SVN: r16359
1997-11-02Update mainline egcs to gcc2 snapshot 971021.Jeff Law1-0/+1
From-SVN: r16278
1997-10-26dwarf2out.c (output_call_frame_info): The CIE pointer is now a 32 bit ↵Jason Merrill1-17/+29
PC-relative offset. * dwarf2out.c (output_call_frame_info): The CIE pointer is now a 32 bit PC-relative offset. The exception range table pointer is now in the CIE. * frame.c (dwarf_cie, dwarf_fde): Rename CIE_pointer to CIE_delta. (count_fdes, add_fdes, get_cie): Adjust. (cie_info, extract_cie_info, __frame_state_for): Adjust eh_ptr uses. From H.J. Lu: * frame.c (count_fdes, add_fdes): Skip linked once FDE entries. From-SVN: r16192
1997-10-07frame.c (__frame_state_for): Execute the FDE insns until the current pc ↵Andreas Schwab1-1/+1
value is strictly bigger than the... * frame.c (__frame_state_for): Execute the FDE insns until the current pc value is strictly bigger than the target pc value. From-SVN: r15863
1997-09-28frame.c: Remove last change.Jeffrey A Law1-1/+0
* frame.c: Remove last change. * dwarf2.h: Remove last change. * tree.h: Add declarations of DWARF2 unwind info support functions. As requested by Jason. From-SVN: r15751
1997-09-26frame.c: Include gansidecl.h for PROTO.Andreas Schwab1-0/+1
* frame.c: Include gansidecl.h for PROTO. * dwarf2out.c: Move inclusion of dwarf2.h down so that PROTO is defined. Don't declare dwarf2out_cfi_label here. * dwarf2.h: Add declarations of DWARF2 unwind info support functions. * m68k.c: Include dwarf2.h. (output_function_prologue): Add dwarf2 support. * m68k.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_REGNUM): New macros. (INCOMING_FRAME_SP_OFFSET): Likewise. Update m68k patch from Andreas. From-SVN: r15740
1997-09-20* frame.c (__deregister_frame): Check properly for initialized object.Jason Merrill1-1/+2
From-SVN: r15601
1997-09-10dwarf2 EH supportJason Merrill1-0/+607
From-SVN: r15255