diff options
author | Jan Beulich <jbeulich@novell.com> | 2005-07-27 06:32:46 +0000 |
---|---|---|
committer | Jan Beulich <jbeulich@novell.com> | 2005-07-27 06:32:46 +0000 |
commit | ba825241e117100f7314d8583a173c770e42707f (patch) | |
tree | f8569ba859ff6c645c463baa57f48e353f745365 /gas/config/tc-ia64.h | |
parent | d8d83e9b52d6dfd4c6dc8214dd875fab7a1600e4 (diff) | |
download | gdb-ba825241e117100f7314d8583a173c770e42707f.zip gdb-ba825241e117100f7314d8583a173c770e42707f.tar.gz gdb-ba825241e117100f7314d8583a173c770e42707f.tar.bz2 |
gas/
2005-07-27 Jan Beulich <jbeulich@novell.com>
* config/tc-ia64.h (unw_r_record): Change type of fr_mem to unsigned
int.
(unw_p_record): Remove unused/redundant fields imask and rmask.
Combine spoff and pspoff into a union. Combine gr and br into a
union. Change type of grmask and brmask to unsigned char. Change type
of frmask to unsigned int.
(unw_x_record): Combine spoff, pspoff, and treg into a union.
* config/tc-ia64.c (unwind): New field 'pending_saves'.
(check_pending_save): New.
(alloc_record): Clear out entire record.
(output_psp_gr): Use renamed structure fields.
(output_psp_sprel): Likewise.
(output_rp_gr): Likewise.
(output_rp_br): Likewise.
(output_rp_psprel): Likewise.
(output_rp_sprel): Likewise.
(output_pfs_gr): Likewise.
(output_pfs_psprel): Likewise.
(output_pfs_sprel): Likewise.
(output_preds_gr): Likewise.
(output_preds_psprel): Likewise.
(output_preds_sprel): Likewise.
(output_spill_base): Likewise.
(output_unat_gr): Likewise.
(output_unat_psprel): Likewise.
(output_unat_sprel): Likewise.
(output_lc_gr): Likewise.
(output_lc_psprel): Likewise.
(output_lc_sprel): Likewise.
(output_fpsr_gr): Likewise.
(output_fpsr_psprel): Likewise.
(output_fpsr_sprel): Likewise.
(output_priunat_gr): Likewise.
(output_priunat_psprel): Likewise.
(output_priunat_sprel): Likewise.
(output_bsp_gr): Likewise.
(output_bsp_psprel): Likewise.
(output_bsp_sprel): Likewise.
(output_bspstore_gr): Likewise.
(output_bspstore_psprel): Likewise.
(output_bspstore_sprel): Likewise.
(output_rnat_gr): Likewise.
(output_rnat_psprel): Likewise.
(output_rnat_sprel): Likewise.
(output_spill_psprel): Likewise.
(output_spill_sprel): Likewise.
(output_spill_reg): Likewise.
(output_fr_mem): Likewise. Allocate one unwind record per set mask
bit.
(output_frgr_mem): Likewise.
(output_gr_mem): Likewise.
(output_br_mem): Likewise.
(output_gr_gr): Likewise.
(output_br_gr): Likewise.
(fixup_unw_records): Likewise.
(process_one_record): Use renamed structure fields. For gr_gr and
br_gr, collect mask from chain of records before output.
(in_prologue): Simplify and eliminate early returns. Call
check_pending_save.
(in_body): Simplify and eliminate early returns.
(dot_body): Call check_pending_save.
(md_assemble): Update comment. Deal with pending saves.
gas/testsuite/
2005-07-27 Jan Beulich <jbeulich@novell.com>
* gas/ia64/unwind-bad.l: Uncomment patterns matching new warnings.
* gas/ia64/unwind-ok.d: Correct expectations.
Diffstat (limited to 'gas/config/tc-ia64.h')
-rw-r--r-- | gas/config/tc-ia64.h | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/gas/config/tc-ia64.h b/gas/config/tc-ia64.h index ad0a116..f322fbf 100644 --- a/gas/config/tc-ia64.h +++ b/gas/config/tc-ia64.h @@ -241,7 +241,7 @@ typedef struct unw_r_record struct { unsigned char *i; - unsigned long fr_mem; + unsigned int fr_mem; unsigned char gr_mem; unsigned char br_mem; } mask; @@ -249,17 +249,22 @@ typedef struct unw_r_record typedef struct unw_p_record { - void *imask; + struct unw_rec_list *next; unsigned long t; unsigned long size; - unsigned long spoff; - unsigned long br; - unsigned long pspoff; - unsigned short gr; - unsigned short rmask; - unsigned short grmask; - unsigned long frmask; - unsigned short brmask; + union + { + unsigned long sp; + unsigned long psp; + } off; + union + { + unsigned short gr; + unsigned short br; + } r; + unsigned char grmask; + unsigned char brmask; + unsigned int frmask; unsigned char abi; unsigned char context; } unw_p_record; @@ -274,10 +279,13 @@ typedef struct unw_b_record typedef struct unw_x_record { unsigned long t; - unsigned long spoff; - unsigned long pspoff; + union + { + unsigned long spoff; + unsigned long pspoff; + unsigned int reg; + } where; unsigned short reg; - unsigned short treg; unsigned short qp; unsigned short ab; /* Value of the AB field.. */ unsigned short xy; /* Value of the XY field.. */ |