diff options
author | Randolph Chung <tausq@debian.org> | 2006-03-01 05:43:03 +0000 |
---|---|---|
committer | Randolph Chung <tausq@debian.org> | 2006-03-01 05:43:03 +0000 |
commit | 6fcecea01107a772816bb70aa79fabd177f54f4e (patch) | |
tree | ce6f0fd1557635aac4e9272c369bb7e30e6df9c8 | |
parent | 46acf081206ec0c1a489dada54bfb9f210384ee8 (diff) | |
download | gdb-6fcecea01107a772816bb70aa79fabd177f54f4e.zip gdb-6fcecea01107a772816bb70aa79fabd177f54f4e.tar.gz gdb-6fcecea01107a772816bb70aa79fabd177f54f4e.tar.bz2 |
2006-03-01 Randolph Chung <tausq@debian.org>
* hppa-tdep.h (unwind_table_entry): Update field names to match HP
runtime specification.
* hppa-tdep.c (internalize_unwinds, hppa_frame_cache): Likewise.
(unwind_command): Likewise.
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/hppa-tdep.c | 24 | ||||
-rw-r--r-- | gdb/hppa-tdep.h | 12 |
3 files changed, 27 insertions, 16 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e95b961..8bd3bfc 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 2006-03-01 Randolph Chung <tausq@debian.org> + * hppa-tdep.h (unwind_table_entry): Update field names to match HP + runtime specification. + * hppa-tdep.c (internalize_unwinds, hppa_frame_cache): Likewise. + (unwind_command): Likewise. + +2006-03-01 Randolph Chung <tausq@debian.org> + * hppa-tdep.c (hppa_frame_cache): Handle Region_Description and Pseudo_SP_Set in unwind record. diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c index d089c5d..f1ae88c 100644 --- a/gdb/hppa-tdep.c +++ b/gdb/hppa-tdep.c @@ -280,7 +280,7 @@ internalize_unwinds (struct objfile *objfile, struct unwind_table_entry *table, table[i].Millicode = (tmp >> 30) & 0x1; table[i].Millicode_save_sr0 = (tmp >> 29) & 0x1; table[i].Region_description = (tmp >> 27) & 0x3; - table[i].reserved1 = (tmp >> 26) & 0x1; + table[i].reserved = (tmp >> 26) & 0x1; table[i].Entry_SR = (tmp >> 25) & 0x1; table[i].Entry_FR = (tmp >> 21) & 0xf; table[i].Entry_GR = (tmp >> 16) & 0x1f; @@ -290,23 +290,23 @@ internalize_unwinds (struct objfile *objfile, struct unwind_table_entry *table, table[i].Frame_Extension_Millicode = (tmp >> 12) & 0x1; table[i].Stack_Overflow_Check = (tmp >> 11) & 0x1; table[i].Two_Instruction_SP_Increment = (tmp >> 10) & 0x1; - table[i].Ada_Region = (tmp >> 9) & 0x1; + table[i].sr4export = (tmp >> 9) & 0x1; table[i].cxx_info = (tmp >> 8) & 0x1; table[i].cxx_try_catch = (tmp >> 7) & 0x1; table[i].sched_entry_seq = (tmp >> 6) & 0x1; - table[i].reserved2 = (tmp >> 5) & 0x1; + table[i].reserved1 = (tmp >> 5) & 0x1; table[i].Save_SP = (tmp >> 4) & 0x1; table[i].Save_RP = (tmp >> 3) & 0x1; table[i].Save_MRP_in_frame = (tmp >> 2) & 0x1; - table[i].extn_ptr_defined = (tmp >> 1) & 0x1; + table[i].save_r19 = (tmp >> 1) & 0x1; table[i].Cleanup_defined = tmp & 0x1; tmp = bfd_get_32 (objfile->obfd, (bfd_byte *) buf); buf += 4; table[i].MPE_XL_interrupt_marker = (tmp >> 31) & 0x1; table[i].HP_UX_interrupt_marker = (tmp >> 30) & 0x1; table[i].Large_frame = (tmp >> 29) & 0x1; - table[i].Pseudo_SP_Set = (tmp >> 28) & 0x1; - table[i].reserved4 = (tmp >> 27) & 0x1; + table[i].alloca_frame = (tmp >> 28) & 0x1; + table[i].reserved2 = (tmp >> 27) & 0x1; table[i].Total_frame_size = tmp & 0x7ffffff; /* Stub unwinds are handled elsewhere. */ @@ -2065,11 +2065,11 @@ hppa_frame_cache (struct frame_info *next_frame, void **this_cache) fp = frame_unwind_register_unsigned (next_frame, HPPA_FP_REGNUM); - if (u->Pseudo_SP_Set) + if (u->alloca_frame) fp -= u->Total_frame_size << 3; if (frame_pc_unwind (next_frame) >= prologue_end - && (u->Save_SP || u->Pseudo_SP_Set) && fp != 0) + && (u->Save_SP || u->alloca_frame) && fp != 0) { cache->base = fp; @@ -2540,15 +2540,19 @@ unwind_command (char *exp, int from_tty) pif (Frame_Extension_Millicode); pif (Stack_Overflow_Check); pif (Two_Instruction_SP_Increment); - pif (Ada_Region); + pif (sr4export); + pif (cxx_info); + pif (cxx_try_catch); + pif (sched_entry_seq); pif (Save_SP); pif (Save_RP); pif (Save_MRP_in_frame); - pif (extn_ptr_defined); + pif (save_r19); pif (Cleanup_defined); pif (MPE_XL_interrupt_marker); pif (HP_UX_interrupt_marker); pif (Large_frame); + pif (alloca_frame); putchar_unfiltered ('\n'); diff --git a/gdb/hppa-tdep.h b/gdb/hppa-tdep.h index 4dbeaf5..8c38e6c 100644 --- a/gdb/hppa-tdep.h +++ b/gdb/hppa-tdep.h @@ -129,7 +129,7 @@ struct unwind_table_entry unsigned int Millicode:1; /* 1 */ unsigned int Millicode_save_sr0:1; /* 2 */ unsigned int Region_description:2; /* 3..4 */ - unsigned int reserved1:1; /* 5 */ + unsigned int reserved:1; /* 5 */ unsigned int Entry_SR:1; /* 6 */ unsigned int Entry_FR:4; /* number saved *//* 7..10 */ unsigned int Entry_GR:5; /* number saved *//* 11..15 */ @@ -139,22 +139,22 @@ struct unwind_table_entry unsigned int Frame_Extension_Millicode:1; /* 19 */ unsigned int Stack_Overflow_Check:1; /* 20 */ unsigned int Two_Instruction_SP_Increment:1; /* 21 */ - unsigned int Ada_Region:1; /* 22 */ + unsigned int sr4export:1; /* 22 */ unsigned int cxx_info:1; /* 23 */ unsigned int cxx_try_catch:1; /* 24 */ unsigned int sched_entry_seq:1; /* 25 */ - unsigned int reserved2:1; /* 26 */ + unsigned int reserved1:1; /* 26 */ unsigned int Save_SP:1; /* 27 */ unsigned int Save_RP:1; /* 28 */ unsigned int Save_MRP_in_frame:1; /* 29 */ - unsigned int extn_ptr_defined:1; /* 30 */ + unsigned int save_r19:1; /* 30 */ unsigned int Cleanup_defined:1; /* 31 */ unsigned int MPE_XL_interrupt_marker:1; /* 0 */ unsigned int HP_UX_interrupt_marker:1; /* 1 */ unsigned int Large_frame:1; /* 2 */ - unsigned int Pseudo_SP_Set:1; /* 3 */ - unsigned int reserved4:1; /* 4 */ + unsigned int alloca_frame:1; /* 3 */ + unsigned int reserved2:1; /* 4 */ unsigned int Total_frame_size:27; /* 5..31 */ /* This is *NOT* part of an actual unwind_descriptor in an object |