From 1e874273f8d6e8a7bdfe7bc76fceb7d20d1f1ef2 Mon Sep 17 00:00:00 2001 From: Paul Brook Date: Tue, 13 Sep 2011 12:48:33 +0000 Subject: arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. 2011-09-13 Paul Brook gcc/ * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. (ARM_TARGET2_DWARF_FORMAT): Provide default definition. * config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define. * config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define. * config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define. * config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h. * config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h. * config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code enabling unwind tables. (c6x_debug_unwind_info): New function. (TARGET_ARM_EABI_UNWINDER): Define. (TARGET_DEBUG_UNWIND_INFO): Define. * config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define. (TARGET_EXTRA_CFI_SECTION): Remove. * config/c6x/t-c6x-elf (EXTRA_HEADERS): Set. * ginclude/unwind-arm-common.h: New file. libgcc/ * config.host (tic6x-*-*): Add c6x/t-c6x-elf. Set unwind_header. * unwind-c.c (PERSONALITY_FUNCTION): Use UNWIND_POINTER_REG. * unwind-arm-common.inc: New file. * config/arm/unwind-arm.c: Use unwind-arm-common.inc. * config/arm/unwind-arm.h: Use unwind-arm-common.h. (_GLIBCXX_OVERRIDE_TTYPE_ENCODING): Define. * config/c6x/libunwind.S: New file. * config/c6x/pr-support.c: New file. * config/c6x/unwind-c6x.c: New file. * config/c6x/unwind-c6x.h: New file. * config/c6x/t-c6x-elf: New file. libstdc++-v3/ * libsupc++/eh_arm.cc (__cxa_end_cleanup): Add C6X implementation. * libsupc++/eh_call.cc (__cxa_call_unexpected): Set rtti_base. * libsupc++/eh_personality.cc (NO_SIZE_OF_ENCODED_VALUE): Remove __ARM_EABI_UNWINDER__ check. (parse_lsda_header): Check _GLIBCXX_OVERRIDE_TTYPE_ENCODING. (get_ttype_entry): Use generic implementation on ARM EABI. (check_exception_spec): Use _Unwind_decode_typeinfo_ptr and UNWIND_STACK_REG. (PERSONALITY_FUNCTION): Set ttype_base. From-SVN: r178808 --- libgcc/unwind-c.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'libgcc/unwind-c.c') diff --git a/libgcc/unwind-c.c b/libgcc/unwind-c.c index 86b9f557048..bd4941db3e2 100644 --- a/libgcc/unwind-c.c +++ b/libgcc/unwind-c.c @@ -130,10 +130,10 @@ PERSONALITY_FUNCTION (int version, /* The dwarf unwinder assumes the context structure holds things like the function and LSDA pointers. The ARM implementation caches these in - the exception header (UCB). To avoid rewriting everything we make the - virtual IP register point at the UCB. */ + the exception header (UCB). To avoid rewriting everything we make a + virtual scratch register point at the UCB. */ ip = (_Unwind_Ptr) ue_header; - _Unwind_SetGR (context, 12, ip); + _Unwind_SetGR (context, UNWIND_POINTER_REG, ip); #else if (version != 1) return _URC_FATAL_PHASE1_ERROR; -- cgit v1.2.1