From 6a269233f8cdecaa9da8964fef6b4b60f2054bd4 Mon Sep 17 00:00:00 2001 From: "hp.com!davidm" Date: Thu, 6 May 2004 20:24:01 +0000 Subject: [PATCH] (struct ia64_global_unwind_state): Group together in a single struct the read-only registers whose addresses may be used as save-locations. (Logical change 1.229) --- include/tdep-ia64.h | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/include/tdep-ia64.h b/include/tdep-ia64.h index 37d7cff2..9bf027d6 100644 --- a/include/tdep-ia64.h +++ b/include/tdep-ia64.h @@ -179,9 +179,21 @@ struct ia64_global_unwind_state they're saved). */ const unsigned char save_order[8]; - unw_word_t r0; - unw_fpreg_t f0, f1_le, f1_be, nat_val_le; - unw_fpreg_t nat_val_be, int_val_le, int_val_be; + /* + * uc_addr() may return pointers to these variables. We need to + * make sure they don't get written via ia64_put() or + * ia64_putfp(). To make it possible to test for these variables + * quickly, we collect them in a single sub-structure. + */ + struct + { + unw_word_t r0; /* r0 is byte-order neutral */ + unw_fpreg_t f0; /* f0 is byte-order neutral */ + unw_fpreg_t f1_le, f1_be; /* f1 is byte-order dependent */ + } + read_only; + unw_fpreg_t nat_val_le, nat_val_be; + unw_fpreg_t int_val_le, int_val_be; struct mempool reg_state_pool; struct mempool labeled_state_pool;