summaryrefslogtreecommitdiff
path: root/gcc/libgcc2.c
Commit message (Collapse)AuthorAgeFilesLines
...
* Fri Oct 31 01:45:31 1997 Jason Merrill <jason@yorick.cygnus.com>jason1997-10-311-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libgcc2.c (L_eh): Define __eh_pc. Replace __eh_type with generic pointer __eh_info. Fri Oct 31 01:47:57 1997 Jason Merrill <jason@yorick.cygnus.com> Support for nested exceptions. * tinfo2.cc (__is_pointer): New fn. * exception.cc (struct cp_eh_info): Define. (__cp_exception_info, __uncatch_exception): New fns. (__cp_push_exception, __cp_pop_exception): New fns. * except.c: Lose saved_throw_{type,value,cleanup,in_catch}. Lose empty_fndecl. (init_exception_processing): Likewise. __eh_pc is now external. (push_eh_info): New fn. (get_eh_{info,value,type,caught}): New fns. (push_eh_cleanup): Just call __cp_pop_exception. (expand_start_catch_block): Use push_eh_info. Start the eh region sooner. (expand_end_eh_spec): Use push_eh_info. (expand_throw): Call __cp_push_exception to set up the exception info. Just pass the destructor or 0 as the cleanup. Call __uncatch_exception when we rethrow. (expand_builtin_throw): Don't refer to empty_fndecl. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16248 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree.c (restore_tree_status): Also free up temporary storagejason1997-10-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | when we finish a toplevel function. (dump_tree_statistics): Print stats for backend obstacks. * libgcc2.c (__throw): Don't copy the return address. * dwarf2out.c (expand_builtin_dwarf_reg_size): Ignore return address. * except.c (exceptions_via_longjmp): Initialize to 2 (uninitialized). * toplev.c (main): Initialize exceptions_via_longjmp. * tree.c: Add extra_inline_obstacks. (save_tree_status): Use it. (restore_tree_status): If this is a toplevel inline obstack and we didn't want to save anything on it, recycle it. (print_inline_obstack_statistics): New fn. * function.c (pop_function_context_from): Pass context to restore_tree_status. * obstack.h (obstack_empty_p): New macro. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16050 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.c (__throw): Fix thinko.jason1997-09-291-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15781 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-decl.c (init_decl_processing): Add __builtin_dwarf_reg_size.jason1997-09-271-6/+18
| | | | | | | | | | | | * tree.h (built_in_function): Likewise. * expr.c (expand_builtin): Likewise. * except.h: Likewise. * dwarf2out.c (expand_builtin_dwarf_reg_size): New fn. * libgcc2.c (copy_reg): New fn. (__throw): Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15750 138bc75d-0d04-0410-961f-82ee72b054a4
* * final.c (final_scan_insn): Hand BARRIERs off to the dwarf2 code.jason1997-09-181-9/+6
| | | | | | | | | | | | * dwarf2out.c (dwarf2out_frame_debug): Pass the whole insn along. (dwarf2out_stack_adjust): A BARRIER resets the args space to 0. * except.c (end_eh_unwinder): Subtract 1 from return address. * libgcc2.c (__throw): Likewise. (find_exception_handler): Don't change PC here. Compare end with >. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15554 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.c (find_exception_handler): Subtract one from our PC whenjason1997-09-181-0/+4
| | | | | | | | | | looking for a handler, to avoid hitting the beginning of the next region. * except.c (expand_builtin_set_return_addr_reg): Use force_operand. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15534 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.c (find_exception_handler): Not found is -1.jason1997-09-171-4/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15504 138bc75d-0d04-0410-961f-82ee72b054a4
* dwarf2 EH supportjason1997-09-161-111/+349
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15464 138bc75d-0d04-0410-961f-82ee72b054a4
* Clean up patches for delta88 nested function support.wilson1997-09-101-2/+2
| | | | | | | | | | | * m88k/m88k.c (struct option): Rename to struct options. * m88k/dolph.h (INITIALIZE_TRAMPOLINE): Delete here. * m88k/sysv3.h (INITIALIZE_TRAMPOLINE): Delete ifdef and comments. * libgcc2.c (__enable_execute_stack): Check for __sysV88__ not __DOLPHIN__ or sysV88. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15393 138bc75d-0d04-0410-961f-82ee72b054a4
* * m88k/sysv3.h (INITIALIZE_TRAMPOLINE) Define.law1997-09-101-2/+2
| | | | | | | * libgcc2.c (__enable_execute_stack): Provide for sysV88 too. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15256 138bc75d-0d04-0410-961f-82ee72b054a4
* (_trampoline): Rework last change; both getpagesize and mprotect arekenner1997-08-021-13/+15
| | | | | | | in cygwin32. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14636 138bc75d-0d04-0410-961f-82ee72b054a4
* Don't compile getpagesize if __CYGWIN32__ian1997-07-311-0/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14571 138bc75d-0d04-0410-961f-82ee72b054a4
* (_trampoline): Add stdcall attribute to VirtualProtect on i386.kenner1997-07-021-0/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14371 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.c (__eh_type): Remove `extern' to make this a definition.mrs1997-06-191-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14260 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.c (__eh_pcnthrow): Add support -fno-sjlj-exceptionsmrs1997-06-181-3/+3
| | | | | | | | | -fPIC exception handling on the SPARC. * sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise. * libgcc2.c (__eh_ffetmnpc): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14252 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.c (__eh_ffetmnpc): Add support for machines that cannotmrs1997-06-061-0/+10
| | | | | | | | | | | | | access globals after throw's epilogue when -fno-sjlj-exceptions is used. * rs6000.c (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise. * mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise. (INITIAL_ELIMINATION_OFFSET): Fix RETURN_ADDRESS_POINTER_REGNUM for 64 bit words, with 32 bit pointers and variable endianness. Fixes throwing across shared library lines (useful at times on mips and rs6000) git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14168 138bc75d-0d04-0410-961f-82ee72b054a4
* (atexit): Cast malloc and realloc calls.kenner1997-05-181-3/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14077 138bc75d-0d04-0410-961f-82ee72b054a4
* * except.c (start_dynamic_handler): Fix so that we can usemrs1997-05-071-4/+12
| | | | | | | | | | | | | | | | __builtin_setjmp, and default to using __builtin_setjmp instead of setjmp. * expr.c (expand_builtin_setjmp): New routine, split out from existing inline code from expand_builtin. (expand_builtin): Split out code into expand_builtin_setjmp. * expr.h (expand_builtin_setjmp): Add declaration. * libgcc2.c (__sjthrow): Default to using __builtin_setjmp instead of setjmp. (__sjpopnthrow): Likewise. * optabs.c (init_optabs): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14045 138bc75d-0d04-0410-961f-82ee72b054a4
* reformat a little to match GNU coding standards.mrs1997-05-061-14/+14
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14024 138bc75d-0d04-0410-961f-82ee72b054a4
* Add setjmp/longjmp exception handling.mrs1997-04-231-0/+166
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13968 138bc75d-0d04-0410-961f-82ee72b054a4
* (L_bb, L_exit): Use 0 rather than NULL for null pointers.kenner1997-04-131-5/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13883 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.c (find_exception_table): Fix to logic to deal withmrs1997-04-021-45/+43
| | | | | | | | functions that are in their own section, such as template instantiations, that cause overlapping EH tables. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13830 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.c (__bb_exit_func): Support gcov style output.dje1997-03-281-6/+127
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13818 138bc75d-0d04-0410-961f-82ee72b054a4
* (__negdi2, __lshrdi3, __ashldi3, __ashrdi3, __ffsdi2):kenner1997-02-161-94/+44
| | | | | | | | | | | | | | | | Use ANSI style definition with full prototype. (__muldi3, __udiv_w_sdiv, __udivmoddi4, __divdi3, __moddi3) : Likewise. (__udivmoddi4, __udivdi3, __cmpdi2, __ucmpdi2) : Likewise. (__fixunstfdi, __fixtfdi, __fixunsxfdi, __fixxfdi) : Likewise. (__fixunsdfdi, __fixdfdi, __floatdixf, __floatditf) : Likewise. (__floatdidf, __floatdisf, __fixunsxfsi, __fixunsdfsi) : Likewise. (__gcc_bcmp, __eprintf, gopen, gclose, __bb_init_file) : Likewise. (__bb_init_trace_func, __clear_cache, mprotect) : Likewise. (__enable_execute_stack, cacheflush, exit) : Likewise. (find_exception_table, __find_first_exception_table_match) : Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13658 138bc75d-0d04-0410-961f-82ee72b054a4
* i formatting tweaksmrs1997-02-071-14/+9
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13614 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.c: Remove extern for malloc and realloc.mrs1997-01-311-3/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13573 138bc75d-0d04-0410-961f-82ee72b054a4
* (cacheflush): Add SONY NEWS-OS 4.2 version.kenner1996-12-111-0/+28
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13279 138bc75d-0d04-0410-961f-82ee72b054a4
* xmerrill1996-11-111-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13122 138bc75d-0d04-0410-961f-82ee72b054a4
* * crtstuff.c (__do_global_dtors_aux): Allow finalization code tomrs1996-10-241-3/+6
| | | | | | | | be run more than once. * libgcc2.c (__do_global_dtors): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13023 138bc75d-0d04-0410-961f-82ee72b054a4
* irix6 ctorsmerrill1996-10-161-5/+10
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12971 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.c (__throw): New routine.mrs1996-08-161-0/+15
| | | | | | | | | | | | | | | (__eh_pc): New data object for exception handling. * except.c (eh_saved_pc): New object so we can call assemble_external. (expand_internal_throw_indirect): Call assemble_external for __eh_pc. (end_eh_unwinder): Ditto. (init_eh): Initialize eh_saved_pc. fixes eh6.C on rs6000 and alpha git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12646 138bc75d-0d04-0410-961f-82ee72b054a4
* install EH codemrs1996-07-231-14/+22
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12549 138bc75d-0d04-0410-961f-82ee72b054a4
* formatting tweaksmrs1996-07-031-73/+71
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12390 138bc75d-0d04-0410-961f-82ee72b054a4
* (__dummy): New function.kenner1996-03-201-0/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11574 138bc75d-0d04-0410-961f-82ee72b054a4
* (L_bb/atexit, onexit): Declarations replaced by #include'ing "gbl-ctors.h".kenner1996-03-041-14/+55
| | | | | | | | (L_exit/atexit): New function. (L_exit/exit): Call any registered functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11432 138bc75d-0d04-0410-961f-82ee72b054a4
* Make libgcc2 build under AIX3.2.5meissner1996-02-031-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11171 138bc75d-0d04-0410-961f-82ee72b054a4
* (_bb_init_prg): Cast arg to bzero to (char *).kenner1995-12-271-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10889 138bc75d-0d04-0410-961f-82ee72b054a4
* (struct bb): Add flags field.kenner1995-12-241-2/+732
| | | | | | | | | | (HAVE_POPEN): Test new define. (struct __bb, struct bb_{edge,func}): New structs. (__bb_init_{prg,file},__bb_{init,exit}_trace_func,__bb_trace_ret, (__bb_trace_func{,_ret},gopen,gclose): New functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10850 138bc75d-0d04-0410-961f-82ee72b054a4
* * libgcc2.c (__empty): An empty function used by the C++ frontend formrs1995-12-181-0/+5
| | | | | | | | | | | | defaulting cleanup actions. * tree.c (save_tree_status, restore_tree_status): Save and restore temporary_firstobj, so that in progress objects that live on the temporary obstack are not reallocated, if we save and restore the tree status in their lifetime. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10799 138bc75d-0d04-0410-961f-82ee72b054a4
* (trampoline): Add getpagesize and mprotect for WINNT.kenner1995-11-261-0/+33
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10605 138bc75d-0d04-0410-961f-82ee72b054a4
* (__{C,D}TOR_LIST): For AIX, initialize these arrays to 0,0, just likekenner1995-11-071-1/+1
| | | | | | | NeXT to avoid a warning message from the AIX 4.1 linker. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10567 138bc75d-0d04-0410-961f-82ee72b054a4
* (L_eh: __unwind_function): Implement for VAX.kenner1995-10-291-0/+16
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10539 138bc75d-0d04-0410-961f-82ee72b054a4
* (__unwind_function): Provide a default definition for implementationskenner1995-10-261-9/+10
| | | | | | | that don't yet have a function unwinder. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10524 138bc75d-0d04-0410-961f-82ee72b054a4
* (__fixuns[xds]fsi): #undef MIN and MAX before #include of limits.h.kenner1995-10-221-0/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10506 138bc75d-0d04-0410-961f-82ee72b054a4
* (__udiv_w_sdiv): If we don't have sdiv_qrnnd, define dummy variant ofkenner1995-10-191-0/+8
| | | | | | | __udiv_w_sdiv. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10476 138bc75d-0d04-0410-961f-82ee72b054a4
* Include longlong.h.kenner1995-08-311-1/+12
| | | | | | | | | [L_udivdi3 || L_divdi3 || L_umoddi3 || L_moddi3] (__udivmoddi4): Define this `static inline' when defining these, so they all remain leaf functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10305 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix spelling errors.kenner1995-08-281-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10289 138bc75d-0d04-0410-961f-82ee72b054a4
* Update FSF address.kenner1995-06-151-1/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9961 138bc75d-0d04-0410-961f-82ee72b054a4
* (_floatdidf): Correctly set float sizes.kenner1995-06-101-11/+21
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9920 138bc75d-0d04-0410-961f-82ee72b054a4
* (L_eh, i386): Remove in-line comments in assembly code--the '#'kenner1995-05-251-4/+4
| | | | | | | character is not valid for the SYSV as. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9817 138bc75d-0d04-0410-961f-82ee72b054a4