summaryrefslogtreecommitdiff
path: root/libgcc/config/i386/value-unwind.h
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2011-08-08 13:26:06 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2011-08-08 06:26:06 -0700
commitcca2207a2dedd90d904e15094e02df0529daacd0 (patch)
treebede109f33fbea8f1ab9d058c05444a8addae8ba /libgcc/config/i386/value-unwind.h
parentb6ee5bef6e5105339c907c68e1885971a8c0c500 (diff)
downloadgcc-cca2207a2dedd90d904e15094e02df0529daacd0.tar.gz
Fix Dwarf unwind library for UNITS_PER_WORD > sizeof (void *)
gcc/ 2011-08-08 H.J. Lu <hongjiu.lu@intel.com> PR other/48007 * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86. * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned. (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise. * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New. (_Unwind_Context_Reg_Val): Likewise. (_Unwind_Get_Unwind_Word): Likewise. (_Unwind_Get_Unwind_Context_Reg_Val): Likewise. (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field. (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT for EXTENDED_CONTEXT_BIT. (__frame_state_for): Likewise. (uw_init_context_1): Likewise. (_Unwind_GetGR): Updated. (_Unwind_SetGR): Likewise. (_Unwind_GetGRPtr): Likewise. (_Unwind_SetGRPtr): Likewise. (_Unwind_SetGRValue): Likewise. (_Unwind_GRByValue): Likewise. (uw_install_context_1): Likewise. * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and ASSUME_EXTENDED_UNWIND_CONTEXT. * doc/tm.texi: Regenerated. libgcc/ 2011-08-08 H.J. Lu <hongjiu.lu@intel.com> PR other/48007 * config/i386/value-unwind.h: New. From-SVN: r177563
Diffstat (limited to 'libgcc/config/i386/value-unwind.h')
-rw-r--r--libgcc/config/i386/value-unwind.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/libgcc/config/i386/value-unwind.h b/libgcc/config/i386/value-unwind.h
new file mode 100644
index 00000000000..0dceb5c85c6
--- /dev/null
+++ b/libgcc/config/i386/value-unwind.h
@@ -0,0 +1,26 @@
+/* Store register values as _Unwind_Word type in DWARF2 EH unwind context.
+ Copyright (C) 2011
+ Free Software Foundation, Inc.
+
+ This file is part of GCC.
+
+ GCC is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 3, or (at your
+ option) any later version.
+
+ GCC is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+
+ You should have received a copy of the GNU General Public License and
+ a copy of the GCC Runtime Library Exception along with this program;
+ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Define this macro if the target stores register values as _Unwind_Word
+ type in unwind context. Only enable it for x32. */
+#if defined __x86_64 && !defined __LP64__
+# define REG_VALUE_IN_UNWIND_CONTEXT
+#endif