diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2011-08-08 13:26:06 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2011-08-08 06:26:06 -0700 |
commit | cca2207a2dedd90d904e15094e02df0529daacd0 (patch) | |
tree | bede109f33fbea8f1ab9d058c05444a8addae8ba /gcc/doc/tm.texi | |
parent | b6ee5bef6e5105339c907c68e1885971a8c0c500 (diff) | |
download | gcc-cca2207a2dedd90d904e15094e02df0529daacd0.zip gcc-cca2207a2dedd90d904e15094e02df0529daacd0.tar.gz gcc-cca2207a2dedd90d904e15094e02df0529daacd0.tar.bz2 |
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 'gcc/doc/tm.texi')
-rw-r--r-- | gcc/doc/tm.texi | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 097531f..74a2324 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -3725,6 +3725,24 @@ return @code{@var{regno}}. @end defmac +@defmac REG_VALUE_IN_UNWIND_CONTEXT + +Define this macro if the target stores register values as +@code{_Unwind_Word} type in unwind context. It should be defined if +target register size is larger than the size of @code{void *}. The +default is to store register values as @code{void *} type. + +@end defmac + +@defmac ASSUME_EXTENDED_UNWIND_CONTEXT + +Define this macro to be 1 if the target always uses extended unwind +context with version, args_size and by_value fields. If it is undefined, +it will be defined to 1 when @code{REG_VALUE_IN_UNWIND_CONTEXT} is +defined and 0 otherwise. + +@end defmac + @node Elimination @subsection Eliminating Frame Pointer and Arg Pointer |