diff --git a/src/ia64/global-ia64.c b/src/ia64/global-ia64.c index 5389786b..312bf9ba 100644 --- a/src/ia64/global-ia64.c +++ b/src/ia64/global-ia64.c @@ -107,12 +107,13 @@ unw_dyn_info_list_t _U_dyn_info_list; entry covers address range [0-0) and is therefore guaranteed to be the first in the unwind-table. */ asm ( +" .hidden _U_dyn_info_list\n" " .section \".IA_64.unwind_info\", \"a\"\n" ".info: data8 (1<<48) | 1\n" /* v1, length==1 (8-byte word) */ " data8 0\n" /* 8 empty .prologue directives (nops) */ " data8 0\n" /* personality routine (ignored) */ " string \"dyn-list\"\n" /* lsda */ -" data8 @segrel(_U_dyn_info_list)\n" +" data8 @gprel(_U_dyn_info_list)\n" " .previous\n" " .section \".IA_64.unwind\", \"a\"\n" @@ -147,6 +148,7 @@ ia64_init (void) mempool_init (&unw.labeled_state_pool, sizeof (struct ia64_labeled_state), 0); + unw.r0 = 0; unw.f0.raw.bits[0] = 0; unw.f0.raw.bits[1] = 0;