aboutsummaryrefslogtreecommitdiff
path: root/gcc/frame.h
diff options
context:
space:
mode:
authorJames E. Wilson <wilson@cygnus.com>2000-06-07 02:27:51 +0000
committerJim Wilson <wilson@gcc.gnu.org>2000-06-06 19:27:51 -0700
commitc0240be4630a6b7440fe0fd5be5d381e14d0dae7 (patch)
tree73c8dc5478aae00eb8cc397f7cd0b011add7148d /gcc/frame.h
parent24c40136c3e06831cf63df58fd5faee1dbbb0d56 (diff)
downloadgcc-c0240be4630a6b7440fe0fd5be5d381e14d0dae7.zip
gcc-c0240be4630a6b7440fe0fd5be5d381e14d0dae7.tar.gz
gcc-c0240be4630a6b7440fe0fd5be5d381e14d0dae7.tar.bz2
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. ... From-SVN: r34441
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 384e5eb..85c5e43 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 *,