1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-11-29 18:27:37 +01:00

(_U_dyn_region_info_size): Define it in a more straight-forward manner.

(_U_dyn_op_label_state): Drop "qp" and "when" arguments.
(_U_dyn_op_copy_state): Ditto.
(_U_dyn_op_stop): Define qp to _U_QP_TRUE and when to -1.
(_U_QP_TRUE): New macro.

(Logical change 1.56)
This commit is contained in:
mostang.com!davidm 2003-02-27 09:58:57 +00:00
parent 9df94711bf
commit 9430d35c9b

View file

@ -1,5 +1,5 @@
/* libunwind - a platform-independent unwind library /* libunwind - a platform-independent unwind library
Copyright (C) 2002 Hewlett-Packard Co Copyright (C) 2002-2003 Hewlett-Packard Co
Contributed by David Mosberger-Tang <davidm@hpl.hp.com> Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of libunwind. This file is part of libunwind.
@ -146,8 +146,8 @@ unw_dyn_info_list_t;
/* Return the size (in bytes) of an unw_dyn_region_info_t structure that can /* Return the size (in bytes) of an unw_dyn_region_info_t structure that can
hold OP_COUNT ops. */ hold OP_COUNT ops. */
#define _U_dyn_region_info_size(op_count) \ #define _U_dyn_region_info_size(op_count) \
(sizeof (unw_dyn_region_info_t) \ ((char *) (((unw_dyn_region_info_t *) NULL)->op + (op_count)) \
+ (op_count > 0) ? ((op_count) - 1) * sizeof (unw_dyn_op_t) : 0) - (char *) NULL)
/* Register the unwind info for a single procedure. /* Register the unwind info for a single procedure.
This routine is NOT signal-safe. */ This routine is NOT signal-safe. */
@ -186,14 +186,19 @@ extern void _U_dyn_cancel (unw_dyn_info_t *di);
#define _U_dyn_op_pop_frames(op, qp, when, num_frames) \ #define _U_dyn_op_pop_frames(op, qp, when, num_frames) \
(*(op) = _U_dyn_op (UNW_DYN_POP_FRAMES, (qp), (when), 0, (num_frames))) (*(op) = _U_dyn_op (UNW_DYN_POP_FRAMES, (qp), (when), 0, (num_frames)))
#define _U_dyn_op_label_state(op, qp, when, label) \ #define _U_dyn_op_label_state(op, label) \
(*(op) = _U_dyn_op (UNW_DYN_LABEL_STATE, (qp), (when), 0, (label))) (*(op) = _U_dyn_op (UNW_DYN_LABEL_STATE, _U_QP_TRUE, -1, 0, (label)))
#define _U_dyn_op_copy_state(op, qp, when, label) \ #define _U_dyn_op_copy_state(op, label) \
(*(op) = _U_dyn_op (UNW_DYN_COPY_STATE, (qp), (when), 0, (label))) (*(op) = _U_dyn_op (UNW_DYN_COPY_STATE, _U_QP_TRUE, -1, 0, (label)))
#define _U_dyn_op_alias(op, qp, when, addr) \ #define _U_dyn_op_alias(op, qp, when, addr) \
(*(op) = _U_dyn_op (UNW_DYN_ALIAS, (qp), (when), 0, (addr))) (*(op) = _U_dyn_op (UNW_DYN_ALIAS, (qp), (when), 0, (addr)))
#define _U_dyn_op_stop(op) \ #define _U_dyn_op_stop(op) \
((op)->tag = UNW_DYN_STOP) (*(op) = _U_dyn_op (UNW_DYN_STOP, _U_QP_TRUE, -1, 0, 0))
/* The target-dependent qualifying predicate which is always TRUE. On
IA-64, that's p0 (0), on non-predicated architectures, the value is
ignored. */
#define _U_QP_TRUE _U_TDEP_QP_TRUE