summaryrefslogtreecommitdiff
path: root/gcc/frame.h
diff options
context:
space:
mode:
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>2000-06-07 02:27:51 +0000
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>2000-06-07 02:27:51 +0000
commitdf946265e70e7333ea2175155d7cb497f827444f (patch)
tree73c8dc5478aae00eb8cc397f7cd0b011add7148d /gcc/frame.h
parent13c13ccb728a7f0a0564585f9a99828b01767ec1 (diff)
downloadgcc-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.h7
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 *,