diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-03-04 07:07:12 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-03-04 07:07:12 +0000 |
commit | 706f081862543c62308011a112e7549a12fa88e8 (patch) | |
tree | 01ee0349453e355702c314fbf8bd839a81f7127b /gcc/unwind-dw2.h | |
parent | 17c67d089524450757f96ed2b5a91feba5c4642d (diff) | |
download | gcc-706f081862543c62308011a112e7549a12fa88e8.tar.gz |
* unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
and REG_SAVED_VAL_EXP constants.
* unwind-dw2.c (struct _Unwind_Context): Add by_value array.
(_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
Handle regs stored by value.
(_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
(execute_cfa_program): Handle DW_CFA_val_offset,
DW_CFA_val_offset_sf and DW_CFA_val_expression.
(uw_update_context_1): Handle REG_SAVED_REG with regs stored by
value specially. Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
(uw_install_context_1): Handle target regs stored by value.
* gcc.target/i386/cleanup-1.c: New test.
* gcc.target/i386/cleanup-2.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111705 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/unwind-dw2.h')
-rw-r--r-- | gcc/unwind-dw2.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/unwind-dw2.h b/gcc/unwind-dw2.h index 4851067fdfb..34a378b7e18 100644 --- a/gcc/unwind-dw2.h +++ b/gcc/unwind-dw2.h @@ -53,7 +53,9 @@ typedef struct REG_UNSAVED, REG_SAVED_OFFSET, REG_SAVED_REG, - REG_SAVED_EXP + REG_SAVED_EXP, + REG_SAVED_VAL_OFFSET, + REG_SAVED_VAL_EXP } how; } reg[DWARF_FRAME_REGISTERS+1]; |