This is the mail archive of the
libstdc++-cvs@gcc.gnu.org
mailing list for the libstdc++ project.
gcc ./ChangeLog.csl-arm gcc/ChangeLog.csl-arm ...
- From: pbrook at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org, libstdc++-cvs at gcc dot gnu dot org
- Date: 22 Sep 2004 15:40:34 -0000
- Subject: gcc ./ChangeLog.csl-arm gcc/ChangeLog.csl-arm ...
CVSROOT: /cvs/gcc
Module name: gcc
Branch: csl-arm-branch
Changes by: pbrook@gcc.gnu.org 2004-09-22 15:40:34
Modified files:
. : ChangeLog.csl-arm
gcc : ChangeLog.csl-arm Makefile.in except.c
target-def.h target.h unwind-c.c unwind.h
gcc/config/arm : arm.c arm.h bpabi.h elf.h lib1funcs.asm t-bpabi
t-symbian
gcc/doc : tm.texi
libstdc++-v3/libsupc++: Makefile.am Makefile.in eh_catch.cc
eh_personality.cc eh_throw.cc
unwind-cxx.h
Added files:
gcc : unwind-arm.h
gcc/config/arm : libunwind.S unwind-arm.c
libstdc++-v3/libsupc++: eh_arm.cc eh_call.cc
Log message:
* Makefile.in (USER_H): Add unwind-arm.h.
* except.c (fnspec_ttable_indirect): Add.
(init_eh): Set it.
(add_ehspec_entry): Handle fnspec_ttable_indirect.
(output_ttype): New function.
(output_function_exception_table): Use it. Handle
fnspec_ttable_indirect.
* target-def.h (TARGET_ASM_TTYPE): Define.
(TARGET_EH_FNSPEC_TTABLE_INDIRECT): Ditto.
* target.h (struct gcc_target): Add asm_out.ttype and
eh_fnspec_ttable_indirect.
* unwind-arm.h: New file.
* unwind-c.c (CONTINUE_UNWINDING): Define.
(PERSONALITY_FUNCTION): Add ARM EABI prototype and initialization
code. Use CONTINUE_UNWINDING.
* unwind.h: Include unwind-arm.h when using ARM EABI unwinder.
* config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
(arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
(TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE): Define.
(TARGET_EH_FNSPEC_TTABLE_INDIRECT): Ditto.
(thumb_pushpop, thumb_output_function_prologue): Output frame
unwinding directives.
* config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
!TARGET_UNWIND_INFO.
* config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
* config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
ASM_DECLARE_FUNCTION_SIZE): Output frame unwinding annotatons.
* config/arm/lib1funcs.asm: Include libunwind.s
* config/arm/libunwind.S: New file.
* config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
(LIB2ADDEH, LIB2ADDEHDEP): Set.
* config/arm/t-symbian (LIB2ADDEH, LIB2ADDEHDEP): Set.
* config/arm/unwind-arm.c: New file.
* doc/tm.texi: Document TARGET_ASM_TTYPE and
TARGET_EH_FNSPEC_TTABLE_INDIRECT.
libstdc++/
Add support for ARM EABI unwinding library.
* libsupc++/Makefile.am (sources): Add eh_arm.cc and eh_call.cc.
* libsupc++/Makefile.in: Regenerate.
* libsupc++/eh_arm.cc: New file.
* libsupc++/eh_call.cc: New file.
* libsupc++/eh_catch.cc (__cxa_begin_catch): Call _Unwind_Complete.
Use __is_gxx_exception_class.
(__cxa_end_catch): Use __is_gxx_exception_class.
* libsupc++/eh_personality.cc (NO_SIZE_OF_ENCODED_VALUE): Define if
using ARM EABI unwinder.
(_throw_typet): Declare.
(check_exception_spec, get_ttype_entry, get_adjusted_ptr): Add
ARM EABI implementations.
(CONTINUE_UNWINDING): Define.
(PERSONALITY_FUNCTION): Use CONTINUE_UNWINDING and
__cxa_call_terminate. Add Support for ARM EABI. Including changes
to function prototype, initialization code, exception object format,
and calling __cxa_begin_cleanup.
(__cxa_call_unexpected): Disable on arm systems.
* libsupc++/eh_throw.cc (__cxa_throw): Use __GXX_INIT_EXCEPTION_CLASS.
(__cxa_rethrow): Use __is_gxx_exception_class. Always call
_Unwind_RaiseException on ARM EABI targets.
* libsupc++/unwind-cxx.h (__cxa_call_terminate): Declare.
(__cxa_type_match, __cxa_begin_cleanup, __cxa_end_cleanup): Declare.
(__is_gxx_exception_class, __GXX_INIT_EXCEPTION_CLASS): Define.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/ChangeLog.csl-arm.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.1.2.7&r2=1.1.2.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/unwind-arm.h.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.csl-arm.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.1.2.35&r2=1.1.2.36
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/Makefile.in.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.1185.2.5&r2=1.1185.2.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/except.c.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.253.4.4&r2=1.253.4.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/target-def.h.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.59.2.10&r2=1.59.2.11
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/target.h.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.67.2.12&r2=1.67.2.13
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/unwind-c.c.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.5&r2=1.5.8.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/unwind.h.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.13.4.2&r2=1.13.4.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/arm/libunwind.S.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/arm/unwind-arm.c.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/arm/arm.c.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.303.2.52&r2=1.303.2.53
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/arm/arm.h.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.210.2.40&r2=1.210.2.41
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/arm/bpabi.h.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.1.4.7&r2=1.1.4.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/arm/elf.h.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.44.8.4&r2=1.44.8.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/arm/lib1funcs.asm.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.26.4.8&r2=1.26.4.9
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/arm/t-bpabi.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.1.4.1&r2=1.1.4.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/arm/t-symbian.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.1.2.4&r2=1.1.2.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/doc/tm.texi.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.264.2.17&r2=1.264.2.18
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/libsupc++/eh_arm.cc.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/libsupc++/eh_call.cc.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/libsupc++/Makefile.am.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.48.4.2&r2=1.48.4.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/libsupc++/Makefile.in.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.104.4.6&r2=1.104.4.7
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/libsupc++/eh_catch.cc.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.5.10.3&r2=1.5.10.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/libsupc++/eh_personality.cc.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.13.8.1&r2=1.13.8.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/libsupc++/eh_throw.cc.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.7.8.1&r2=1.7.8.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/libsupc++/unwind-cxx.h.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.6.8.1&r2=1.6.8.2