diff options
author | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-06-07 02:27:51 +0000 |
---|---|---|
committer | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-06-07 02:27:51 +0000 |
commit | df946265e70e7333ea2175155d7cb497f827444f (patch) | |
tree | 73c8dc5478aae00eb8cc397f7cd0b011add7148d /gcc/frame.h | |
parent | 13c13ccb728a7f0a0564585f9a99828b01767ec1 (diff) | |
download | gcc-df946265e70e7333ea2175155d7cb497f827444f.tar.gz |
Fix gas/gcc unwind/EH discrepancies. And a shared library build problem.
* frame.h (struct unwind_info_ptr): Collapse version, flags, and length
fields into header field.
(IA64_UNW_HDR_LENGTH, IA64_UNW_HDR_FLAGS, IA64_UNW_HDR_VERSION): New
macros to access length, flags, and version info from header field.
* config/ia64/crtbegin.asm (__do_frame_setup_aux): Delete here.
...
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34441 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/frame.h')
-rw-r--r-- | gcc/frame.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/frame.h b/gcc/frame.h index 384e5eb66ca..85c5e436d5b 100644 --- a/gcc/frame.h +++ b/gcc/frame.h @@ -256,12 +256,13 @@ typedef struct ia64_frame_state typedef struct unwind_info_ptr { - unsigned short version; - unsigned short flags; - unsigned int length; + unsigned long header; /* version, flags, & length */ unsigned char unwind_descriptors[1]; } unwind_info_ptr; +#define IA64_UNW_HDR_LENGTH(x) ((x) & 0x00000000ffffffffUL) +#define IA64_UNW_HDR_FLAGS(x) (((x) >> 32) & 0xffffUL) +#define IA64_UNW_HDR_VERSION(x) (((x) >> 48) & 0xffffUL) extern unwind_info_ptr *__build_ia64_frame_state (unsigned char *, ia64_frame_state *, void *, |